From c118108d14d61a85fb40dc31b4794d501637e795 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 4 Oct 2023 11:00:19 +0200 Subject: [PATCH 01/66] Added tests mockup for ts refactoring. --- .gitignore | 2 + jest.config.ts | 9 + package.json | 13 + pnpm-lock.yaml | 6266 +++++++++++++++++ .../coloredarea-series.test.ts.snap | 107 + .../coloredline-series.test.ts.snap | 107 + .../jest-snapshot/coloredarea-series.test.ts | 59 + .../jest-snapshot/coloredline-series.test.ts | 59 + tests/jest-snapshot/helper.ts | 29 + tsconfig.json | 14 + types.d.ts | 50 + 11 files changed, 6715 insertions(+) create mode 100644 .gitignore create mode 100644 jest.config.ts create mode 100644 pnpm-lock.yaml create mode 100644 tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap create mode 100644 tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap create mode 100644 tests/jest-snapshot/coloredarea-series.test.ts create mode 100644 tests/jest-snapshot/coloredline-series.test.ts create mode 100644 tests/jest-snapshot/helper.ts create mode 100644 tsconfig.json create mode 100644 types.d.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c093d3c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Dependency directories +node_modules/ diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..ee256b4 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,9 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: "ts-jest", + clearMocks: true, + testEnvironment: "jest-environment-jsdom" +}; + +export default config; diff --git a/package.json b/package.json index e393a56..0f0d728 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,12 @@ "js/multicolor_series.min.js.map" ], "homepage": "https://github.com/blacklabel/multicolor_series#readme", + "types": "types.d.ts", + "scripts": { + "test": "jest" + }, "devDependencies": { + "@types/jest": "^29.5.5", "google-closure-compiler": "^20160517.1.0", "gulp": "^4.0.0", "gulp-bump": "^2.1.0", @@ -31,6 +36,14 @@ "gulp-git": "^2.10.0", "gulp-if": "^2.0.0", "gulp-sourcemaps": "1.6.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "ts-jest": "^29.1.1", + "ts-node": "^10.9.1", + "typescript": "^5.2.2", "yargs": "^4.7.0" + }, + "dependencies": { + "highcharts": "^11.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..e8fe1d3 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6266 @@ +lockfileVersion: '6.1' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + highcharts: + specifier: ^11.1.0 + version: 11.1.0 + +devDependencies: + '@types/jest': + specifier: ^29.5.5 + version: 29.5.5 + google-closure-compiler: + specifier: ^20160517.1.0 + version: 20160517.1.0 + gulp: + specifier: ^4.0.0 + version: 4.0.0 + gulp-bump: + specifier: ^2.1.0 + version: 2.1.0 + gulp-eslint: + specifier: ^2.0.0 + version: 2.0.0 + gulp-git: + specifier: ^2.10.0 + version: 2.10.0 + gulp-if: + specifier: ^2.0.0 + version: 2.0.0 + gulp-sourcemaps: + specifier: 1.6.0 + version: 1.6.0 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 + ts-jest: + specifier: ^29.1.1 + version: 29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.2.2) + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + typescript: + specifier: ^5.2.2 + version: 5.2.2 + yargs: + specifier: ^4.7.0 + version: 4.7.0 + +packages: + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.22.20: + resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.20 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.23.1: + resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/traverse@7.23.0: + resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.8.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-mock: 29.7.0 + dev: true + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.8.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.19 + '@types/node': 20.8.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 6.0.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.19 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.2 + '@types/node': 20.8.2 + '@types/yargs': 17.0.26 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.0 + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/babel__core@7.20.2: + resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + '@types/babel__generator': 7.6.5 + '@types/babel__template': 7.4.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /@types/babel__generator@7.6.5: + resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/babel__template@7.4.2: + resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@types/babel__traverse@7.20.2: + resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/graceful-fs@4.1.7: + resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} + dependencies: + '@types/node': 20.8.2 + dev: true + + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.2: + resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} + dependencies: + '@types/istanbul-lib-report': 3.0.1 + dev: true + + /@types/jest@29.5.5: + resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 20.8.2 + '@types/tough-cookie': 4.0.3 + parse5: 7.1.2 + dev: true + + /@types/node@20.8.2: + resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==} + dev: true + + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/tough-cookie@4.0.3: + resolution: {integrity: sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==} + dev: true + + /@types/yargs-parser@21.0.1: + resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} + dev: true + + /@types/yargs@17.0.26: + resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==} + dependencies: + '@types/yargs-parser': 21.0.1 + dev: true + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.10.0 + acorn-walk: 8.2.0 + dev: true + + /acorn-jsx@3.0.1: + resolution: {integrity: sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==} + dependencies: + acorn: 3.3.0 + dev: true + + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@3.3.0: + resolution: {integrity: sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@5.7.4: + resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /ajv-keywords@1.5.1(ajv@4.11.8): + resolution: {integrity: sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA==} + peerDependencies: + ajv: '>=4.10.0' + dependencies: + ajv: 4.11.8 + dev: true + + /ajv@4.11.8: + resolution: {integrity: sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==} + dependencies: + co: 4.6.0 + json-stable-stringify: 1.0.2 + dev: true + + /ansi-colors@1.1.0: + resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-wrap: 0.1.0 + dev: true + + /ansi-cyan@0.1.1: + resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-wrap: 0.1.0 + dev: true + + /ansi-escapes@1.4.0: + resolution: {integrity: sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-gray@0.1.1: + resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-wrap: 0.1.0 + dev: true + + /ansi-red@0.1.1: + resolution: {integrity: sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-wrap: 0.1.0 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-wrap@0.1.0: + resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} + engines: {node: '>=0.10.0'} + dev: true + + /any-shell-escape@0.1.1: + resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} + dev: true + + /anymatch@2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /append-buffer@1.0.2: + resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} + engines: {node: '>=0.10.0'} + dependencies: + buffer-equal: 1.0.1 + dev: true + + /archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /arr-diff@1.1.0: + resolution: {integrity: sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-slice: 0.2.3 + dev: true + + /arr-diff@2.0.0: + resolution: {integrity: sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-filter@1.1.2: + resolution: {integrity: sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==} + engines: {node: '>=0.10.0'} + dependencies: + make-iterator: 1.0.1 + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-map@2.0.2: + resolution: {integrity: sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==} + engines: {node: '>=0.10.0'} + dependencies: + make-iterator: 1.0.1 + dev: true + + /arr-union@2.1.0: + resolution: {integrity: sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-differ@1.0.0: + resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true + + /array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + dev: true + + /array-initial@1.1.0: + resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==} + engines: {node: '>=0.10.0'} + dependencies: + array-slice: 1.1.0 + is-number: 4.0.0 + dev: true + + /array-last@1.3.0: + resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 4.0.0 + dev: true + + /array-slice@0.2.3: + resolution: {integrity: sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true + + /array-sort@1.0.0: + resolution: {integrity: sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==} + engines: {node: '>=0.10.0'} + dependencies: + default-compare: 1.0.0 + get-value: 2.0.6 + kind-of: 5.1.0 + dev: true + + /array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-unique@0.2.1: + resolution: {integrity: sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==} + engines: {node: '>=0.10.0'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /async-done@1.3.2: + resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} + engines: {node: '>= 0.10'} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + process-nextick-args: 2.0.1 + stream-exhaust: 1.0.2 + dev: true + + /async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + dev: true + + /async-settle@1.0.0: + resolution: {integrity: sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==} + engines: {node: '>= 0.10'} + dependencies: + async-done: 1.3.2 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /babel-jest@29.7.0(@babel/core@7.23.0): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.23.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.2 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.23.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.22.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + '@types/babel__core': 7.20.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.0): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + dev: true + + /bach@1.2.0: + resolution: {integrity: sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==} + engines: {node: '>= 0.10'} + dependencies: + arr-filter: 1.1.2 + arr-flatten: 1.1.0 + arr-map: 2.0.2 + array-each: 1.0.1 + array-initial: 1.1.0 + array-last: 1.3.0 + async-done: 1.3.2 + async-settle: 1.0.0 + now-and-later: 2.0.1 + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /beeper@1.1.1: + resolution: {integrity: sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==} + engines: {node: '>=0.10.0'} + dev: true + + /binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + dev: true + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: true + optional: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@1.8.5: + resolution: {integrity: sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==} + engines: {node: '>=0.10.0'} + dependencies: + expand-range: 1.8.2 + preserve: 0.2.0 + repeat-element: 1.1.4 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001543 + electron-to-chromium: 1.4.539 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /bufferstreams@1.1.3: + resolution: {integrity: sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==} + engines: {node: '>= 0.10.0'} + dependencies: + readable-stream: 2.3.8 + dev: true + + /bump-regex@2.9.0: + resolution: {integrity: sha512-o4WC1mKw/kM0zScuOxZKi243lc+/h09b41u2A7HlWbxHsEDsTTZtqDZYkQj65l24J8+9Saahn5ep+EyeqpQoCg==} + engines: {node: '>= 0.12.0'} + dependencies: + semver: 5.7.2 + xtend: 4.0.2 + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: true + + /caller-path@0.1.0: + resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==} + engines: {node: '>=0.10.0'} + dependencies: + callsites: 0.2.0 + dev: true + + /callsites@0.2.0: + resolution: {integrity: sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==} + engines: {node: '>=0.10.0'} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys@2.1.0: + resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} + engines: {node: '>=0.10.0'} + dependencies: + camelcase: 2.1.1 + map-obj: 1.0.1 + dev: true + + /camelcase@2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} + engines: {node: '>=0.10.0'} + dev: true + + /camelcase@3.0.0: + resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} + engines: {node: '>=0.10.0'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001543: + resolution: {integrity: sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==} + dev: true + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chokidar@2.1.8: + resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + dependencies: + anymatch: 2.0.0 + async-each: 1.0.6 + braces: 2.3.2 + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1 + upath: 1.2.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /circular-json@0.3.3: + resolution: {integrity: sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==} + deprecated: CircularJSON is in maintenance only, flatted is its successor. + dev: true + + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /cli-cursor@1.0.2: + resolution: {integrity: sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==} + engines: {node: '>=0.10.0'} + dependencies: + restore-cursor: 1.0.1 + dev: true + + /cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + dev: true + + /cliui@3.2.0: + resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + dev: true + + /clone-stats@0.0.1: + resolution: {integrity: sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==} + dev: true + + /clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.8 + dev: true + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: true + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true + + /collection-map@1.0.0: + resolution: {integrity: sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-map: 2.0.2 + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-props@2.0.5: + resolution: {integrity: sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==} + dependencies: + each-props: 1.3.2 + is-plain-object: 5.0.0 + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /create-jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + dependencies: + array-find-index: 1.0.2 + dev: true + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: true + + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /dateformat@1.0.12: + resolution: {integrity: sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg==} + hasBin: true + dependencies: + get-stdin: 4.0.1 + meow: 3.7.0 + dev: true + + /dateformat@2.2.0: + resolution: {integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /default-compare@1.0.0: + resolution: {integrity: sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 5.1.0 + dev: true + + /default-resolution@2.0.0: + resolution: {integrity: sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==} + engines: {node: '>= 0.10'} + dev: true + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /doctrine@1.5.0: + resolution: {integrity: sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + isarray: 1.0.0 + dev: true + + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /duplexer2@0.0.2: + resolution: {integrity: sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==} + dependencies: + readable-stream: 1.1.14 + dev: true + + /duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.1 + dev: true + + /each-props@1.3.2: + resolution: {integrity: sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==} + dependencies: + is-plain-object: 2.0.4 + object.defaults: 1.1.0 + dev: true + + /electron-to-chromium@1.4.539: + resolution: {integrity: sha512-wRmWJ8F7rgmINuI32S6r2SLrw/h/bJQsDSvBiq9GBfvc2Lh73qTOwn73r3Cf67mjVgFGJYcYtmERzySa5jIWlg==} + dev: true + + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: true + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: true + + /es6-map@0.1.5: + resolution: {integrity: sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-set: 0.1.6 + es6-symbol: 3.1.3 + event-emitter: 0.3.5 + dev: true + + /es6-set@0.1.6: + resolution: {integrity: sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==} + engines: {node: '>=0.12'} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + event-emitter: 0.3.5 + type: 2.7.2 + dev: true + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + dev: true + + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /escope@3.6.0: + resolution: {integrity: sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==} + engines: {node: '>=0.4.0'} + dependencies: + es6-map: 0.1.5 + es6-weak-map: 2.0.3 + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint@2.13.1: + resolution: {integrity: sha512-29PFGeV6lLQrPaPHeCkjfgLRQPFflDiicoNZOw+c/JkaQ0Am55yUICdYZbmCiM+DSef+q7oCercimHvjNI0GAw==} + engines: {node: '>=0.10'} + hasBin: true + dependencies: + chalk: 1.1.3 + concat-stream: 1.6.2 + debug: 2.6.9 + doctrine: 1.5.0 + es6-map: 0.1.5 + escope: 3.6.0 + espree: 3.5.4 + estraverse: 4.3.0 + esutils: 2.0.3 + file-entry-cache: 1.3.1 + glob: 7.2.3 + globals: 9.18.0 + ignore: 3.3.10 + imurmurhash: 0.1.4 + inquirer: 0.12.0 + is-my-json-valid: 2.20.6 + is-resolvable: 1.1.0 + js-yaml: 3.14.1 + json-stable-stringify: 1.0.2 + levn: 0.3.0 + lodash: 4.17.21 + mkdirp: 0.5.6 + optionator: 0.8.3 + path-is-absolute: 1.0.1 + path-is-inside: 1.0.2 + pluralize: 1.2.1 + progress: 1.1.8 + require-uncached: 1.0.3 + shelljs: 0.6.1 + strip-json-comments: 1.0.4 + table: 3.8.3 + text-table: 0.2.0 + user-home: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@3.5.4: + resolution: {integrity: sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==} + engines: {node: '>=0.10.0'} + dependencies: + acorn: 5.7.4 + acorn-jsx: 3.0.1 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit-hook@1.1.1: + resolution: {integrity: sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==} + engines: {node: '>=0.10.0'} + dev: true + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expand-brackets@0.1.5: + resolution: {integrity: sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==} + engines: {node: '>=0.10.0'} + dependencies: + is-posix-bracket: 0.1.1 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-range@1.8.2: + resolution: {integrity: sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==} + engines: {node: '>=0.10.0'} + dependencies: + fill-range: 2.2.4 + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + dev: true + + /extend-shallow@1.1.4: + resolution: {integrity: sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 1.1.0 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extglob@0.3.2: + resolution: {integrity: sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 1.0.0 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /fancy-log@1.3.3: + resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} + engines: {node: '>= 0.10'} + dependencies: + ansi-gray: 0.1.1 + color-support: 1.1.3 + parse-node-version: 1.0.1 + time-stamp: 1.1.0 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@1.1.4: + resolution: {integrity: sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + + /file-entry-cache@1.3.1: + resolution: {integrity: sha512-JyVk7P0Hvw6uEAwH4Y0j+rZMvaMWvLBYRmRGAF2S6jKTycf0mMDcC7d21Y2KyrKJk3XI8YghSsk5KmRdbvg0VQ==} + engines: {node: '>=0.10.0'} + dependencies: + flat-cache: 1.3.4 + object-assign: 4.1.1 + dev: true + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: true + optional: true + + /filename-regex@2.0.1: + resolution: {integrity: sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==} + engines: {node: '>=0.10.0'} + dev: true + + /fill-range@2.2.4: + resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 2.1.0 + isobject: 2.1.0 + randomatic: 3.1.1 + repeat-element: 1.1.4 + repeat-string: 1.6.1 + dev: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /findup-sync@2.0.0: + resolution: {integrity: sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==} + engines: {node: '>= 0.10'} + dependencies: + detect-file: 1.0.0 + is-glob: 3.1.0 + micromatch: 3.1.10 + resolve-dir: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /findup-sync@3.0.0: + resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} + engines: {node: '>= 0.10'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 3.1.10 + resolve-dir: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /fined@1.2.0: + resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==} + engines: {node: '>= 0.10'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 2.0.4 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /first-chunk-stream@1.0.0: + resolution: {integrity: sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==} + engines: {node: '>=0.10.0'} + dev: true + + /first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} + dependencies: + readable-stream: 2.3.8 + dev: true + + /flagged-respawn@1.0.1: + resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==} + engines: {node: '>= 0.10'} + dev: true + + /flat-cache@1.3.4: + resolution: {integrity: sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==} + engines: {node: '>=0.10.0'} + dependencies: + circular-json: 0.3.3 + graceful-fs: 4.2.11 + rimraf: 2.6.3 + write: 0.2.1 + dev: true + + /flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /for-own@0.1.5: + resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /fork-stream@0.0.4: + resolution: {integrity: sha512-Pqq5NnT78ehvUnAk/We/Jr22vSvanRlFTpAmQ88xBY/M1TlHe+P0ILuEyXS595ysdGfaj22634LBkGMA2GTcpA==} + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-mkdirp-stream@1.0.0: + resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} + engines: {node: '>= 0.10'} + dependencies: + graceful-fs: 4.2.11 + through2: 2.0.5 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + requiresBuild: true + dependencies: + bindings: 1.5.0 + nan: 2.18.0 + dev: true + optional: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + dependencies: + is-property: 1.0.2 + dev: true + + /generate-object-property@1.2.0: + resolution: {integrity: sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==} + dependencies: + is-property: 1.0.2 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@1.0.3: + resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} + engines: {node: '>=0.10.0'} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /glob-base@0.3.0: + resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} + engines: {node: '>=0.10.0'} + dependencies: + glob-parent: 2.0.0 + is-glob: 2.0.1 + dev: true + + /glob-parent@2.0.0: + resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} + dependencies: + is-glob: 2.0.1 + dev: true + + /glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + dev: true + + /glob-stream@5.3.5: + resolution: {integrity: sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==} + engines: {node: '>= 0.10'} + dependencies: + extend: 3.0.2 + glob: 5.0.15 + glob-parent: 3.1.0 + micromatch: 2.3.11 + ordered-read-streams: 0.3.0 + through2: 0.6.5 + to-absolute-glob: 0.1.1 + unique-stream: 2.3.1 + dev: true + + /glob-stream@6.1.0: + resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} + engines: {node: '>= 0.10'} + dependencies: + extend: 3.0.2 + glob: 7.2.3 + glob-parent: 3.1.0 + is-negated-glob: 1.0.0 + ordered-read-streams: 1.0.1 + pumpify: 1.5.1 + readable-stream: 2.3.8 + remove-trailing-separator: 1.1.0 + to-absolute-glob: 2.0.2 + unique-stream: 2.3.1 + dev: true + + /glob-watcher@5.0.5: + resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==} + engines: {node: '>= 0.10'} + dependencies: + anymatch: 2.0.0 + async-done: 1.3.2 + chokidar: 2.1.8 + is-negated-glob: 1.0.0 + just-debounce: 1.1.0 + normalize-path: 3.0.0 + object.defaults: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /glob@5.0.15: + resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} + dev: true + + /glogg@1.0.2: + resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} + engines: {node: '>= 0.10'} + dependencies: + sparkles: 1.0.1 + dev: true + + /google-closure-compiler@20160517.1.0: + resolution: {integrity: sha512-Bm3LLaJy4gyuz0hLMXPV2zq1I4bywNVJRJREStZKZV87dGuS9UiJfT7HtrPwAv4J9Aw6uUfTPjdhxC6D3xvC7w==} + dependencies: + chalk: 1.1.3 + gulp-util: 3.0.8 + source-map: 0.5.7 + vinyl-fs: 2.4.4 + vinyl-sourcemaps-apply: 0.2.1 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /gulp-bump@2.1.0: + resolution: {integrity: sha512-NPF2dDFiW1n0htapKFtxhTbnA8MgqJGJbWLgn+IJCqV4o+m6wccleZC67CONbdWsY44j7M6utX9jH64v4PSpAQ==} + engines: {node: '>= 0.9.0'} + dependencies: + bump-regex: 2.9.0 + plugin-error: 0.1.2 + plugin-log: 0.1.0 + semver: 5.7.2 + through2: 0.5.1 + dev: true + + /gulp-cli@2.3.0: + resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + ansi-colors: 1.1.0 + archy: 1.0.0 + array-sort: 1.0.0 + color-support: 1.1.3 + concat-stream: 1.6.2 + copy-props: 2.0.5 + fancy-log: 1.3.3 + gulplog: 1.0.0 + interpret: 1.4.0 + isobject: 3.0.1 + liftoff: 3.1.0 + matchdep: 2.0.0 + mute-stdout: 1.0.1 + pretty-hrtime: 1.0.3 + replace-homedir: 1.0.0 + semver-greatest-satisfied-range: 1.1.0 + v8flags: 3.2.0 + yargs: 7.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /gulp-eslint@2.0.0: + resolution: {integrity: sha512-sxSpbiQZQwemG0E0kgNb9SNW8kjmr6IBfAtTsqNU+/cGAFOqKiowNqwJBdcowas4YEFp2ltcQ2h+3nFTbb2tGg==} + dependencies: + bufferstreams: 1.1.3 + eslint: 2.13.1 + gulp-util: 3.0.8 + object-assign: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /gulp-git@2.10.0: + resolution: {integrity: sha512-AYh0xXpKdDYS+ftCuyF9+LFXoltjtFlpfKITTCKDI0LunztpwVuHFtp31SvRSFVZikvRHTHUGMZ9Z0TnXjDIxQ==} + engines: {node: '>= 0.9.0'} + dependencies: + any-shell-escape: 0.1.1 + fancy-log: 1.3.3 + lodash.template: 4.5.0 + plugin-error: 1.0.1 + require-dir: 1.2.0 + strip-bom-stream: 3.0.0 + through2: 2.0.5 + vinyl: 2.2.1 + dev: true + + /gulp-if@2.0.0: + resolution: {integrity: sha512-7B9M8ZkVOs+oc2j/NiDkb7lJokgOcQgFzYRPEfOHxH/2S8XKMuxgTA1J8ELJSuslX/fu2dQTDTMZyODErTMPdw==} + engines: {node: '>= 0.10.0'} + dependencies: + gulp-match: 1.1.0 + ternary-stream: 2.1.1 + through2: 2.0.5 + dev: true + + /gulp-match@1.1.0: + resolution: {integrity: sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ==} + dependencies: + minimatch: 3.1.2 + dev: true + + /gulp-sourcemaps@1.6.0: + resolution: {integrity: sha512-NjRy6+Qb5K1xbwOvPviD3uA4KSq2zsalPL+4vxPQPuL+kKzHjXJL10/kLaESic3LmBto8VIBHr3gIN3F9AjnhA==} + dependencies: + convert-source-map: 1.9.0 + graceful-fs: 4.2.11 + strip-bom: 2.0.0 + through2: 2.0.5 + vinyl: 1.2.0 + dev: true + + /gulp-util@3.0.8: + resolution: {integrity: sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==} + engines: {node: '>=0.10'} + deprecated: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5 + dependencies: + array-differ: 1.0.0 + array-uniq: 1.0.3 + beeper: 1.1.1 + chalk: 1.1.3 + dateformat: 2.2.0 + fancy-log: 1.3.3 + gulplog: 1.0.0 + has-gulplog: 0.1.0 + lodash._reescape: 3.0.0 + lodash._reevaluate: 3.0.0 + lodash._reinterpolate: 3.0.0 + lodash.template: 3.6.2 + minimist: 1.2.8 + multipipe: 0.1.2 + object-assign: 3.0.0 + replace-ext: 0.0.1 + through2: 2.0.5 + vinyl: 0.5.3 + dev: true + + /gulp@4.0.0: + resolution: {integrity: sha512-Ln1zks+ndF6tDqe2ejNtQ2ZH93SaBEmSszArsLuSnY075Ju72SCEkkE7yyGIxK0+ft2UdaYha6af64mh0YvUrA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + glob-watcher: 5.0.5 + gulp-cli: 2.3.0 + undertaker: 1.3.0 + vinyl-fs: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /gulplog@1.0.0: + resolution: {integrity: sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==} + engines: {node: '>= 0.10'} + dependencies: + glogg: 1.0.2 + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-gulplog@0.1.0: + resolution: {integrity: sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==} + engines: {node: '>= 0.10'} + dependencies: + sparkles: 1.0.1 + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /highcharts@11.1.0: + resolution: {integrity: sha512-vhmqq6/frteWMx0GKYWwEFL25g4OYc7+m+9KQJb/notXbNtIb8KVy+ijOF7XAFqF165cq0pdLIePAmyFY5ph3g==} + dev: false + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore@3.3.10: + resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@2.1.0: + resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==} + engines: {node: '>=0.10.0'} + dependencies: + repeating: 2.0.1 + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@0.12.0: + resolution: {integrity: sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==} + dependencies: + ansi-escapes: 1.4.0 + ansi-regex: 2.1.1 + chalk: 1.1.3 + cli-cursor: 1.0.2 + cli-width: 2.2.1 + figures: 1.7.0 + lodash: 4.17.21 + readline2: 1.0.1 + run-async: 0.1.0 + rx-lite: 3.1.2 + string-width: 1.0.2 + strip-ansi: 3.0.1 + through: 2.3.8 + dev: true + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: true + + /invert-kv@1.0.0: + resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + dependencies: + binary-extensions: 1.13.1 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: true + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-dotfile@1.0.3: + resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-equal-shallow@0.1.3: + resolution: {integrity: sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==} + engines: {node: '>=0.10.0'} + dependencies: + is-primitive: 2.0.0 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: true + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 1.0.0 + dev: true + + /is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-my-ip-valid@1.0.1: + resolution: {integrity: sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==} + dev: true + + /is-my-json-valid@2.20.6: + resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==} + dependencies: + generate-function: 2.3.1 + generate-object-property: 1.2.0 + is-my-ip-valid: 1.0.1 + jsonpointer: 5.0.1 + xtend: 4.0.2 + dev: true + + /is-negated-glob@1.0.0: + resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} + engines: {node: '>=0.10.0'} + dev: true + + /is-number@2.1.0: + resolution: {integrity: sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@4.0.0: + resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-posix-bracket@0.1.1: + resolution: {integrity: sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-primitive@2.0.0: + resolution: {integrity: sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + dev: true + + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-resolvable@1.1.0: + resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} + dev: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-valid-glob@0.3.0: + resolution: {integrity: sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-valid-glob@1.0.0: + resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@6.0.0: + resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.0.4 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-cli@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jest-config@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.23.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + babel-jest: 29.7.0(@babel/core@7.23.0) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 20.8.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.7 + '@types/node': 20.8.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.13 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + jest-util: 29.7.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.6 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) + '@babel/types': 7.23.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + dev: true + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 20.8.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.10.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.14.2 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + dependencies: + jsonify: 0.0.1 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /just-debounce@1.1.0: + resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} + dev: true + + /kind-of@1.1.0: + resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /last-run@1.1.1: + resolution: {integrity: sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==} + engines: {node: '>= 0.10'} + dependencies: + default-resolution: 2.0.0 + es6-weak-map: 2.0.3 + dev: true + + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 + dev: true + + /lcid@1.0.0: + resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} + engines: {node: '>=0.10.0'} + dependencies: + invert-kv: 1.0.0 + dev: true + + /lead@1.0.0: + resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} + engines: {node: '>= 0.10'} + dependencies: + flush-write-stream: 1.1.1 + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /liftoff@3.1.0: + resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} + engines: {node: '>= 0.8'} + dependencies: + extend: 3.0.2 + findup-sync: 3.0.0 + fined: 1.2.0 + flagged-respawn: 1.0.1 + is-plain-object: 2.0.4 + object.map: 1.0.1 + rechoir: 0.6.2 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash._basecopy@3.0.1: + resolution: {integrity: sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==} + dev: true + + /lodash._basetostring@3.0.1: + resolution: {integrity: sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==} + dev: true + + /lodash._basevalues@3.0.0: + resolution: {integrity: sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==} + dev: true + + /lodash._getnative@3.9.1: + resolution: {integrity: sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==} + dev: true + + /lodash._isiterateecall@3.0.9: + resolution: {integrity: sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==} + dev: true + + /lodash._reescape@3.0.0: + resolution: {integrity: sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==} + dev: true + + /lodash._reevaluate@3.0.0: + resolution: {integrity: sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==} + dev: true + + /lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + dev: true + + /lodash._root@3.0.1: + resolution: {integrity: sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==} + dev: true + + /lodash.assign@4.2.0: + resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} + dev: true + + /lodash.escape@3.2.0: + resolution: {integrity: sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==} + dependencies: + lodash._root: 3.0.1 + dev: true + + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + dev: true + + /lodash.isarray@3.0.4: + resolution: {integrity: sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.keys@3.1.2: + resolution: {integrity: sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==} + dependencies: + lodash._getnative: 3.9.1 + lodash.isarguments: 3.1.0 + lodash.isarray: 3.0.4 + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.restparam@3.6.1: + resolution: {integrity: sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==} + dev: true + + /lodash.template@3.6.2: + resolution: {integrity: sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==} + dependencies: + lodash._basecopy: 3.0.1 + lodash._basetostring: 3.0.1 + lodash._basevalues: 3.0.0 + lodash._isiterateecall: 3.0.9 + lodash._reinterpolate: 3.0.0 + lodash.escape: 3.2.0 + lodash.keys: 3.1.2 + lodash.restparam: 3.6.1 + lodash.templatesettings: 3.1.1 + dev: true + + /lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + dev: true + + /lodash.templatesettings@3.1.1: + resolution: {integrity: sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.escape: 3.2.0 + dev: true + + /lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /loud-rejection@1.6.0: + resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} + engines: {node: '>=0.10.0'} + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.7 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /matchdep@2.0.0: + resolution: {integrity: sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==} + engines: {node: '>= 0.10.0'} + dependencies: + findup-sync: 2.0.0 + micromatch: 3.1.10 + resolve: 1.22.6 + stack-trace: 0.0.10 + transitivePeerDependencies: + - supports-color + dev: true + + /math-random@1.0.4: + resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} + dev: true + + /meow@3.7.0: + resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} + engines: {node: '>=0.10.0'} + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.8 + normalize-package-data: 2.5.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + dev: true + + /merge-stream@1.0.1: + resolution: {integrity: sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==} + dependencies: + readable-stream: 2.3.8 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /micromatch@2.3.11: + resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 2.0.0 + array-unique: 0.2.1 + braces: 1.8.5 + expand-brackets: 0.1.5 + extglob: 0.3.2 + filename-regex: 2.0.1 + is-extglob: 1.0.0 + is-glob: 2.0.1 + kind-of: 3.2.2 + normalize-path: 2.1.1 + object.omit: 2.0.1 + parse-glob: 3.0.4 + regex-cache: 0.4.4 + dev: true + + /micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /multipipe@0.1.2: + resolution: {integrity: sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==} + dependencies: + duplexer2: 0.0.2 + dev: true + + /mute-stdout@1.0.1: + resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} + engines: {node: '>= 0.10'} + dev: true + + /mute-stream@0.0.5: + resolution: {integrity: sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==} + dev: true + + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + dev: true + optional: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.6 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /now-and-later@2.0.1: + resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} + engines: {node: '>= 0.10'} + dependencies: + once: 1.4.0 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: true + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /object-assign@3.0.0: + resolution: {integrity: sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + /object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.omit@2.0.1: + resolution: {integrity: sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 0.1.5 + is-extendable: 0.1.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.reduce@1.0.1: + resolution: {integrity: sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@1.1.0: + resolution: {integrity: sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==} + engines: {node: '>=0.10.0'} + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + dev: true + + /ordered-read-streams@0.3.0: + resolution: {integrity: sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==} + dependencies: + is-stream: 1.1.0 + readable-stream: 2.3.8 + dev: true + + /ordered-read-streams@1.0.1: + resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} + dependencies: + readable-stream: 2.3.8 + dev: true + + /os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + dev: true + + /os-locale@1.4.0: + resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} + engines: {node: '>=0.10.0'} + dependencies: + lcid: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-glob@3.0.4: + resolution: {integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==} + engines: {node: '>=0.10.0'} + dependencies: + glob-base: 0.3.0 + is-dotfile: 1.0.3 + is-extglob: 1.0.0 + is-glob: 2.0.1 + dev: true + + /parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + dependencies: + error-ex: 1.3.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + dev: true + + /path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie-promise: 2.0.1 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /pkg-conf@1.1.3: + resolution: {integrity: sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==} + engines: {node: '>=0.10.0'} + dependencies: + find-up: 1.1.2 + load-json-file: 1.1.0 + object-assign: 4.1.1 + symbol: 0.2.3 + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /plugin-error@0.1.2: + resolution: {integrity: sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-cyan: 0.1.1 + ansi-red: 0.1.1 + arr-diff: 1.1.0 + arr-union: 2.1.0 + extend-shallow: 1.1.4 + dev: true + + /plugin-error@1.0.1: + resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} + engines: {node: '>= 0.10'} + dependencies: + ansi-colors: 1.1.0 + arr-diff: 4.0.0 + arr-union: 3.1.0 + extend-shallow: 3.0.2 + dev: true + + /plugin-log@0.1.0: + resolution: {integrity: sha512-TzmfWRMEFAnrZbI4GfyXv9Gp5E71eby3gmvnP6LEfmYbVC8FPN2RBRhwxg4sjIg+fy8AJ3mczhLXvk0pzHPeMg==} + engines: {node: '>= 0.9.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + chalk: 1.1.3 + dateformat: 1.0.12 + dev: true + + /pluralize@1.2.1: + resolution: {integrity: sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==} + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: true + + /preserve@0.2.0: + resolution: {integrity: sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==} + engines: {node: '>=0.10.0'} + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /pretty-hrtime@1.0.3: + resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} + engines: {node: '>= 0.8'} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /progress@1.1.8: + resolution: {integrity: sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==} + engines: {node: '>=0.4.0'} + dev: true + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /randomatic@3.1.1: + resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} + engines: {node: '>= 0.10.0'} + dependencies: + is-number: 4.0.0 + kind-of: 6.0.3 + math-random: 1.0.4 + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: true + + /read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + dev: true + + /readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readdirp@2.2.1: + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10 + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /readline2@1.0.1: + resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + mute-stream: 0.0.5 + dev: true + + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.6 + dev: true + + /redent@1.0.0: + resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} + engines: {node: '>=0.10.0'} + dependencies: + indent-string: 2.1.0 + strip-indent: 1.0.1 + dev: true + + /regex-cache@0.4.4: + resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-equal-shallow: 0.1.3 + dev: true + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /remove-bom-buffer@3.0.0: + resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + is-utf8: 0.2.1 + dev: true + + /remove-bom-stream@1.2.0: + resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} + engines: {node: '>= 0.10'} + dependencies: + remove-bom-buffer: 3.0.0 + safe-buffer: 5.2.1 + through2: 2.0.5 + dev: true + + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} + dependencies: + is-finite: 1.1.0 + dev: true + + /replace-ext@0.0.1: + resolution: {integrity: sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==} + engines: {node: '>= 0.4'} + dev: true + + /replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + dev: true + + /replace-homedir@1.0.0: + resolution: {integrity: sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==} + engines: {node: '>= 0.10'} + dependencies: + homedir-polyfill: 1.0.3 + is-absolute: 1.0.0 + remove-trailing-separator: 1.1.0 + dev: true + + /require-dir@1.2.0: + resolution: {integrity: sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + dev: true + + /require-uncached@1.0.3: + resolution: {integrity: sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==} + engines: {node: '>=0.10.0'} + dependencies: + caller-path: 0.1.0 + resolve-from: 1.0.1 + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@1.0.1: + resolution: {integrity: sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-options@1.1.0: + resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} + engines: {node: '>= 0.10'} + dependencies: + value-or-function: 3.0.0 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@1.0.1: + resolution: {integrity: sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==} + engines: {node: '>=0.10.0'} + dependencies: + exit-hook: 1.1.1 + onetime: 1.1.0 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-async@0.1.0: + resolution: {integrity: sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==} + dependencies: + once: 1.4.0 + dev: true + + /rx-lite@3.1.2: + resolution: {integrity: sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==} + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /semver-greatest-satisfied-range@1.1.0: + resolution: {integrity: sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==} + engines: {node: '>= 0.10'} + dependencies: + sver-compat: 1.5.0 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shelljs@0.6.1: + resolution: {integrity: sha512-B1vvzXQlJ77SURr3SIUQ/afh+LwecDKAVKE1wqkBlr2PCHoZDaF6MFD+YX1u9ddQjR4z2CKx1tdqvS2Xfs5h1A==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@0.0.4: + resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==} + engines: {node: '>=0.10.0'} + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /sparkles@1.0.1: + resolution: {integrity: sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==} + engines: {node: '>= 0.10'} + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.15 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.15 + dev: true + + /spdx-license-ids@3.0.15: + resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: true + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /stream-exhaust@1.0.2: + resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} + dev: true + + /stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: true + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom-stream@1.0.0: + resolution: {integrity: sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==} + engines: {node: '>=0.10.0'} + dependencies: + first-chunk-stream: 1.0.0 + strip-bom: 2.0.0 + dev: true + + /strip-bom-stream@3.0.0: + resolution: {integrity: sha512-2di6sulSHfspbuEJHwwF6vzwijA4uaKsKYtviRQsJsOdxxb6yexiDcZFQ5oY10J50YxmCdHn/1sQmxDKbrGOVw==} + engines: {node: '>=4'} + dependencies: + first-chunk-stream: 2.0.0 + strip-bom-buf: 1.0.0 + dev: true + + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent@1.0.1: + resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + get-stdin: 4.0.1 + dev: true + + /strip-json-comments@1.0.4: + resolution: {integrity: sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==} + engines: {node: '>=0.8.0'} + hasBin: true + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /sver-compat@1.5.0: + resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==} + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + dev: true + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /symbol@0.2.3: + resolution: {integrity: sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==} + dev: true + + /table@3.8.3: + resolution: {integrity: sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==} + dependencies: + ajv: 4.11.8 + ajv-keywords: 1.5.1(ajv@4.11.8) + chalk: 1.1.3 + lodash: 4.17.21 + slice-ansi: 0.0.4 + string-width: 2.1.1 + dev: true + + /ternary-stream@2.1.1: + resolution: {integrity: sha512-j6ei9hxSoyGlqTmoMjOm+QNvUKDOIY6bNl4Uh1lhBvl6yjPW2iLqxDUYyfDPZknQ4KdRziFl+ec99iT4l7g0cw==} + engines: {node: '>= 0.10.0'} + dependencies: + duplexify: 3.7.1 + fork-stream: 0.0.4 + merge-stream: 1.0.1 + through2: 2.0.5 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through2-filter@2.0.0: + resolution: {integrity: sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==} + dependencies: + through2: 2.0.5 + xtend: 4.0.2 + dev: true + + /through2-filter@3.0.0: + resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} + dependencies: + through2: 2.0.5 + xtend: 4.0.2 + dev: true + + /through2@0.5.1: + resolution: {integrity: sha512-zexCrAOTbjkBCXGyozn7hhS3aEaqdrc59mAD2E3dKYzV1vFuEGQ1hEDJN2oQMQFwy4he2zyLqPZV+AlfS8ZWJA==} + dependencies: + readable-stream: 1.0.34 + xtend: 3.0.0 + dev: true + + /through2@0.6.5: + resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} + dependencies: + readable-stream: 1.0.34 + xtend: 4.0.2 + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /time-stamp@1.1.0: + resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} + engines: {node: '>=0.10.0'} + dev: true + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-absolute-glob@0.1.1: + resolution: {integrity: sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + dev: true + + /to-absolute-glob@2.0.2: + resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} + engines: {node: '>=0.10.0'} + dependencies: + is-absolute: 1.0.0 + is-negated-glob: 1.0.0 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /to-through@2.0.0: + resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} + engines: {node: '>= 0.10'} + dependencies: + through2: 2.0.5 + dev: true + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.0 + dev: true + + /trim-newlines@1.0.0: + resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==} + engines: {node: '>=0.10.0'} + dev: true + + /ts-jest@29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.2.2): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.23.0 + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.4 + typescript: 5.2.2 + yargs-parser: 21.1.1 + dev: true + + /ts-node@10.9.1(@types/node@20.8.2)(typescript@5.2.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.8.2 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: true + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: true + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: true + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /undertaker-registry@1.0.1: + resolution: {integrity: sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==} + engines: {node: '>= 0.10'} + dev: true + + /undertaker@1.3.0: + resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} + engines: {node: '>= 0.10'} + dependencies: + arr-flatten: 1.1.0 + arr-map: 2.0.2 + bach: 1.2.0 + collection-map: 1.0.0 + es6-weak-map: 2.0.3 + fast-levenshtein: 1.1.4 + last-run: 1.1.1 + object.defaults: 1.1.0 + object.reduce: 1.0.1 + undertaker-registry: 1.0.1 + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unique-stream@2.3.1: + resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} + dependencies: + json-stable-stringify-without-jsonify: 1.0.1 + through2-filter: 3.0.0 + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /user-home@2.0.0: + resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /v8flags@3.2.0: + resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} + engines: {node: '>= 0.10'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /vali-date@1.0.0: + resolution: {integrity: sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==} + engines: {node: '>=0.10.0'} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /value-or-function@3.0.0: + resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} + engines: {node: '>= 0.10'} + dev: true + + /vinyl-fs@2.4.4: + resolution: {integrity: sha512-lxMlQW/Wxk/pwhooY3Ut0Q11OH5ZvZfV0Gg1c306fBNWznQ6ZeQaCdE7XX0O/PpGSqgAsHMBxwFgcGxiYW3hZg==} + engines: {node: '>=0.10'} + dependencies: + duplexify: 3.7.1 + glob-stream: 5.3.5 + graceful-fs: 4.2.11 + gulp-sourcemaps: 1.6.0 + is-valid-glob: 0.3.0 + lazystream: 1.0.1 + lodash.isequal: 4.5.0 + merge-stream: 1.0.1 + mkdirp: 0.5.6 + object-assign: 4.1.1 + readable-stream: 2.3.8 + strip-bom: 2.0.0 + strip-bom-stream: 1.0.0 + through2: 2.0.5 + through2-filter: 2.0.0 + vali-date: 1.0.0 + vinyl: 1.2.0 + dev: true + + /vinyl-fs@3.0.3: + resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} + engines: {node: '>= 0.10'} + dependencies: + fs-mkdirp-stream: 1.0.0 + glob-stream: 6.1.0 + graceful-fs: 4.2.11 + is-valid-glob: 1.0.0 + lazystream: 1.0.1 + lead: 1.0.0 + object.assign: 4.1.4 + pumpify: 1.5.1 + readable-stream: 2.3.8 + remove-bom-buffer: 3.0.0 + remove-bom-stream: 1.2.0 + resolve-options: 1.1.0 + through2: 2.0.5 + to-through: 2.0.0 + value-or-function: 3.0.0 + vinyl: 2.2.1 + vinyl-sourcemap: 1.1.0 + dev: true + + /vinyl-sourcemap@1.1.0: + resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} + engines: {node: '>= 0.10'} + dependencies: + append-buffer: 1.0.2 + convert-source-map: 1.9.0 + graceful-fs: 4.2.11 + normalize-path: 2.1.1 + now-and-later: 2.0.1 + remove-bom-buffer: 3.0.0 + vinyl: 2.2.1 + dev: true + + /vinyl-sourcemaps-apply@0.2.1: + resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} + dependencies: + source-map: 0.5.7 + dev: true + + /vinyl@0.5.3: + resolution: {integrity: sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==} + engines: {node: '>= 0.9'} + dependencies: + clone: 1.0.4 + clone-stats: 0.0.1 + replace-ext: 0.0.1 + dev: true + + /vinyl@1.2.0: + resolution: {integrity: sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==} + engines: {node: '>= 0.9'} + dependencies: + clone: 1.0.4 + clone-stats: 0.0.1 + replace-ext: 0.0.1 + dev: true + + /vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + dev: true + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /which-module@1.0.0: + resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /window-size@0.2.0: + resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} + engines: {node: '>= 0.10.0'} + hasBin: true + dev: true + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /write@0.2.1: + resolution: {integrity: sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==} + engines: {node: '>=0.10.0'} + dependencies: + mkdirp: 0.5.6 + dev: true + + /ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + 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 + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /xtend@3.0.0: + resolution: {integrity: sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==} + engines: {node: '>=0.4'} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yargs-parser@2.4.1: + resolution: {integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==} + dependencies: + camelcase: 3.0.0 + lodash.assign: 4.2.0 + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs-parser@5.0.1: + resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} + dependencies: + camelcase: 3.0.0 + object.assign: 4.1.4 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + 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.8 + yargs-parser: 21.1.1 + dev: true + + /yargs@4.7.0: + resolution: {integrity: sha512-xDPzHvjDQWcYDrVEo+fcRsJiYVR5l1B6BG6gxOBeZWCEGfbtmdY9HlVKp0IvrxiRL3+aZ+K0tOfRLNMZ+N8rzQ==} + dependencies: + camelcase: 2.1.1 + cliui: 3.2.0 + decamelize: 1.2.0 + lodash.assign: 4.2.0 + os-locale: 1.4.0 + pkg-conf: 1.1.3 + read-pkg-up: 1.0.1 + require-main-filename: 1.0.1 + string-width: 1.0.2 + window-size: 0.2.0 + y18n: 3.2.2 + yargs-parser: 2.4.1 + dev: true + + /yargs@7.1.2: + resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==} + dependencies: + camelcase: 3.0.0 + cliui: 3.2.0 + decamelize: 1.2.0 + get-caller-file: 1.0.3 + os-locale: 1.4.0 + read-pkg-up: 1.0.1 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 1.0.2 + which-module: 1.0.0 + y18n: 3.2.2 + yargs-parser: 5.0.1 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap new file mode 100644 index 0000000..06d6863 --- /dev/null +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -0,0 +1,107 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`The data structure for coloredarea series should be appropriate. The segments data should be appropriate. 1`] = ` +[ + { + "color": "red", + "points": [ + { + "index": 0, + "segmentColor": "red", + "x": 0, + "y": 10, + }, + { + "index": 1, + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + ], + }, + { + "color": "blue", + "points": [ + { + "index": 1, + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + { + "index": 2, + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + ], + }, + { + "color": "yellow", + "points": [ + { + "index": 2, + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + { + "index": 3, + "segmentColor": "green", + "x": 3, + "y": 40, + }, + ], + }, + { + "color": "green", + "points": [ + { + "index": 3, + "segmentColor": "green", + "x": 3, + "y": 40, + }, + { + "index": 4, + "segmentColor": "pink", + "x": 4, + "y": 50, + }, + ], + }, +] +`; + +exports[`The data structure for coloredarea series should be appropriate. The series data should be appropriate. 1`] = ` +{ + "data": [ + { + "segmentColor": "red", + "x": 0, + "y": 10, + }, + { + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + { + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + { + "segmentColor": "green", + "x": 3, + "y": 40, + }, + { + "segmentColor": "pink", + "x": 4, + "y": 50, + }, + ], + "seriesType": "line", +} +`; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap new file mode 100644 index 0000000..3005b52 --- /dev/null +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -0,0 +1,107 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`The data structure for coloredline series should be appropriate. The segments data should be appropriate. 1`] = ` +[ + { + "color": "red", + "points": [ + { + "index": 0, + "segmentColor": "red", + "x": 0, + "y": 10, + }, + { + "index": 1, + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + ], + }, + { + "color": "blue", + "points": [ + { + "index": 1, + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + { + "index": 2, + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + ], + }, + { + "color": "yellow", + "points": [ + { + "index": 2, + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + { + "index": 3, + "segmentColor": "green", + "x": 3, + "y": 40, + }, + ], + }, + { + "color": "green", + "points": [ + { + "index": 3, + "segmentColor": "green", + "x": 3, + "y": 40, + }, + { + "index": 4, + "segmentColor": "pink", + "x": 4, + "y": 50, + }, + ], + }, +] +`; + +exports[`The data structure for coloredline series should be appropriate. The series data should be appropriate. 1`] = ` +{ + "data": [ + { + "segmentColor": "red", + "x": 0, + "y": 10, + }, + { + "segmentColor": "blue", + "x": 1, + "y": 20, + }, + { + "segmentColor": "yellow", + "x": 2, + "y": 30, + }, + { + "segmentColor": "green", + "x": 3, + "y": 40, + }, + { + "segmentColor": "pink", + "x": 4, + "y": 50, + }, + ], + "seriesType": "line", +} +`; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts new file mode 100644 index 0000000..f066481 --- /dev/null +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -0,0 +1,59 @@ +import Highcharts from 'highcharts'; +import multicolorModule from '../../js/multicolor_series.js'; +import { ChartSeriesColored } from '../../types.js'; +import { generateFormattedSegments, generateFormattedSeries } from './helper'; + +multicolorModule(Highcharts); + +describe("The data structure for coloredarea series should be appropriate.", () => { + const containerElement = document.createElement("div"); + const chart = Highcharts.chart(containerElement, { + accessibility: { + enabled: false + }, + + series: [ + { + type: "coloredarea", + data: [ + { + y: 10, + segmentColor: "red" + }, + { + y: 20, + segmentColor: "blue" + }, + { + y: 30, + segmentColor: "yellow" + }, + { + y: 40, + segmentColor: "green" + }, + { + y: 50, + segmentColor: "pink" + } + ] + } + ] + }) as ChartSeriesColored; + + const series = chart.series[0]; + + if (series) { + const data = series.data; + + test('The series data should be appropriate.', () => { + const formattedSeries = generateFormattedSeries(series, data); + expect(formattedSeries).toMatchSnapshot(); + }); + + test('The segments data should be appropriate.', () => { + const formattedSegments = generateFormattedSegments(series.segments, data); + expect(formattedSegments).toMatchSnapshot(); + }); + } +}); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts new file mode 100644 index 0000000..a46db4c --- /dev/null +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -0,0 +1,59 @@ +import Highcharts from 'highcharts'; +import multicolorModule from '../../js/multicolor_series.js'; +import { ChartSeriesColored } from '../../types.js'; +import { generateFormattedSegments, generateFormattedSeries } from './helper'; + +multicolorModule(Highcharts); + +describe("The data structure for coloredline series should be appropriate.", () => { + const containerElement = document.createElement("div"); + const chart = Highcharts.chart(containerElement, { + accessibility: { + enabled: false + }, + + series: [ + { + type: "coloredline", + data: [ + { + y: 10, + segmentColor: "red" + }, + { + y: 20, + segmentColor: "blue" + }, + { + y: 30, + segmentColor: "yellow" + }, + { + y: 40, + segmentColor: "green" + }, + { + y: 50, + segmentColor: "pink" + } + ] + } + ] + }) as ChartSeriesColored; + + const series = chart.series[0]; + + if (series) { + const data = series.data; + + test('The series data should be appropriate.', () => { + const formattedSeries = generateFormattedSeries(series, data); + expect(formattedSeries).toMatchSnapshot(); + }); + + test('The segments data should be appropriate.', () => { + const formattedSegments = generateFormattedSegments(series.segments, data); + expect(formattedSegments).toMatchSnapshot(); + }); + } +}); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts new file mode 100644 index 0000000..807284a --- /dev/null +++ b/tests/jest-snapshot/helper.ts @@ -0,0 +1,29 @@ +import { SeriesColored, SeriesColoredPoint, SeriesColoredSegment } from "../../types"; + +export const generateFormattedSeries = (series: SeriesColored, data: SeriesColoredPoint[]) => ({ + seriesType: series.type, + data: data.map((point) => ({ + segmentColor: point.segmentColor, + x: point.x, + y: point.y + })) +}); + +const generateFormattedPoint = (point: SeriesColoredPoint | undefined) => ({ + index: point?.index, + segmentColor: point?.segmentColor, + x: point?.x, + y: point?.y +}); + +export const generateFormattedSegments = ( + segments: SeriesColoredSegment[], + data: SeriesColoredPoint[] +) => + segments.map((segment, index) => ({ + color: segment.color, + points: [ + generateFormattedPoint(data[index]), + generateFormattedPoint(data[index + 1]) + ] + })); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a6fb4aa --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "moduleResolution": "Node", + "esModuleInterop": true, + /** + * "allowJs" will be removed once refactor the js folder to ts + * (exists for js files import to tests files). + */ + "allowJs": true, + "strict": true, + "noUncheckedIndexedAccess": true + } +} diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..956f81d --- /dev/null +++ b/types.d.ts @@ -0,0 +1,50 @@ +import Highcharts, { SeriesOptions, PointOptionsObject } from "highcharts"; + +/** + * Represents data for chart options. + */ +interface SeriesColoredPointOptions extends PointOptionsObject { + segmentColor?: string; +} + +interface SeriesColoredOptions extends SeriesOptions { + type: Type; + data?: SeriesColoredPointOptions[]; +} + +type SeriesColoredlineOptions = SeriesColoredOptions<'coloredline'>; +type SeriesColoredareaOptions = SeriesColoredOptions<'coloredarea'>; + +/** + * Globally accessible on the Highcharts module. + */ +declare module "highcharts" { + interface SeriesOptionsRegistry { + SeriesColoredlineOptions?: SeriesColoredlineOptions; + SeriesColoredareaOptions?: SeriesColoredareaOptions; + } +} + +/** + * Represents created chart data. + */ +interface SeriesColoredPoint extends Highcharts.Point { + segmentColor: string; +} + +interface SeriesColoredSegment { + color: string; + points: SeriesColoredPointOptions[]; +} + +interface SeriesColored extends Highcharts.Series { + data: SeriesColoredPoint[]; + segments: SeriesColoredSegment[]; + graphPath: any; +} + +interface ChartSeriesColored extends Highcharts.Chart { + series: SeriesColored[]; +} + +export { ChartSeriesColored, SeriesColored, SeriesColoredSegment, SeriesColoredPoint }; From 9ce2a32c83f3591b57d8d6ab1588c35e1b8c54fc Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 4 Oct 2023 12:59:48 +0200 Subject: [PATCH 02/66] Added jest snapshot tests for refactoring --- .../coloredarea-series.test.ts.snap | 22960 ++++++++++++++- .../coloredline-series.test.ts.snap | 23030 +++++++++++++++- .../jest-snapshot/coloredarea-series.test.ts | 13 +- .../jest-snapshot/coloredline-series.test.ts | 13 +- tests/jest-snapshot/helper.ts | 5 +- types.d.ts | 2 +- 6 files changed, 46013 insertions(+), 10 deletions(-) diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap index 06d6863..b1b3b6b 100644 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -1,6 +1,18287 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`The data structure for coloredarea series should be appropriate. The segments data should be appropriate. 1`] = ` +exports[`The data structure for coloredarea series should be appropriate. The graph element should match to the snapshot. 1`] = ` +[ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, +] +`; + +exports[`The data structure for coloredarea series should be appropriate. The segments data should match to the snapshot. 1`] = ` [ { "color": "red", @@ -73,7 +18354,7 @@ exports[`The data structure for coloredarea series should be appropriate. The se ] `; -exports[`The data structure for coloredarea series should be appropriate. The series data should be appropriate. 1`] = ` +exports[`The data structure for coloredarea series should be appropriate. The series data should match to the snapshot. 1`] = ` { "data": [ { @@ -105,3 +18386,4678 @@ exports[`The data structure for coloredarea series should be appropriate. The se "seriesType": "line", } `; + +exports[`The data structure for coloredarea series should be appropriate. The tracker element should match to the snapshot. 1`] = ` +D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": { + "mouseout": [Function], + "mouseover": [Function], + }, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + Series 1 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 21, + "undefined": undefined, + "visibility": "visible", + "zIndex": 2, +} +`; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index 3005b52..e163ac1 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,6 +1,18367 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`The data structure for coloredline series should be appropriate. The segments data should be appropriate. 1`] = ` +exports[`The data structure for coloredline series should be appropriate. The graph element should match to the snapshot. 1`] = ` +[ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 1, + "undefined": undefined, + "visibility": "inherit", + "zIndex": 1, + }, +] +`; + +exports[`The data structure for coloredline series should be appropriate. The segments data should match to the snapshot. 1`] = ` [ { "color": "red", @@ -73,7 +18434,7 @@ exports[`The data structure for coloredline series should be appropriate. The se ] `; -exports[`The data structure for coloredline series should be appropriate. The series data should be appropriate. 1`] = ` +exports[`The data structure for coloredline series should be appropriate. The series data should match to the snapshot. 1`] = ` { "data": [ { @@ -105,3 +18466,4668 @@ exports[`The data structure for coloredline series should be appropriate. The se "seriesType": "line", } `; + +exports[`The data structure for coloredline series should be appropriate. The tracker element should match to the snapshot. 1`] = ` +D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "d": "M 0 0", + "element": , + "onEvents": { + "mouseout": [Function], + "mouseover": [Function], + }, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "doTransform": false, + "element": + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "parentGroup": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + , + "handleZ": true, + "onEvents": {}, + "opacity": 1, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "undefined": undefined, + "zIndex": 3, + }, + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "rotation": 0, + "rotationOriginX": 0, + "rotationOriginY": 0, + "scaleX": 1, + "scaleY": 1, + "translateX": NaN, + "translateY": 10, + "visibility": "inherit", + "zIndex": 0.1, + }, + "pathArray": [ + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + NaN, + undefined, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + NaN, + undefined, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + NaN, + undefined, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + NaN, + undefined, + ], + ], + "renderer": V { + "alignedObjects": [ + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "actualWidth": undefined, + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "margin": 15, + "style": { + "color": "#333333", + "fontWeight": "bold", + }, + "text": "Chart title", + "widthAdjust": -44, + "y": 0, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": + Chart title + , + "firstLineMetrics": undefined, + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "rotation": undefined, + "styles": { + "color": "#333333", + "fontSize": "1.2em", + "fontWeight": "bold", + "width": "536px", + }, + "textCache": "Chart title,false,false,,,1.2em,536", + "textStr": "Chart title", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 300, + "y": 10, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "center", + "height": NaN, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "widthAdjust": -44, + "y": NaN, + }, + "alignTo": "spacingBox", + "alignValue": "center", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "536px", + }, + "textCache": ",false,false,,,0.8em,536", + "textStr": "", + "textWidth": 536, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 10, + "y": 387, + }, + "alignByTranslate": false, + "alignOptions": { + "align": "left", + "height": NaN, + "margin": 15, + "style": { + "color": "#666666", + "fontSize": "0.8em", + }, + "text": "", + "verticalAlign": "bottom", + "y": 2, + }, + "alignTo": "spacingBox", + "alignValue": "left", + "element": , + "onEvents": {}, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#666666", + "fontSize": "0.8em", + "width": "580px", + }, + "textCache": ",false,false,,,0.8em,580", + "textStr": "", + "textWidth": 580, + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 4, + }, + D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "alignAttr": { + "x": 590, + "y": 395, + }, + "alignByTranslate": undefined, + "alignOptions": { + "align": "right", + "verticalAlign": "bottom", + "x": -10, + "y": -5, + }, + "alignTo": "renderer", + "alignValue": "right", + "element": + Highcharts.com + , + "onEvents": { + "click": [Function], + }, + "opacity": 1, + "placed": true, + "renderer": [Circular], + "styles": { + "color": "#999999", + "cursor": "pointer", + "fontSize": "0.6em", + }, + "textCache": "Highcharts.com,false,false,,,0.6em,", + "textStr": "Highcharts.com", + "undefined": undefined, + "update": [Function], + "xSetter": [Function], + "zIndex": 8, + }, + ], + "allowHTML": undefined, + "box": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "boxWrapper": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "element": + + Created with Highcharts 11.1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values + + + + + + + + + + + + + + + Chart title + + + + + + + + + + + + Series 1 + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + Highcharts.com + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "styles": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + }, + "cache": { + ",1rem,0.8em,0,536,center,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + ",1rem,0.8em,0,580,left,,": { + "height": undefined, + "width": undefined, + "x": 0, + "y": 0, + }, + }, + "cacheKeys": [ + ",1rem,0.8em,0,536,center,,", + ",1rem,0.8em,0,580,left,,", + ], + "chartIndex": 0, + "defs": D { + "SVG_NS": "http://www.w3.org/2000/svg", + "added": true, + "element": + + + + + + + + + + + + + + + + , + "onEvents": {}, + "opacity": 1, + "renderer": [Circular], + "undefined": undefined, + }, + "forExport": undefined, + "globalAnimation": true, + "gradients": {}, + "height": 400, + "imgCount": 0, + "plotBox": { + "height": NaN, + "width": NaN, + "x": NaN, + "y": 10, + }, + "rootFontSize": "1rem", + "spacingBox": { + "height": 375, + "width": 580, + "x": 10, + "y": 10, + }, + "style": { + "fontFamily": "Helvetica, Arial, sans-serif", + "fontSize": "1rem", + }, + "styledMode": false, + "url": "", + "width": 600, + }, + "stroke-width": 21, + "undefined": undefined, + "visibility": "visible", + "zIndex": 2, +} +`; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index f066481..762a43a 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -4,6 +4,7 @@ import { ChartSeriesColored } from '../../types.js'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); +Highcharts.useSerialIds(true); describe("The data structure for coloredarea series should be appropriate.", () => { const containerElement = document.createElement("div"); @@ -46,12 +47,20 @@ describe("The data structure for coloredarea series should be appropriate.", () if (series) { const data = series.data; - test('The series data should be appropriate.', () => { + test('The graph element should match to the snapshot.', () => { + expect(series.graph).toMatchSnapshot(); + }); + + test('The tracker element should match to the snapshot.', () => { + expect(series.tracker).toMatchSnapshot(); + }); + + test('The series data should match to the snapshot.', () => { const formattedSeries = generateFormattedSeries(series, data); expect(formattedSeries).toMatchSnapshot(); }); - test('The segments data should be appropriate.', () => { + test('The segments data should match to the snapshot.', () => { const formattedSegments = generateFormattedSegments(series.segments, data); expect(formattedSegments).toMatchSnapshot(); }); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index a46db4c..52cbea8 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -4,6 +4,7 @@ import { ChartSeriesColored } from '../../types.js'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); +Highcharts.useSerialIds(true); describe("The data structure for coloredline series should be appropriate.", () => { const containerElement = document.createElement("div"); @@ -46,12 +47,20 @@ describe("The data structure for coloredline series should be appropriate.", () if (series) { const data = series.data; - test('The series data should be appropriate.', () => { + test('The graph element should match to the snapshot.', () => { + expect(series.graph).toMatchSnapshot(); + }); + + test('The tracker element should match to the snapshot.', () => { + expect(series.tracker).toMatchSnapshot(); + }); + + test('The series data should match to the snapshot.', () => { const formattedSeries = generateFormattedSeries(series, data); expect(formattedSeries).toMatchSnapshot(); }); - test('The segments data should be appropriate.', () => { + test('The segments data should match to the snapshot.', () => { const formattedSegments = generateFormattedSegments(series.segments, data); expect(formattedSegments).toMatchSnapshot(); }); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts index 807284a..cf90004 100644 --- a/tests/jest-snapshot/helper.ts +++ b/tests/jest-snapshot/helper.ts @@ -1,6 +1,9 @@ import { SeriesColored, SeriesColoredPoint, SeriesColoredSegment } from "../../types"; -export const generateFormattedSeries = (series: SeriesColored, data: SeriesColoredPoint[]) => ({ +export const generateFormattedSeries = ( + series: SeriesColored, + data: SeriesColoredPoint[] +) => ({ seriesType: series.type, data: data.map((point) => ({ segmentColor: point.segmentColor, diff --git a/types.d.ts b/types.d.ts index 956f81d..bc52c3a 100644 --- a/types.d.ts +++ b/types.d.ts @@ -40,7 +40,7 @@ interface SeriesColoredSegment { interface SeriesColored extends Highcharts.Series { data: SeriesColoredPoint[]; segments: SeriesColoredSegment[]; - graphPath: any; + tracker: SVGPathElement; } interface ChartSeriesColored extends Highcharts.Chart { From e4169e8c4aaf71b998107f4a87ad1437020ab7b7 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Thu, 5 Oct 2023 10:35:21 +0200 Subject: [PATCH 03/66] Adjusted code formating --- jest.config.ts | 6 +++--- tests/jest-snapshot/coloredarea-series.test.ts | 2 +- tests/jest-snapshot/coloredline-series.test.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jest.config.ts b/jest.config.ts index ee256b4..a31412c 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,9 +1,9 @@ import type { Config } from 'jest'; const config: Config = { - preset: "ts-jest", - clearMocks: true, - testEnvironment: "jest-environment-jsdom" + preset: "ts-jest", + clearMocks: true, + testEnvironment: "jest-environment-jsdom" }; export default config; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 762a43a..3e46621 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -10,7 +10,7 @@ describe("The data structure for coloredarea series should be appropriate.", () const containerElement = document.createElement("div"); const chart = Highcharts.chart(containerElement, { accessibility: { - enabled: false + enabled: false }, series: [ diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 52cbea8..6ac5718 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -10,7 +10,7 @@ describe("The data structure for coloredline series should be appropriate.", () const containerElement = document.createElement("div"); const chart = Highcharts.chart(containerElement, { accessibility: { - enabled: false + enabled: false }, series: [ From cc060217f3d1d8e052205a874e091f0d4a28af79 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 10 Oct 2023 11:20:59 +0200 Subject: [PATCH 04/66] Refactored configs/types/tests after review. --- jest.config.ts | 3 +- .../coloredarea-series.test.ts.snap | 19409 +--------------- .../coloredline-series.test.ts.snap | 19318 +-------------- .../jest-snapshot/coloredarea-series.test.ts | 90 +- .../jest-snapshot/coloredline-series.test.ts | 104 +- tests/jest-snapshot/helper.ts | 5 +- tsconfig.json | 6 +- types.d.ts | 39 +- 8 files changed, 1726 insertions(+), 37248 deletions(-) diff --git a/jest.config.ts b/jest.config.ts index a31412c..4c4404b 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -3,7 +3,8 @@ import type { Config } from 'jest'; const config: Config = { preset: "ts-jest", clearMocks: true, - testEnvironment: "jest-environment-jsdom" + testEnvironment: "jest-environment-jsdom", + modulePaths: ['.'] }; export default config; diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap index b1b3b6b..dc73de6 100644 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -1,18287 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`The data structure for coloredarea series should be appropriate. The graph element should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. Coloredarea series graph element tests. The graph paths should match the snapshot. 1`] = ` [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, + "", + "", + "", + "", + "", + "", ] `; -exports[`The data structure for coloredarea series should be appropriate. The segments data should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. The segments data should match the snapshot. 1`] = ` [ { "color": "red", @@ -18290,13 +20,13 @@ exports[`The data structure for coloredarea series should be appropriate. The se "index": 0, "segmentColor": "red", "x": 0, - "y": 10, + "y": 40, }, { "index": 1, "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, ], }, @@ -18307,7 +37,7 @@ exports[`The data structure for coloredarea series should be appropriate. The se "index": 1, "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, { "index": 2, @@ -18328,44 +58,78 @@ exports[`The data structure for coloredarea series should be appropriate. The se }, { "index": 3, - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, }, ], }, { - "color": "green", + "color": "brown", "points": [ { "index": 3, - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, + }, + { + "index": 4, + "segmentColor": "green", + "x": 4, + "y": 50, }, + ], + }, + { + "color": "green", + "points": [ { "index": 4, - "segmentColor": "pink", + "segmentColor": "green", "x": 4, "y": 50, }, + { + "index": 5, + "segmentColor": "black", + "x": 5, + "y": 20, + }, + ], + }, + { + "color": "black", + "points": [ + { + "index": 5, + "segmentColor": "black", + "x": 5, + "y": 20, + }, + { + "index": 6, + "segmentColor": undefined, + "x": 6, + "y": 70, + }, ], }, ] `; -exports[`The data structure for coloredarea series should be appropriate. The series data should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. The series data should match the snapshot. 1`] = ` { "data": [ { "segmentColor": "red", "x": 0, - "y": 10, + "y": 40, }, { "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, { "segmentColor": "yellow", @@ -18373,21 +137,31 @@ exports[`The data structure for coloredarea series should be appropriate. The se "y": 30, }, { - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, }, { - "segmentColor": "pink", + "segmentColor": "green", "x": 4, "y": 50, }, + { + "segmentColor": "black", + "x": 5, + "y": 20, + }, + { + "segmentColor": undefined, + "x": 6, + "y": 70, + }, ], "seriesType": "line", } `; -exports[`The data structure for coloredarea series should be appropriate. The tracker element should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. The tracker element should match the snapshot. 1`] = ` D { "SVG_NS": "http://www.w3.org/2000/svg", "added": true, @@ -18413,7 +187,7 @@ D { "doTransform": false, "element": + + + + - - - - - - + + + + + + + + - 0 + 0 + + + 1 + + + 2 - 1 + 3 - 2 + 4 - 3 + 5 - 4 + 6 60 + + 70 + + + 80 + - - - - - - + + + + + + + + 4 + + 5 + + + 6 + 60 + + 70 + + + 80 + - - - - - - , "onEvents": {}, "opacity": 1, @@ -19981,7 +1942,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, @@ -20241,7 +2202,7 @@ D { /> - - - - - - + + + + + + + + 4 + + 5 + + + 6 + 60 + + 70 + + + 80 + - - - - - - + + + + + + + + 4 + + 5 + + + 6 + 60 + + 70 + + + 80 + - - - - - - , "onEvents": {}, "opacity": 1, @@ -21441,7 +3549,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, @@ -21597,6 +3705,66 @@ D { NaN, NaN, ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], + [ + "M", + NaN, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + undefined, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + undefined, + NaN, + ], + [ + "L", + NaN, + NaN, + ], ], "renderer": V { "alignedObjects": [ @@ -21813,24 +3981,13 @@ D { - - - - + - - - + + + + + + + + 4 + + 5 + + + 6 + 60 + + 70 + + + 80 + - - - - - - + + + + + + + + 4 + + 5 + + + 6 + 60 + + 70 + + + 80 + - - - - - - , "onEvents": {}, "opacity": 1, @@ -23030,7 +5345,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index e163ac1..c08c74e 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,18367 +1,15 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`The data structure for coloredline series should be appropriate. The graph element should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. Colored series graph element tests. The graph paths should match the snapshot. 1`] = ` [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": true, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 1, - "undefined": undefined, - "visibility": "inherit", - "zIndex": 1, - }, + "", + "", + "", + "", ] `; -exports[`The data structure for coloredline series should be appropriate. The segments data should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. The segments data should match the snapshot. 1`] = ` [ { "color": "red", @@ -18370,7 +18,7 @@ exports[`The data structure for coloredline series should be appropriate. The se "index": 0, "segmentColor": "red", "x": 0, - "y": 10, + "y": 40, }, { "index": 1, @@ -18408,24 +56,24 @@ exports[`The data structure for coloredline series should be appropriate. The se }, { "index": 3, - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, }, ], }, { - "color": "green", + "color": "brown", "points": [ { "index": 3, - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, }, { "index": 4, - "segmentColor": "pink", + "segmentColor": undefined, "x": 4, "y": 50, }, @@ -18434,13 +82,13 @@ exports[`The data structure for coloredline series should be appropriate. The se ] `; -exports[`The data structure for coloredline series should be appropriate. The series data should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. The series data should match the snapshot. 1`] = ` { "data": [ { "segmentColor": "red", "x": 0, - "y": 10, + "y": 40, }, { "segmentColor": "blue", @@ -18453,12 +101,12 @@ exports[`The data structure for coloredline series should be appropriate. The se "y": 30, }, { - "segmentColor": "green", + "segmentColor": "brown", "x": 3, - "y": 40, + "y": 10, }, { - "segmentColor": "pink", + "segmentColor": undefined, "x": 4, "y": 50, }, @@ -18467,7 +115,7 @@ exports[`The data structure for coloredline series should be appropriate. The se } `; -exports[`The data structure for coloredline series should be appropriate. The tracker element should match to the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. The tracker element should match the snapshot. 1`] = ` D { "SVG_NS": "http://www.w3.org/2000/svg", "added": true, @@ -18493,7 +141,7 @@ D { "doTransform": false, "element": + + + + + + + + - - - - - - + + + + + + + + + + + + + Series 2 + + @@ -19449,29 +1235,6 @@ D { y="0" /> - - - - - - - - + + + + + + + + + + + + + + + Series 2 + + @@ -20041,29 +1900,6 @@ D { y="0" /> - - - - - - , "onEvents": {}, "opacity": 1, @@ -20071,7 +1907,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, @@ -20341,29 +2177,6 @@ D { y="0" /> - - - - - - + + + + + + + + + + + + + Series 2 + + @@ -20919,29 +2828,6 @@ D { y="0" /> - - - - - - + + + + + + + + + + + + + Series 2 + + @@ -21511,29 +3493,6 @@ D { y="0" /> - - - - - - , "onEvents": {}, "opacity": 1, @@ -21541,7 +3500,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, @@ -21900,29 +3859,6 @@ D { y="0" /> - - - - - - + + + + + + + + + + + + + Series 2 + + @@ -22478,29 +4510,6 @@ D { y="0" /> - - - - - - + + + + + + + + + + + + + Series 2 + + @@ -23070,29 +5175,6 @@ D { y="0" /> - - - - - - , "onEvents": {}, "opacity": 1, @@ -23100,7 +5182,7 @@ D { "undefined": undefined, }, "forExport": undefined, - "globalAnimation": true, + "globalAnimation": false, "gradients": {}, "height": 400, "imgCount": 0, diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 3e46621..a9db360 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -1,68 +1,98 @@ -import Highcharts from 'highcharts'; -import multicolorModule from '../../js/multicolor_series.js'; -import { ChartSeriesColored } from '../../types.js'; +import Highcharts, { SVGElement } from 'highcharts'; +import multicolorModule from 'js/multicolor_series'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); Highcharts.useSerialIds(true); -describe("The data structure for coloredarea series should be appropriate.", () => { - const containerElement = document.createElement("div"); +describe('Refactoring regression tests - series coloredarea.', () => { + const containerElement = document.createElement('div'); const chart = Highcharts.chart(containerElement, { + chart: { + animation: false + }, + + plotOptions: { + series: { + animation: false + } + }, + accessibility: { enabled: false }, series: [ { - type: "coloredarea", + type: 'coloredarea', data: [ { - y: 10, - segmentColor: "red" + y: 40, + segmentColor: 'red' }, { - y: 20, - segmentColor: "blue" + y: 60, + segmentColor: 'blue' }, { y: 30, - segmentColor: "yellow" + segmentColor: 'yellow' }, { - y: 40, - segmentColor: "green" + y: 10, + segmentColor: 'brown' }, { y: 50, - segmentColor: "pink" + segmentColor: 'green' + }, + { + y: 20, + segmentColor: 'black' + }, + { + y: 70 } ] } ] - }) as ChartSeriesColored; + }); const series = chart.series[0]; - if (series) { - const data = series.data; - - test('The graph element should match to the snapshot.', () => { - expect(series.graph).toMatchSnapshot(); + if (!series) { + test('Chart series should be defined.', () => { + expect(series).toBeDefined(); }); - test('The tracker element should match to the snapshot.', () => { - expect(series.tracker).toMatchSnapshot(); - }); + return; + } - test('The series data should match to the snapshot.', () => { - const formattedSeries = generateFormattedSeries(series, data); - expect(formattedSeries).toMatchSnapshot(); + const data = series.data, + graph = series.graph as unknown as SVGElement[]; + + describe('Coloredarea series graph element tests.', () => { + test('The graph element should be an six elements array.', () => { + expect(graph.length).toEqual(6); }); - test('The segments data should match to the snapshot.', () => { - const formattedSegments = generateFormattedSegments(series.segments, data); - expect(formattedSegments).toMatchSnapshot(); + test('The graph paths should match the snapshot.', () => { + const paths = graph.map((graph) => graph.element.outerHTML); + expect(paths).toMatchSnapshot(); }); - } + }); + + test('The tracker element should match the snapshot.', () => { + expect(series.tracker).toMatchSnapshot(); + }); + + test('The series data should match the snapshot.', () => { + const formattedSeries = generateFormattedSeries(series, data); + expect(formattedSeries).toMatchSnapshot(); + }); + + test('The segments data should match the snapshot.', () => { + const formattedSegments = generateFormattedSegments(series.segments, data); + expect(formattedSegments).toMatchSnapshot(); + }); }); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 6ac5718..9bee78f 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -1,68 +1,114 @@ -import Highcharts from 'highcharts'; -import multicolorModule from '../../js/multicolor_series.js'; -import { ChartSeriesColored } from '../../types.js'; +import Highcharts, { SVGElement } from 'highcharts'; +import multicolorModule from 'js/multicolor_series'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); Highcharts.useSerialIds(true); -describe("The data structure for coloredline series should be appropriate.", () => { - const containerElement = document.createElement("div"); +describe('Refactoring regression tests - series coloredline.', () => { + const containerElement = document.createElement('div'); const chart = Highcharts.chart(containerElement, { + chart: { + animation: false + }, + + plotOptions: { + series: { + animation: false + } + }, + accessibility: { enabled: false }, series: [ { - type: "coloredline", + type: 'coloredline', data: [ { - y: 10, - segmentColor: "red" + y: 40, + segmentColor: 'red' }, { y: 20, - segmentColor: "blue" + segmentColor: 'blue' }, { y: 30, - segmentColor: "yellow" + segmentColor: 'yellow' }, { - y: 40, - segmentColor: "green" + y: 10, + segmentColor: 'brown' + }, + { + y: 50 + } + ] + }, + { + type: 'coloredline', + data: [ + { + y: 10, + segmentColor: 'lime' + }, + { + y: 30, + segmentColor: 'pink' + }, + { + y: 20, + segmentColor: 'navy' }, { y: 50, - segmentColor: "pink" + segmentColor: 'olive' + }, + { + y: 40 } ] } ] - }) as ChartSeriesColored; + }); const series = chart.series[0]; - if (series) { - const data = series.data; - - test('The graph element should match to the snapshot.', () => { - expect(series.graph).toMatchSnapshot(); + if (!series) { + test('Chart series should be defined.', () => { + expect(series).toBeDefined(); }); - test('The tracker element should match to the snapshot.', () => { - expect(series.tracker).toMatchSnapshot(); - }); + return; + } + + const data = series.data, + graph = series.graph as unknown as SVGElement[]; - test('The series data should match to the snapshot.', () => { - const formattedSeries = generateFormattedSeries(series, data); - expect(formattedSeries).toMatchSnapshot(); + describe('Colored series graph element tests.', () => { + test('The graph element should be an four elements array.', () => { + expect(graph.length).toEqual(4); }); - test('The segments data should match to the snapshot.', () => { - const formattedSegments = generateFormattedSegments(series.segments, data); - expect(formattedSegments).toMatchSnapshot(); + test('The graph paths should match the snapshot.', () => { + const paths = graph.map((graph) => graph.element.outerHTML); + expect(paths).toMatchSnapshot(); }); - } + }); + + test('The tracker element should match the snapshot.', () => { + expect(series.tracker).toMatchSnapshot(); + }); + + test('The series data should match the snapshot.', () => { + const formattedSeries = generateFormattedSeries(series, data); + expect(formattedSeries).toMatchSnapshot(); + }); + + test('The segments data should match the snapshot.', () => { + const formattedSegments = generateFormattedSegments(series.segments, data); + expect(formattedSegments).toMatchSnapshot(); + }); }); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts index cf90004..91a0207 100644 --- a/tests/jest-snapshot/helper.ts +++ b/tests/jest-snapshot/helper.ts @@ -1,7 +1,8 @@ -import { SeriesColored, SeriesColoredPoint, SeriesColoredSegment } from "../../types"; +import { Series } from "highcharts"; +import { SeriesColoredPoint, SeriesColoredSegment } from "types"; export const generateFormattedSeries = ( - series: SeriesColored, + series: Series, data: SeriesColoredPoint[] ) => ({ seriesType: series.type, diff --git a/tsconfig.json b/tsconfig.json index a6fb4aa..df7b26b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,10 @@ */ "allowJs": true, "strict": true, - "noUncheckedIndexedAccess": true + "noUncheckedIndexedAccess": true, + "baseUrl": ".", + "paths": { + "js/*": ["js/*"] + } } } diff --git a/types.d.ts b/types.d.ts index bc52c3a..05b4f8c 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,4 +1,11 @@ -import Highcharts, { SeriesOptions, PointOptionsObject } from "highcharts"; +import { SeriesOptions, PointOptionsObject, Point } from "highcharts"; + +/** + * Shared types. + */ +type SeriesColoredSegment = { + color: string; +}; /** * Represents data for chart options. @@ -7,7 +14,9 @@ interface SeriesColoredPointOptions extends PointOptionsObject { segmentColor?: string; } -interface SeriesColoredOptions extends SeriesOptions { +type SeriesColoredType = 'coloredline' | 'coloredarea'; + +interface SeriesColoredOptions extends SeriesOptions { type: Type; data?: SeriesColoredPointOptions[]; } @@ -23,28 +32,18 @@ declare module "highcharts" { SeriesColoredlineOptions?: SeriesColoredlineOptions; SeriesColoredareaOptions?: SeriesColoredareaOptions; } + + interface Series { + tracker: SVGElement; + segments: SeriesColoredSegment[]; + } } /** * Represents created chart data. */ -interface SeriesColoredPoint extends Highcharts.Point { - segmentColor: string; -} - -interface SeriesColoredSegment { - color: string; - points: SeriesColoredPointOptions[]; -} - -interface SeriesColored extends Highcharts.Series { - data: SeriesColoredPoint[]; - segments: SeriesColoredSegment[]; - tracker: SVGPathElement; -} - -interface ChartSeriesColored extends Highcharts.Chart { - series: SeriesColored[]; +interface SeriesColoredPoint extends Point { + segmentColor?: string; } -export { ChartSeriesColored, SeriesColored, SeriesColoredSegment, SeriesColoredPoint }; +export { SeriesColoredSegment, SeriesColoredPoint }; From e61b9283d313fdd920eb0102b5b51c165b24a14b Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 10 Oct 2023 11:32:38 +0200 Subject: [PATCH 05/66] Tests code refactored. --- .../__snapshots__/coloredline-series.test.ts.snap | 2 +- tests/jest-snapshot/coloredarea-series.test.ts | 2 +- tests/jest-snapshot/coloredline-series.test.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index c08c74e..bae0ad4 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Refactoring regression tests - series coloredline. Colored series graph element tests. The graph paths should match the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. Coloredline series graph element tests. The graph paths should match the snapshot. 1`] = ` [ "", "", diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index a9db360..92cafcf 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -14,7 +14,7 @@ describe('Refactoring regression tests - series coloredarea.', () => { plotOptions: { series: { - animation: false + animation: false } }, diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 9bee78f..2d39323 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -14,7 +14,7 @@ describe('Refactoring regression tests - series coloredline.', () => { plotOptions: { series: { - animation: false + animation: false } }, @@ -87,7 +87,7 @@ describe('Refactoring regression tests - series coloredline.', () => { const data = series.data, graph = series.graph as unknown as SVGElement[]; - describe('Colored series graph element tests.', () => { + describe('Coloredline series graph element tests.', () => { test('The graph element should be an four elements array.', () => { expect(graph.length).toEqual(4); }); From a3bfebd114a6d1db322cbe83155485b8cd85eaff Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 11 Oct 2023 14:41:36 +0200 Subject: [PATCH 06/66] Added tests refactor. --- .../coloredarea-series.test.ts.snap | 5270 +---------------- .../coloredline-series.test.ts.snap | 5165 +--------------- .../jest-snapshot/coloredarea-series.test.ts | 34 +- .../jest-snapshot/coloredline-series.test.ts | 56 +- tests/jest-snapshot/helper.ts | 25 +- typeguards.ts | 7 + types.d.ts | 16 +- 7 files changed, 134 insertions(+), 10439 deletions(-) create mode 100644 typeguards.ts diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap index dc73de6..596cf19 100644 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -1,13 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Refactoring regression tests - series coloredarea. Coloredarea series graph element tests. The graph paths should match the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. Graph element tests. The graph paths should match the snapshot. 1`] = ` [ "", "", "", - "", "", - "", + "", ] `; @@ -17,13 +16,11 @@ exports[`Refactoring regression tests - series coloredarea. The segments data sh "color": "red", "points": [ { - "index": 0, "segmentColor": "red", "x": 0, "y": 40, }, { - "index": 1, "segmentColor": "blue", "x": 1, "y": 60, @@ -34,13 +31,11 @@ exports[`Refactoring regression tests - series coloredarea. The segments data sh "color": "blue", "points": [ { - "index": 1, "segmentColor": "blue", "x": 1, "y": 60, }, { - "index": 2, "segmentColor": "yellow", "x": 2, "y": 30, @@ -51,65 +46,47 @@ exports[`Refactoring regression tests - series coloredarea. The segments data sh "color": "yellow", "points": [ { - "index": 2, "segmentColor": "yellow", "x": 2, "y": 30, }, { - "index": 3, - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, ], }, { - "color": "brown", + "color": "green", "points": [ { - "index": 3, - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, { - "index": 4, - "segmentColor": "green", - "x": 4, - "y": 50, - }, - ], - }, - { - "color": "green", - "points": [ - { - "index": 4, "segmentColor": "green", "x": 4, "y": 50, }, { - "index": 5, - "segmentColor": "black", + "segmentColor": "brown", "x": 5, "y": 20, }, ], }, { - "color": "black", + "color": "brown", "points": [ { - "index": 5, - "segmentColor": "black", + "segmentColor": "brown", "x": 5, "y": 20, }, { - "index": 6, - "segmentColor": undefined, + "segmentColor": "pink", "x": 6, "y": 70, }, @@ -137,7 +114,7 @@ exports[`Refactoring regression tests - series coloredarea. The series data shou "y": 30, }, { - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, @@ -147,12 +124,12 @@ exports[`Refactoring regression tests - series coloredarea. The series data shou "y": 50, }, { - "segmentColor": "black", + "segmentColor": "brown", "x": 5, "y": 20, }, { - "segmentColor": undefined, + "segmentColor": "pink", "x": 6, "y": 70, }, @@ -162,5217 +139,14 @@ exports[`Refactoring regression tests - series coloredarea. The series data shou `; exports[`Refactoring regression tests - series coloredarea. The tracker element should match the snapshot. 1`] = ` -D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": { - "mouseout": [Function], - "mouseover": [Function], - }, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - undefined, - NaN, - ], - [ - "L", - NaN, - NaN, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - Series 1 - - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - 70 - - - 80 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 21, - "undefined": undefined, - "visibility": "visible", - "zIndex": 2, -} + `; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index bae0ad4..1617ef6 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,10 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Refactoring regression tests - series coloredline. Coloredline series graph element tests. The graph paths should match the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. Graph element tests. The graph paths should match the snapshot. 1`] = ` [ "", "", "", + "", "", ] `; @@ -15,16 +16,14 @@ exports[`Refactoring regression tests - series coloredline. The segments data sh "color": "red", "points": [ { - "index": 0, "segmentColor": "red", "x": 0, "y": 40, }, { - "index": 1, "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, ], }, @@ -32,13 +31,11 @@ exports[`Refactoring regression tests - series coloredline. The segments data sh "color": "blue", "points": [ { - "index": 1, "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, { - "index": 2, "segmentColor": "yellow", "x": 2, "y": 30, @@ -49,34 +46,50 @@ exports[`Refactoring regression tests - series coloredline. The segments data sh "color": "yellow", "points": [ { - "index": 2, "segmentColor": "yellow", "x": 2, "y": 30, }, { - "index": 3, - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, ], }, { - "color": "brown", + "color": "green", "points": [ { - "index": 3, - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, { - "index": 4, - "segmentColor": undefined, + "segmentColor": "green", "x": 4, "y": 50, }, + { + "segmentColor": "brown", + "x": 5, + "y": 20, + }, + ], + }, + { + "color": "brown", + "points": [ + { + "segmentColor": "brown", + "x": 5, + "y": 20, + }, + { + "segmentColor": "pink", + "x": 6, + "y": 70, + }, ], }, ] @@ -93,7 +106,7 @@ exports[`Refactoring regression tests - series coloredline. The series data shou { "segmentColor": "blue", "x": 1, - "y": 20, + "y": 60, }, { "segmentColor": "yellow", @@ -101,5115 +114,39 @@ exports[`Refactoring regression tests - series coloredline. The series data shou "y": 30, }, { - "segmentColor": "brown", + "segmentColor": "green", "x": 3, "y": 10, }, { - "segmentColor": undefined, + "segmentColor": "green", "x": 4, "y": 50, }, + { + "segmentColor": "brown", + "x": 5, + "y": 20, + }, + { + "segmentColor": "pink", + "x": 6, + "y": 70, + }, ], "seriesType": "line", } `; exports[`Refactoring regression tests - series coloredline. The tracker element should match the snapshot. 1`] = ` -D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "d": "M 0 0", - "element": , - "onEvents": { - "mouseout": [Function], - "mouseover": [Function], - }, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "doTransform": false, - "element": - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "parentGroup": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - - - - - - - - , - "handleZ": true, - "onEvents": {}, - "opacity": 1, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "undefined": undefined, - "zIndex": 3, - }, - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "rotation": 0, - "rotationOriginX": 0, - "rotationOriginY": 0, - "scaleX": 1, - "scaleY": 1, - "translateX": NaN, - "translateY": 10, - "visibility": "inherit", - "zIndex": 0.1, - }, - "pathArray": [ - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - NaN, - undefined, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - NaN, - undefined, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - NaN, - undefined, - ], - [ - "M", - NaN, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - undefined, - undefined, - ], - [ - "L", - NaN, - undefined, - ], - ], - "renderer": V { - "alignedObjects": [ - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "actualWidth": undefined, - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "margin": 15, - "style": { - "color": "#333333", - "fontWeight": "bold", - }, - "text": "Chart title", - "widthAdjust": -44, - "y": 0, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": - Chart title - , - "firstLineMetrics": undefined, - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "rotation": undefined, - "styles": { - "color": "#333333", - "fontSize": "1.2em", - "fontWeight": "bold", - "width": "536px", - }, - "textCache": "Chart title,false,false,,,1.2em,536", - "textStr": "Chart title", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 300, - "y": 10, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "center", - "height": NaN, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "widthAdjust": -44, - "y": NaN, - }, - "alignTo": "spacingBox", - "alignValue": "center", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "536px", - }, - "textCache": ",false,false,,,0.8em,536", - "textStr": "", - "textWidth": 536, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 10, - "y": 387, - }, - "alignByTranslate": false, - "alignOptions": { - "align": "left", - "height": NaN, - "margin": 15, - "style": { - "color": "#666666", - "fontSize": "0.8em", - }, - "text": "", - "verticalAlign": "bottom", - "y": 2, - }, - "alignTo": "spacingBox", - "alignValue": "left", - "element": , - "onEvents": {}, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#666666", - "fontSize": "0.8em", - "width": "580px", - }, - "textCache": ",false,false,,,0.8em,580", - "textStr": "", - "textWidth": 580, - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 4, - }, - D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "alignAttr": { - "x": 590, - "y": 395, - }, - "alignByTranslate": undefined, - "alignOptions": { - "align": "right", - "verticalAlign": "bottom", - "x": -10, - "y": -5, - }, - "alignTo": "renderer", - "alignValue": "right", - "element": - Highcharts.com - , - "onEvents": { - "click": [Function], - }, - "opacity": 1, - "placed": true, - "renderer": [Circular], - "styles": { - "color": "#999999", - "cursor": "pointer", - "fontSize": "0.6em", - }, - "textCache": "Highcharts.com,false,false,,,0.6em,", - "textStr": "Highcharts.com", - "undefined": undefined, - "update": [Function], - "xSetter": [Function], - "zIndex": 8, - }, - ], - "allowHTML": undefined, - "box": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "boxWrapper": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "element": - - Created with Highcharts 11.1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Values - - - - - - - - - - - - - - - - - - - - - - - Chart title - - - - - - - - - - - - Series 1 - - - - - - - Series 2 - - - - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - 60 - - - - Highcharts.com - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "styles": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - }, - "cache": { - ",1rem,0.8em,0,536,center,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - ",1rem,0.8em,0,580,left,,": { - "height": undefined, - "width": undefined, - "x": 0, - "y": 0, - }, - }, - "cacheKeys": [ - ",1rem,0.8em,0,536,center,,", - ",1rem,0.8em,0,580,left,,", - ], - "chartIndex": 0, - "defs": D { - "SVG_NS": "http://www.w3.org/2000/svg", - "added": true, - "element": - - - - - - - - - - , - "onEvents": {}, - "opacity": 1, - "renderer": [Circular], - "undefined": undefined, - }, - "forExport": undefined, - "globalAnimation": false, - "gradients": {}, - "height": 400, - "imgCount": 0, - "plotBox": { - "height": NaN, - "width": NaN, - "x": NaN, - "y": 10, - }, - "rootFontSize": "1rem", - "spacingBox": { - "height": 375, - "width": 580, - "x": 10, - "y": 10, - }, - "style": { - "fontFamily": "Helvetica, Arial, sans-serif", - "fontSize": "1rem", - }, - "styledMode": false, - "url": "", - "width": 600, - }, - "stroke-width": 21, - "undefined": undefined, - "visibility": "visible", - "zIndex": 2, -} + `; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 92cafcf..e7154e7 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -1,9 +1,9 @@ -import Highcharts, { SVGElement } from 'highcharts'; +import Highcharts from 'highcharts'; import multicolorModule from 'js/multicolor_series'; +import { isSeriesColored } from 'typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); -Highcharts.useSerialIds(true); describe('Refactoring regression tests - series coloredarea.', () => { const containerElement = document.createElement('div'); @@ -40,7 +40,7 @@ describe('Refactoring regression tests - series coloredarea.', () => { }, { y: 10, - segmentColor: 'brown' + segmentColor: 'green' }, { y: 50, @@ -48,10 +48,11 @@ describe('Refactoring regression tests - series coloredarea.', () => { }, { y: 20, - segmentColor: 'black' + segmentColor: 'brown' }, { - y: 70 + y: 70, + segmentColor: 'pink' } ] } @@ -61,19 +62,18 @@ describe('Refactoring regression tests - series coloredarea.', () => { const series = chart.series[0]; if (!series) { - test('Chart series should be defined.', () => { - expect(series).toBeDefined(); - }); + throw Error('Series should be defined.'); + } - return; + if (!isSeriesColored(series, 'coloredarea')) { + throw Error('Series type should be coloredarea.'); } - const data = series.data, - graph = series.graph as unknown as SVGElement[]; + const graph = series.graph; - describe('Coloredarea series graph element tests.', () => { - test('The graph element should be an six elements array.', () => { - expect(graph.length).toEqual(6); + describe('Graph element tests.', () => { + test('The graph element should be an five elements array.', () => { + expect(graph.length).toEqual(5); }); test('The graph paths should match the snapshot.', () => { @@ -83,16 +83,16 @@ describe('Refactoring regression tests - series coloredarea.', () => { }); test('The tracker element should match the snapshot.', () => { - expect(series.tracker).toMatchSnapshot(); + expect(series.tracker.element).toMatchSnapshot(); }); test('The series data should match the snapshot.', () => { - const formattedSeries = generateFormattedSeries(series, data); + const formattedSeries = generateFormattedSeries(series, series.data); expect(formattedSeries).toMatchSnapshot(); }); test('The segments data should match the snapshot.', () => { - const formattedSegments = generateFormattedSegments(series.segments, data); + const formattedSegments = generateFormattedSegments(series.segments); expect(formattedSegments).toMatchSnapshot(); }); }); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 2d39323..8a174dd 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -1,9 +1,9 @@ -import Highcharts, { SVGElement } from 'highcharts'; +import Highcharts from 'highcharts'; import multicolorModule from 'js/multicolor_series'; +import { isSeriesColored } from 'typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); -Highcharts.useSerialIds(true); describe('Refactoring regression tests - series coloredline.', () => { const containerElement = document.createElement('div'); @@ -31,7 +31,7 @@ describe('Refactoring regression tests - series coloredline.', () => { segmentColor: 'red' }, { - y: 20, + y: 60, segmentColor: 'blue' }, { @@ -40,34 +40,19 @@ describe('Refactoring regression tests - series coloredline.', () => { }, { y: 10, - segmentColor: 'brown' - }, - { - y: 50 - } - ] - }, - { - type: 'coloredline', - data: [ - { - y: 10, - segmentColor: 'lime' + segmentColor: 'green' }, { - y: 30, - segmentColor: 'pink' + y: 50, + segmentColor: 'green' }, { y: 20, - segmentColor: 'navy' - }, - { - y: 50, - segmentColor: 'olive' + segmentColor: 'brown' }, { - y: 40 + y: 70, + segmentColor: 'pink' } ] } @@ -77,19 +62,18 @@ describe('Refactoring regression tests - series coloredline.', () => { const series = chart.series[0]; if (!series) { - test('Chart series should be defined.', () => { - expect(series).toBeDefined(); - }); + throw Error('Series should be defined.'); + } - return; + if (!isSeriesColored(series, 'coloredline')) { + throw Error('Series type should be coloredline.'); } - const data = series.data, - graph = series.graph as unknown as SVGElement[]; + const graph = series.graph; - describe('Coloredline series graph element tests.', () => { - test('The graph element should be an four elements array.', () => { - expect(graph.length).toEqual(4); + describe('Graph element tests.', () => { + test('The graph element should be an five elements array.', () => { + expect(graph.length).toEqual(5); }); test('The graph paths should match the snapshot.', () => { @@ -99,16 +83,16 @@ describe('Refactoring regression tests - series coloredline.', () => { }); test('The tracker element should match the snapshot.', () => { - expect(series.tracker).toMatchSnapshot(); + expect(series.tracker.element).toMatchSnapshot(); }); test('The series data should match the snapshot.', () => { - const formattedSeries = generateFormattedSeries(series, data); + const formattedSeries = generateFormattedSeries(series, series.data); expect(formattedSeries).toMatchSnapshot(); }); test('The segments data should match the snapshot.', () => { - const formattedSegments = generateFormattedSegments(series.segments, data); + const formattedSegments = generateFormattedSegments(series.segments); expect(formattedSegments).toMatchSnapshot(); }); }); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts index 91a0207..d0956df 100644 --- a/tests/jest-snapshot/helper.ts +++ b/tests/jest-snapshot/helper.ts @@ -7,27 +7,18 @@ export const generateFormattedSeries = ( ) => ({ seriesType: series.type, data: data.map((point) => ({ - segmentColor: point.segmentColor, + segmentColor: point?.segmentColor, x: point.x, y: point.y })) }); -const generateFormattedPoint = (point: SeriesColoredPoint | undefined) => ({ - index: point?.index, - segmentColor: point?.segmentColor, - x: point?.x, - y: point?.y -}); - -export const generateFormattedSegments = ( - segments: SeriesColoredSegment[], - data: SeriesColoredPoint[] -) => - segments.map((segment, index) => ({ +export const generateFormattedSegments = (segments: SeriesColoredSegment[]) => + segments.map((segment) => ({ color: segment.color, - points: [ - generateFormattedPoint(data[index]), - generateFormattedPoint(data[index + 1]) - ] + points: segment.points.map((point) => ({ + segmentColor: point?.segmentColor, + x: point.x, + y: point.y + })) })); diff --git a/typeguards.ts b/typeguards.ts new file mode 100644 index 0000000..ccc0ce5 --- /dev/null +++ b/typeguards.ts @@ -0,0 +1,7 @@ +import { Series } from "highcharts"; +import { SeriesColored } from "types"; + +export const isSeriesColored = ( + series: Series | SeriesColored, + type: "coloredline" | "coloredarea" +): series is SeriesColored => true; diff --git a/types.d.ts b/types.d.ts index 05b4f8c..dd37cb0 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,10 +1,11 @@ -import { SeriesOptions, PointOptionsObject, Point } from "highcharts"; +import { SeriesOptions, PointOptionsObject, Point, Series, SVGElement } from "highcharts"; /** * Shared types. */ type SeriesColoredSegment = { color: string; + points: SeriesColoredPoint[]; }; /** @@ -32,11 +33,6 @@ declare module "highcharts" { SeriesColoredlineOptions?: SeriesColoredlineOptions; SeriesColoredareaOptions?: SeriesColoredareaOptions; } - - interface Series { - tracker: SVGElement; - segments: SeriesColoredSegment[]; - } } /** @@ -46,4 +42,10 @@ interface SeriesColoredPoint extends Point { segmentColor?: string; } -export { SeriesColoredSegment, SeriesColoredPoint }; +interface SeriesColored extends Omit { + tracker: SVGElement; + segments: SeriesColoredSegment[]; + graph: SVGElement[]; +} + +export { SeriesColored, SeriesColoredSegment, SeriesColoredPoint }; From 776dab6ff244e8bd84cdb38058d96732e4d79acd Mon Sep 17 00:00:00 2001 From: wchmiel Date: Thu, 26 Oct 2023 11:22:56 +0200 Subject: [PATCH 07/66] Added highcharts ts config --- package.json | 6 +- .../jest-snapshot/coloredarea-series.test.ts | 6 +- .../jest-snapshot/coloredline-series.test.ts | 6 +- ts/config/highcharts-config.d.ts | 151 ++++++++++++++++++ ts/test.ts | 16 ++ tsconfig.json | 44 +++-- 6 files changed, 210 insertions(+), 19 deletions(-) create mode 100644 ts/config/highcharts-config.d.ts create mode 100644 ts/test.ts diff --git a/package.json b/package.json index 0f0d728..da6cb1f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,9 @@ "test": "jest" }, "devDependencies": { - "@types/jest": "^29.5.5", + "@types/jest": "^29.5.6", + "@types/jquery": "^3.5.6", + "@types/trusted-types": "^2.0.2", "google-closure-compiler": "^20160517.1.0", "gulp": "^4.0.0", "gulp-bump": "^2.1.0", @@ -44,6 +46,6 @@ "yargs": "^4.7.0" }, "dependencies": { - "highcharts": "^11.1.0" + "highcharts": "github:highcharts/highcharts" } } diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index e7154e7..82fee5e 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -1,6 +1,6 @@ -import Highcharts from 'highcharts'; -import multicolorModule from 'js/multicolor_series'; -import { isSeriesColored } from 'typeguards'; +import Highcharts from 'highcharts/ts/masters/highcharts.src'; +import multicolorModule from './../../js/multicolor_series'; +import { isSeriesColored } from './../../typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 8a174dd..3041497 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -1,6 +1,6 @@ -import Highcharts from 'highcharts'; -import multicolorModule from 'js/multicolor_series'; -import { isSeriesColored } from 'typeguards'; +import Highcharts from 'highcharts/ts/masters/highcharts.src'; +import multicolorModule from './../../js/multicolor_series'; +import { isSeriesColored } from './../../typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); diff --git a/ts/config/highcharts-config.d.ts b/ts/config/highcharts-config.d.ts new file mode 100644 index 0000000..0f998c0 --- /dev/null +++ b/ts/config/highcharts-config.d.ts @@ -0,0 +1,151 @@ +import 'highcharts/ts/masters/highcharts.src'; +import 'highcharts/ts/masters/highstock.src'; +import 'highcharts/ts/masters/highmaps.src'; +import 'highcharts/ts/masters/highcharts-3d.src'; +import 'highcharts/ts/masters/highcharts-gantt.src'; +import 'highcharts/ts/masters/highcharts-more.src'; + +import 'highcharts/ts/masters/modules/accessibility.src'; +import 'highcharts/ts/masters/modules/annotations-advanced.src'; +import 'highcharts/ts/masters/modules/annotations.src'; +import 'highcharts/ts/masters/modules/arc-diagram.src'; +import 'highcharts/ts/masters/modules/arrow-symbols.src'; +import 'highcharts/ts/masters/modules/boost-canvas.src'; +import 'highcharts/ts/masters/modules/boost.src'; +import 'highcharts/ts/masters/modules/broken-axis.src'; +import 'highcharts/ts/masters/modules/bullet.src'; +import 'highcharts/ts/masters/modules/coloraxis.src'; +import 'highcharts/ts/masters/modules/current-date-indicator.src'; +import 'highcharts/ts/masters/modules/cylinder.src'; +import 'highcharts/ts/masters/modules/data-tools.src'; +import 'highcharts/ts/masters/modules/data.src'; +import 'highcharts/ts/masters/modules/datagrouping.src'; +import 'highcharts/ts/masters/modules/debugger.src'; +import 'highcharts/ts/masters/modules/dependency-wheel.src'; +import 'highcharts/ts/masters/modules/dotplot.src'; +import 'highcharts/ts/masters/modules/drag-panes.src'; +import 'highcharts/ts/masters/modules/draggable-points.src'; +import 'highcharts/ts/masters/modules/drilldown.src'; +import 'highcharts/ts/masters/modules/dumbbell.src'; +import 'highcharts/ts/masters/modules/export-data.src'; +import 'highcharts/ts/masters/modules/exporting.src'; +import 'highcharts/ts/masters/modules/flowmap.src'; +import 'highcharts/ts/masters/modules/full-screen.src'; +import 'highcharts/ts/masters/modules/funnel.src'; +import 'highcharts/ts/masters/modules/funnel3d.src'; +import 'highcharts/ts/masters/modules/gantt.src'; +import 'highcharts/ts/masters/modules/geoheatmap.src'; +import 'highcharts/ts/masters/modules/grid-axis.src'; +import 'highcharts/ts/masters/modules/heatmap.src'; +import 'highcharts/ts/masters/modules/heikinashi.src'; +import 'highcharts/ts/masters/modules/histogram-bellcurve.src'; +import 'highcharts/ts/masters/modules/hollowcandlestick.src'; +import 'highcharts/ts/masters/modules/item-series.src'; +import 'highcharts/ts/masters/modules/lollipop.src'; +import 'highcharts/ts/masters/modules/map.src'; +import 'highcharts/ts/masters/modules/marker-clusters.src'; +import 'highcharts/ts/masters/modules/mouse-wheel-zoom.src'; +import 'highcharts/ts/masters/modules/networkgraph.src'; +import 'highcharts/ts/masters/modules/no-data-to-display.src'; + +import 'highcharts/ts/Extensions/OfflineExporting/OfflineExportingVendor'; + +import 'highcharts/ts/masters/modules/offline-exporting.src'; +import 'highcharts/ts/masters/modules/organization.src'; +import 'highcharts/ts/masters/modules/overlapping-datalabels.src'; +import 'highcharts/ts/masters/modules/parallel-coordinates.src'; +import 'highcharts/ts/masters/modules/pareto.src'; +import 'highcharts/ts/masters/modules/pathfinder.src'; +import 'highcharts/ts/masters/modules/pattern-fill.src'; +import 'highcharts/ts/masters/modules/pictorial.src'; +import 'highcharts/ts/masters/modules/price-indicator.src'; +import 'highcharts/ts/masters/modules/pyramid3d.src'; +import 'highcharts/ts/masters/modules/sankey.src'; +import 'highcharts/ts/masters/modules/series-label.src'; +import 'highcharts/ts/masters/modules/series-on-point.src'; +import 'highcharts/ts/masters/modules/solid-gauge.src'; +import 'highcharts/ts/masters/modules/sonification.src'; +import 'highcharts/ts/masters/modules/static-scale.src'; +import 'highcharts/ts/masters/modules/stock-tools.src'; +import 'highcharts/ts/masters/modules/stock.src'; +import 'highcharts/ts/masters/modules/streamgraph.src'; +import 'highcharts/ts/masters/modules/sunburst.src'; +import 'highcharts/ts/masters/modules/tiledwebmap.src'; +import 'highcharts/ts/masters/modules/tilemap.src'; +import 'highcharts/ts/masters/modules/timeline.src'; +import 'highcharts/ts/masters/modules/treegraph.src'; +import 'highcharts/ts/masters/modules/treegrid.src'; +import 'highcharts/ts/masters/modules/treemap.src'; +import 'highcharts/ts/masters/modules/variable-pie.src'; +import 'highcharts/ts/masters/modules/variwide.src'; +import 'highcharts/ts/masters/modules/vector.src'; +import 'highcharts/ts/masters/modules/venn.src'; +import 'highcharts/ts/masters/modules/windbarb.src'; +import 'highcharts/ts/masters/modules/wordcloud.src'; +import 'highcharts/ts/masters/modules/xrange.src'; + +import 'highcharts/ts/masters/indicators/acceleration-bands.src'; +import 'highcharts/ts/masters/indicators/accumulation-distribution.src'; +import 'highcharts/ts/masters/indicators/ao.src'; +import 'highcharts/ts/masters/indicators/apo.src'; +import 'highcharts/ts/masters/indicators/aroon-oscillator.src'; +import 'highcharts/ts/masters/indicators/aroon.src'; +import 'highcharts/ts/masters/indicators/atr.src'; +import 'highcharts/ts/masters/indicators/bollinger-bands.src'; +import 'highcharts/ts/masters/indicators/cci.src'; +import 'highcharts/ts/masters/indicators/chaikin.src'; +import 'highcharts/ts/masters/indicators/cmf.src'; +import 'highcharts/ts/masters/indicators/cmo.src'; +import 'highcharts/ts/masters/indicators/dema.src'; +import 'highcharts/ts/masters/indicators/disparity-index.src'; +import 'highcharts/ts/masters/indicators/dmi.src'; +import 'highcharts/ts/masters/indicators/dpo.src'; +import 'highcharts/ts/masters/indicators/ema.src'; +import 'highcharts/ts/masters/indicators/ichimoku-kinko-hyo.src'; +import 'highcharts/ts/masters/indicators/indicators-all.src'; +import 'highcharts/ts/masters/indicators/indicators.src'; +import 'highcharts/ts/masters/indicators/keltner-channels.src'; +import 'highcharts/ts/masters/indicators/klinger.src'; +import 'highcharts/ts/masters/indicators/macd.src'; +import 'highcharts/ts/masters/indicators/mfi.src'; +import 'highcharts/ts/masters/indicators/momentum.src'; +import 'highcharts/ts/masters/indicators/natr.src'; +import 'highcharts/ts/masters/indicators/obv.src'; +import 'highcharts/ts/masters/indicators/pivot-points.src'; +import 'highcharts/ts/masters/indicators/ppo.src'; +import 'highcharts/ts/masters/indicators/price-channel.src'; +import 'highcharts/ts/masters/indicators/price-envelopes.src'; +import 'highcharts/ts/masters/indicators/psar.src'; +import 'highcharts/ts/masters/indicators/regressions.src'; +import 'highcharts/ts/masters/indicators/roc.src'; +import 'highcharts/ts/masters/indicators/rsi.src'; +import 'highcharts/ts/masters/indicators/slow-stochastic.src'; +import 'highcharts/ts/masters/indicators/stochastic.src'; +import 'highcharts/ts/masters/indicators/supertrend.src'; +import 'highcharts/ts/masters/indicators/tema.src'; +import 'highcharts/ts/masters/indicators/trendline.src'; +import 'highcharts/ts/masters/indicators/trix.src'; +import 'highcharts/ts/masters/indicators/volume-by-price.src'; +import 'highcharts/ts/masters/indicators/vwap.src'; +import 'highcharts/ts/masters/indicators/williams-r.src'; +import 'highcharts/ts/masters/indicators/wma.src'; +import 'highcharts/ts/masters/indicators/zigzag.src'; + +import 'highcharts/ts/masters/themes/avocado.src'; +import 'highcharts/ts/masters/themes/brand-dark.src'; +import 'highcharts/ts/masters/themes/brand-light.src'; +import 'highcharts/ts/masters/themes/dark-blue.src'; +import 'highcharts/ts/masters/themes/dark-green.src'; +import 'highcharts/ts/masters/themes/dark-unica.src'; +import 'highcharts/ts/masters/themes/gray.src'; +import 'highcharts/ts/masters/themes/grid-light.src'; +import 'highcharts/ts/masters/themes/grid.src'; +import 'highcharts/ts/masters/themes/high-contrast-dark.src'; +import 'highcharts/ts/masters/themes/high-contrast-light.src'; +import 'highcharts/ts/masters/themes/sand-signika.src'; +import 'highcharts/ts/masters/themes/skies.src'; +import 'highcharts/ts/masters/themes/sunset.src'; + +import H from 'highcharts/ts/Core/Globals'; + +export type Highcharts = typeof H; diff --git a/ts/test.ts b/ts/test.ts new file mode 100644 index 0000000..71ae2d2 --- /dev/null +++ b/ts/test.ts @@ -0,0 +1,16 @@ +import type { Highcharts } from 'ts/config/highcharts-config'; +import Series from 'highcharts/ts/Core/Series/Series'; +import H from 'highcharts/ts/Core/Globals'; + +export const someModule = { + someMethod (series: Series) { + const { win } = H; + + const timeout: number = setTimeout(() => {}, 1000); + + win.jspdf; + + const labelBySeries = series.labelBySeries; + return labelBySeries; + } +} diff --git a/tsconfig.json b/tsconfig.json index df7b26b..1f6bb5e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,18 +1,40 @@ { "compilerOptions": { - "target": "ES6", - "moduleResolution": "Node", + "outDir": "./js", + "rootDir": "./ts", + + "baseUrl": ".", + "paths": { + "js/*": ["js/*"] + }, + + "allowJs": true, + "allowSyntheticDefaultImports": true, + "alwaysStrict": false, + "declaration": false, "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + /** - * "allowJs" will be removed once refactor the js folder to ts - * (exists for js files import to tests files). + * "ignoreDeprecations" - only to mute the warning of the keyofStringsOnly flag (set because Highcharts uses it) */ - "allowJs": true, + "keyofStringsOnly": true, + "ignoreDeprecations": "5.0", + + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitThis": true, "strict": true, - "noUncheckedIndexedAccess": true, - "baseUrl": ".", - "paths": { - "js/*": ["js/*"] - } - } + "module": "es6", + "moduleResolution": "node", + "skipLibCheck": true, + "target": "es6", + "lib": [ + "dom", + "es6" + ], + "types": ["jquery", "trusted-types", "jest"] + }, + "include": ["ts/**/*"], + "exclude": ["ts/tests/**/*"] } From e8b2e72aa4e62187dfcdef5a7f430c16442bae74 Mon Sep 17 00:00:00 2001 From: wchmiel Date: Thu, 9 Nov 2023 13:15:15 +0100 Subject: [PATCH 08/66] Added custom-module schema. --- custom-module-demo.html | 34 ++++++++++++++++++++++++++++++ js/custom-module.js | 46 +++++++++++++++++++++++++++++++++++++++++ ts/custom-module.ts | 14 +++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 custom-module-demo.html create mode 100644 js/custom-module.js create mode 100644 ts/custom-module.ts diff --git a/custom-module-demo.html b/custom-module-demo.html new file mode 100644 index 0000000..e577a4f --- /dev/null +++ b/custom-module-demo.html @@ -0,0 +1,34 @@ + + + + + Multicolor series + + + + + +
+ + + + diff --git a/js/custom-module.js b/js/custom-module.js new file mode 100644 index 0000000..0515d42 --- /dev/null +++ b/js/custom-module.js @@ -0,0 +1,46 @@ +(function (factory) { + if (typeof module === 'object' && module.exports) { + module.exports = factory; + } else { + factory(Highcharts); + } +}(function (Highcharts) { + const _modules = Highcharts ? Highcharts._modules : {}; + + function _registerModule(obj, path, args, fn) { + if (!obj.hasOwnProperty(path)) { + obj[path] = fn.apply(null, args); + + if (typeof CustomEvent === 'function') { + window.dispatchEvent(new CustomEvent( + 'HighchartsModuleLoaded', + { detail: { path: path, module: obj[path] } } + )); + } + } + } + + _registerModule( + _modules, + 'Extensions/ColoredLineSeries.js', + [_modules['Core/Series/SeriesRegistry.js']], + function (SeriesRegistry) { + + // ----- Module code ----- // + const { line: LineSeries } = SeriesRegistry.seriesTypes; + + class ColoredLineSeries extends LineSeries { + drawGraph() { + // Call the base method + super.drawGraph.apply(this); + + console.log('Inside coloredline drawGraph method!'); + } + } + + SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); + // ----- Module code ----- // + + } + ); +})); diff --git a/ts/custom-module.ts b/ts/custom-module.ts new file mode 100644 index 0000000..32e0282 --- /dev/null +++ b/ts/custom-module.ts @@ -0,0 +1,14 @@ +import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; + +const { line: LineSeries } = SeriesRegistry.seriesTypes; + +class ColoredLineSeries extends LineSeries { + drawGraph() { + // Call the base method + super.drawGraph.apply(this); + + console.log('Inside coloredline drawGraph method!'); + } +} + +SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); From b15eb37c8bcfb3afd5c506af6a4f995d0f110022 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Fri, 10 Nov 2023 11:31:47 +0100 Subject: [PATCH 09/66] Added build gulp task/formatted files structure. --- custom-module-demo.html | 50 +-- dist/multicolor_series.js | 60 +++ gulpfile.js | 71 +++- js/custom-module.js | 46 --- package.json | 6 +- pnpm-lock.yaml | 784 ++++++++++++++++++++++---------------- ts/custom-module.ts | 14 - ts/multicolor_series.ts | 35 ++ ts/test.ts | 16 - 9 files changed, 651 insertions(+), 431 deletions(-) create mode 100644 dist/multicolor_series.js delete mode 100644 js/custom-module.js delete mode 100644 ts/custom-module.ts create mode 100644 ts/multicolor_series.ts delete mode 100644 ts/test.ts diff --git a/custom-module-demo.html b/custom-module-demo.html index e577a4f..0b814a4 100644 --- a/custom-module-demo.html +++ b/custom-module-demo.html @@ -1,34 +1,34 @@ - - - Multicolor series - - - - + + + Multicolor series + + + + -
+
+
diff --git a/dist/multicolor_series.js b/dist/multicolor_series.js new file mode 100644 index 0000000..c79c35d --- /dev/null +++ b/dist/multicolor_series.js @@ -0,0 +1,60 @@ +(function (factory) { + if (typeof module === 'object' && module.exports) { + module.exports = factory; + } else { + factory(Highcharts); + } + }(function (Highcharts) { + const _modules = Highcharts ? Highcharts._modules : {}, + _registerModule = (obj, path, args, fn) => { + if (!obj.hasOwnProperty(path)) { + obj[path] = fn.apply(null, args); + + if (typeof CustomEvent === 'function') { + window.dispatchEvent(new CustomEvent( + 'HighchartsModuleLoaded', + { detail: { path: path, module: obj[path] } } + )); + } + } + } + + _registerModule( + _modules, + 'Extensions/MulticolorSeries.js', + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js']], + (SeriesRegistry,Utilities) => { + + +const { line: LineSeries, area: AreaSeries } = SeriesRegistry.seriesTypes; +const { extend, pick } = Utilities; +/** + * @private + * @class + * @name Highcharts.seriesTypes.coloredline + * + */ +class ColoredLineSeries extends LineSeries { + drawGraph() { + super.drawGraph.apply(this); + console.log('Inside coloredline drawGraph method!'); + } +} +SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); +/** + * @private + * @class + * @name Highcharts.seriesTypes.coloredarea + * + */ +class ColoredAreaSeries extends AreaSeries { + drawGraph() { + super.drawGraph.apply(this); + console.log('Inside coloredarea drawGraph method!'); + } +} +SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); + + } + ) + })); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 4685b46..d98127a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,5 +1,6 @@ 'use strict'; -var gulp = require('gulp'), + +const gulp = require('gulp'), eslint = require('gulp-eslint'), sourcemaps = require('gulp-sourcemaps'), closureCompiler = require('google-closure-compiler').gulp(), @@ -9,13 +10,15 @@ var gulp = require('gulp'), gulpif = require('gulp-if'), args = require('yargs').argv, fs = require('fs'), - dateformat = require('dateformat'); + dateformat = require('dateformat'), + gulpTypescript = require("gulp-typescript"), + through2 = require('through2'), + tsProject = gulpTypescript.createProject("tsconfig.json"); -var files = ['./js/multicolor_series.js', 'js/demo.js'], +let files = ['./js/multicolor_series.js', 'js/demo.js'], decorator, version; - decorator = [ '/**', '----', @@ -27,6 +30,64 @@ decorator = [ '' ]; +gulp.task("build", () => { + return tsProject + .src() + .pipe(tsProject()) + .js.pipe(through2.obj(async function (file, _encoding, callback) { + if (file.isBuffer()) { + let fileContent = file.contents.toString('utf8'); + const removedSpecifiers = [], + removedPaths = [], + importPathReg = /import (.+?) from ["'](.+?)["'];/g, + formattedPathReg = /^highcharts\/ts\//; + + fileContent = fileContent.replace(importPathReg, (_match, specifier, path) => { + removedSpecifiers.push(specifier); + removedPaths.push(`${path.replace(formattedPathReg, "")}.js`); + return ''; + }); + + const iifeCode = `(function (factory) { + if (typeof module === 'object' && module.exports) { + module.exports = factory; + } else { + factory(Highcharts); + } + }(function (Highcharts) { + const _modules = Highcharts ? Highcharts._modules : {}, + _registerModule = (obj, path, args, fn) => { + if (!obj.hasOwnProperty(path)) { + obj[path] = fn.apply(null, args); + + if (typeof CustomEvent === 'function') { + window.dispatchEvent(new CustomEvent( + 'HighchartsModuleLoaded', + { detail: { path: path, module: obj[path] } } + )); + } + } + } + + _registerModule( + _modules, + 'Extensions/MulticolorSeries.js', + [${removedPaths.map((path) => `_modules[${`'${path}'`}]`)}], + (${removedSpecifiers.map((specifier) => specifier)}) => { + ${fileContent} + } + ) + }));`; + + file.contents = Buffer.from(iifeCode, 'utf8'); + } + + this.push(file); + callback(); + })) + .pipe(gulp.dest('dist')); +}); + gulp.task('lint', function () { return gulp.src(files) .pipe(eslint()) @@ -197,4 +258,4 @@ gulp.task('release', //'npm-publish' ) -); \ No newline at end of file +); diff --git a/js/custom-module.js b/js/custom-module.js deleted file mode 100644 index 0515d42..0000000 --- a/js/custom-module.js +++ /dev/null @@ -1,46 +0,0 @@ -(function (factory) { - if (typeof module === 'object' && module.exports) { - module.exports = factory; - } else { - factory(Highcharts); - } -}(function (Highcharts) { - const _modules = Highcharts ? Highcharts._modules : {}; - - function _registerModule(obj, path, args, fn) { - if (!obj.hasOwnProperty(path)) { - obj[path] = fn.apply(null, args); - - if (typeof CustomEvent === 'function') { - window.dispatchEvent(new CustomEvent( - 'HighchartsModuleLoaded', - { detail: { path: path, module: obj[path] } } - )); - } - } - } - - _registerModule( - _modules, - 'Extensions/ColoredLineSeries.js', - [_modules['Core/Series/SeriesRegistry.js']], - function (SeriesRegistry) { - - // ----- Module code ----- // - const { line: LineSeries } = SeriesRegistry.seriesTypes; - - class ColoredLineSeries extends LineSeries { - drawGraph() { - // Call the base method - super.drawGraph.apply(this); - - console.log('Inside coloredline drawGraph method!'); - } - } - - SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); - // ----- Module code ----- // - - } - ); -})); diff --git a/package.json b/package.json index da6cb1f..534bd7f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "homepage": "https://github.com/blacklabel/multicolor_series#readme", "types": "types.d.ts", "scripts": { - "test": "jest" + "test": "jest", + "build": "gulp build" }, "devDependencies": { "@types/jest": "^29.5.6", @@ -37,9 +38,12 @@ "gulp-eslint": "^2.0.0", "gulp-git": "^2.10.0", "gulp-if": "^2.0.0", + "gulp-replace": "^1.1.4", "gulp-sourcemaps": "1.6.0", + "gulp-typescript": "^6.0.0-alpha.1", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "through2": "^4.0.2", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "typescript": "^5.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8fe1d3..766d7a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,13 +6,19 @@ settings: dependencies: highcharts: - specifier: ^11.1.0 - version: 11.1.0 + specifier: github:highcharts/highcharts + version: github.com/highcharts/highcharts/41258ad806b26101c2e8aa329340b6ccc0d5d86b devDependencies: '@types/jest': - specifier: ^29.5.5 - version: 29.5.5 + specifier: ^29.5.6 + version: 29.5.6 + '@types/jquery': + specifier: ^3.5.6 + version: 3.5.6 + '@types/trusted-types': + specifier: ^2.0.2 + version: 2.0.2 google-closure-compiler: specifier: ^20160517.1.0 version: 20160517.1.0 @@ -31,21 +37,30 @@ devDependencies: gulp-if: specifier: ^2.0.0 version: 2.0.0 + gulp-replace: + specifier: ^1.1.4 + version: 1.1.4 gulp-sourcemaps: specifier: 1.6.0 version: 1.6.0 + gulp-typescript: + specifier: ^6.0.0-alpha.1 + version: 6.0.0-alpha.1(typescript@5.2.2) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 + through2: + specifier: ^4.0.2 + version: 4.0.2 ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + version: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -60,7 +75,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@babel/code-frame@7.22.13: @@ -71,25 +86,25 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.22.20: - resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.0: - resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) - '@babel/helpers': 7.23.1 - '@babel/parser': 7.23.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.3 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.0 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -99,13 +114,13 @@ packages: - supports-color dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true @@ -113,7 +128,7 @@ packages: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.22.20 + '@babel/compat-data': 7.23.3 '@babel/helper-validator-option': 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 @@ -130,30 +145,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -170,14 +185,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-string-parser@7.22.5: @@ -195,13 +210,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.1: - resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.0 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 transitivePeerDependencies: - supports-color dev: true @@ -215,140 +230,140 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -357,30 +372,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true - /@babel/traverse@7.23.0: - resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} + /@babel/traverse@7.23.3: + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -420,7 +435,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -441,14 +456,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -476,7 +491,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-mock: 29.7.0 dev: true @@ -503,7 +518,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -535,15 +550,15 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.19 - '@types/node': 20.8.2 + '@jridgewell/trace-mapping': 0.3.20 + '@types/node': 20.9.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 6.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 @@ -553,7 +568,7 @@ packages: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.1.0 + v8-to-istanbul: 9.1.3 transitivePeerDependencies: - supports-color dev: true @@ -569,7 +584,7 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -580,7 +595,7 @@ packages: dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 dev: true @@ -598,9 +613,9 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -622,10 +637,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.2 - '@types/node': 20.8.2 - '@types/yargs': 17.0.26 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.9.0 + '@types/yargs': 17.0.31 chalk: 4.1.2 dev: true @@ -635,7 +650,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -652,8 +667,8 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 @@ -703,92 +718,119 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@types/babel__core@7.20.2: - resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} + /@types/babel__core@7.20.4: + resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - '@types/babel__generator': 7.6.5 - '@types/babel__template': 7.4.2 - '@types/babel__traverse': 7.20.2 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + '@types/babel__generator': 7.6.7 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 dev: true - /@types/babel__generator@7.6.5: - resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} + /@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@types/babel__template@7.4.2: - resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true - /@types/babel__traverse@7.20.2: - resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@types/graceful-fs@4.1.7: - resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} + /@types/expect@1.20.4: + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + dev: true + + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.8.2 + '@types/node': 20.9.0 dev: true - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true - /@types/istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: - '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-lib-coverage': 2.0.6 dev: true - /@types/istanbul-reports@3.0.2: - resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: - '@types/istanbul-lib-report': 3.0.1 + '@types/istanbul-lib-report': 3.0.3 dev: true - /@types/jest@29.5.5: - resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} + /@types/jest@29.5.6: + resolution: {integrity: sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 dev: true + /@types/jquery@3.5.6: + resolution: {integrity: sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==} + dependencies: + '@types/sizzle': 2.3.6 + dev: true + /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.8.2 - '@types/tough-cookie': 4.0.3 + '@types/node': 20.9.0 + '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true - /@types/node@20.8.2: - resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==} + /@types/node@20.9.0: + resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + dependencies: + undici-types: 5.26.5 dev: true - /@types/stack-utils@2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + /@types/sizzle@2.3.6: + resolution: {integrity: sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw==} dev: true - /@types/tough-cookie@4.0.3: - resolution: {integrity: sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true + + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true + + /@types/trusted-types@2.0.2: + resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} + dev: true + + /@types/vinyl@2.0.10: + resolution: {integrity: sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ==} + dependencies: + '@types/expect': 1.20.4 + '@types/node': 20.9.0 dev: true - /@types/yargs-parser@21.0.1: - resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@17.0.26: - resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==} + /@types/yargs@17.0.31: + resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} dependencies: - '@types/yargs-parser': 21.0.1 + '@types/yargs-parser': 21.0.3 dev: true /abab@2.0.6: @@ -798,8 +840,8 @@ packages: /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.11.2 + acorn-walk: 8.3.0 dev: true /acorn-jsx@3.0.1: @@ -808,8 +850,8 @@ packages: acorn: 3.3.0 dev: true - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} dev: true @@ -825,8 +867,8 @@ packages: hasBin: true dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -862,6 +904,11 @@ packages: ansi-wrap: 0.1.0 dev: true + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + /ansi-cyan@0.1.1: resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} engines: {node: '>=0.10.0'} @@ -1130,17 +1177,17 @@ packages: hasBin: true dev: true - /babel-jest@29.7.0(@babel/core@7.23.0): + /babel-jest@29.7.0(@babel/core@7.23.3): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.2 + '@types/babel__core': 7.20.4 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.0) + babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -1166,40 +1213,40 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - '@types/babel__core': 7.20.2 - '@types/babel__traverse': 7.20.2 + '@babel/types': 7.23.3 + '@types/babel__core': 7.20.4 + '@types/babel__traverse': 7.20.4 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.0): + '@babel/core': 7.23.3 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.3): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true /bach@1.2.0: @@ -1244,6 +1291,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /binaryextensions@2.3.0: + resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} + engines: {node: '>=0.8'} + dev: true + /bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} dependencies: @@ -1297,8 +1349,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001543 - electron-to-chromium: 1.4.539 + caniuse-lite: 1.0.30001561 + electron-to-chromium: 1.4.580 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1355,11 +1407,12 @@ packages: unset-value: 1.0.0 dev: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 dev: true /caller-path@0.1.0: @@ -1407,8 +1460,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001543: - resolution: {integrity: sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==} + /caniuse-lite@1.0.30001561: + resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} dev: true /chalk@1.1.3: @@ -1465,8 +1518,8 @@ packages: - supports-color dev: true - /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} dev: true @@ -1654,7 +1707,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /create-jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1663,7 +1716,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -1803,21 +1856,21 @@ packages: engines: {node: '>= 0.10'} dev: true - /define-data-property@1.1.0: - resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -1825,21 +1878,21 @@ packages: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 0.1.6 + is-descriptor: 0.1.7 dev: true /define-property@1.0.0: resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 dev: true /define-property@2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 isobject: 3.0.1 dev: true @@ -1905,8 +1958,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.539: - resolution: {integrity: sha512-wRmWJ8F7rgmINuI32S6r2SLrw/h/bJQsDSvBiq9GBfvc2Lh73qTOwn73r3Cf67mjVgFGJYcYtmERzySa5jIWlg==} + /electron-to-chromium@1.4.580: + resolution: {integrity: sha512-T5q3pjQon853xxxHUq3ZP68ZpvJHuSMY2+BZaW3QzjS4HvNuvsMmZ/+lU+nCrftre1jFZ+OSlExynXWBihnXzw==} dev: true /emittery@0.13.1: @@ -2479,8 +2532,8 @@ packages: dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true /generate-function@2.3.1: @@ -2509,13 +2562,13 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - function-bind: 1.1.1 - has: 1.0.3 + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 dev: true /get-package-type@0.1.0: @@ -2675,7 +2728,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /graceful-fs@4.2.11: @@ -2760,6 +2813,17 @@ packages: minimatch: 3.1.2 dev: true + /gulp-replace@1.1.4: + resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} + engines: {node: '>=10'} + dependencies: + '@types/node': 20.9.0 + '@types/vinyl': 2.0.10 + istextorbinary: 3.3.0 + replacestream: 4.0.3 + yargs-parser: 21.1.1 + dev: true + /gulp-sourcemaps@1.6.0: resolution: {integrity: sha512-NjRy6+Qb5K1xbwOvPviD3uA4KSq2zsalPL+4vxPQPuL+kKzHjXJL10/kLaESic3LmBto8VIBHr3gIN3F9AjnhA==} dependencies: @@ -2770,6 +2834,21 @@ packages: vinyl: 1.2.0 dev: true + /gulp-typescript@6.0.0-alpha.1(typescript@5.2.2): + resolution: {integrity: sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==} + engines: {node: '>= 8'} + peerDependencies: + typescript: '~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev ' + dependencies: + ansi-colors: 4.1.3 + plugin-error: 1.0.1 + source-map: 0.7.4 + through2: 3.0.2 + typescript: 5.2.2 + vinyl: 2.2.1 + vinyl-fs: 3.0.3 + dev: true + /gulp-util@3.0.8: resolution: {integrity: sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==} engines: {node: '>=0.10'} @@ -2839,10 +2918,10 @@ packages: sparkles: 1.0.1 dev: true - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /has-proto@1.0.1: @@ -2886,17 +2965,13 @@ packages: kind-of: 4.0.0 dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 dev: true - /highcharts@11.1.0: - resolution: {integrity: sha512-vhmqq6/frteWMx0GKYWwEFL25g4OYc7+m+9KQJb/notXbNtIb8KVy+ijOF7XAFqF165cq0pdLIePAmyFY5ph3g==} - dev: false - /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -3028,18 +3103,11 @@ packages: is-windows: 1.0.2 dev: true - /is-accessor-descriptor@0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor@1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true /is-arrayish@0.2.1: @@ -3057,42 +3125,33 @@ packages: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: true - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true - /is-data-descriptor@0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-data-descriptor@1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true - /is-descriptor@0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true - /is-descriptor@1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true /is-dotfile@1.0.3: @@ -3321,8 +3380,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -3330,23 +3389,23 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.0 - '@babel/parser': 7.23.0 + '@babel/core': 7.23.3 + '@babel/parser': 7.23.3 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /istanbul-lib-instrument@6.0.0: - resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} + /istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.0 - '@babel/parser': 7.23.0 + '@babel/core': 7.23.3 + '@babel/parser': 7.23.3 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -3356,7 +3415,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -3366,7 +3425,7 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -3380,6 +3439,14 @@ packages: istanbul-lib-report: 3.0.1 dev: true + /istextorbinary@3.3.0: + resolution: {integrity: sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==} + engines: {node: '>=8'} + dependencies: + binaryextensions: 2.3.0 + textextensions: 3.3.0 + dev: true + /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3397,7 +3464,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3418,7 +3485,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3432,10 +3499,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3446,7 +3513,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3458,13 +3525,13 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 - babel-jest: 29.7.0(@babel/core@7.23.0) + '@types/node': 20.9.0 + babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -3481,7 +3548,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.8.2)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -3528,7 +3595,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -3545,7 +3612,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -3560,8 +3627,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.7 - '@types/node': 20.8.2 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.9.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -3598,7 +3665,7 @@ packages: dependencies: '@babel/code-frame': 7.22.13 '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.1 + '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 @@ -3612,7 +3679,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-util: 29.7.0 dev: true @@ -3653,7 +3720,7 @@ packages: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.6 + resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 dev: true @@ -3667,7 +3734,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -3698,7 +3765,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -3721,15 +3788,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.0 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) - '@babel/types': 7.23.0 + '@babel/core': 7.23.3 + '@babel/generator': 7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/types': 7.23.3 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -3750,9 +3817,9 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 dev: true @@ -3775,7 +3842,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.2 + '@types/node': 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -3787,13 +3854,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.8.2 + '@types/node': 20.9.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.8.2)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3806,7 +3873,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3836,7 +3903,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.10.0 + acorn: 8.11.2 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -3993,7 +4060,7 @@ packages: is-plain-object: 2.0.4 object.map: 1.0.1 rechoir: 0.6.2 - resolve: 1.22.6 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true @@ -4200,7 +4267,7 @@ packages: dependencies: findup-sync: 2.0.0 micromatch: 3.1.10 - resolve: 1.22.6 + resolve: 1.22.8 stack-trace: 0.0.10 transitivePeerDependencies: - supports-color @@ -4393,7 +4460,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.6 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -4468,7 +4535,7 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -4855,8 +4922,8 @@ packages: pump: 2.0.1 dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -4928,6 +4995,15 @@ packages: util-deprecate: 1.0.2 dev: true + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + /readdirp@2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} @@ -4951,7 +5027,7 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: - resolve: 1.22.6 + resolve: 1.22.8 dev: true /redent@1.0.0: @@ -5034,6 +5110,14 @@ packages: remove-trailing-separator: 1.1.0 dev: true + /replacestream@4.0.3: + resolution: {integrity: sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + readable-stream: 2.3.8 + dev: true + /require-dir@1.2.0: resolution: {integrity: sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==} dev: true @@ -5101,11 +5185,11 @@ packages: engines: {node: '>=10'} dev: true - /resolve@1.22.6: - resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -5194,6 +5278,16 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -5305,6 +5399,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /sparkles@1.0.1: resolution: {integrity: sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==} engines: {node: '>= 0.10'} @@ -5314,7 +5413,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.15 + spdx-license-ids: 3.0.16 dev: true /spdx-exceptions@2.3.0: @@ -5325,11 +5424,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.15 + spdx-license-ids: 3.0.16 dev: true - /spdx-license-ids@3.0.15: - resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true /split-string@3.1.0: @@ -5414,6 +5513,12 @@ packages: safe-buffer: 5.1.2 dev: true + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /strip-ansi@3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} @@ -5574,6 +5679,11 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /textextensions@3.3.0: + resolution: {integrity: sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==} + engines: {node: '>=8'} + dev: true + /through2-filter@2.0.0: resolution: {integrity: sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==} dependencies: @@ -5609,6 +5719,19 @@ packages: xtend: 4.0.2 dev: true + /through2@3.0.2: + resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true @@ -5686,7 +5809,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 dev: true @@ -5695,7 +5818,7 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /trim-newlines@1.0.0: @@ -5703,7 +5826,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ts-jest@29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5724,10 +5847,10 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.8.2)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -5737,7 +5860,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.8.2)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.9.0)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -5756,9 +5879,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.8.2 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 20.9.0 + acorn: 8.11.2 + acorn-walk: 8.3.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -5829,6 +5952,10 @@ packages: undertaker-registry: 1.0.1 dev: true + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -5907,13 +6034,13 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul@9.1.0: - resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + /v8-to-istanbul@9.1.3: + resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.19 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 + '@jridgewell/trace-mapping': 0.3.20 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 dev: true /v8flags@3.2.0: @@ -6264,3 +6391,12 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + github.com/highcharts/highcharts/41258ad806b26101c2e8aa329340b6ccc0d5d86b: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/41258ad806b26101c2e8aa329340b6ccc0d5d86b} + name: highcharts + version: 11.2.0 + engines: {node: '>=14.14.0'} + prepare: true + requiresBuild: true + dev: false diff --git a/ts/custom-module.ts b/ts/custom-module.ts deleted file mode 100644 index 32e0282..0000000 --- a/ts/custom-module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; - -const { line: LineSeries } = SeriesRegistry.seriesTypes; - -class ColoredLineSeries extends LineSeries { - drawGraph() { - // Call the base method - super.drawGraph.apply(this); - - console.log('Inside coloredline drawGraph method!'); - } -} - -SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); diff --git a/ts/multicolor_series.ts b/ts/multicolor_series.ts new file mode 100644 index 0000000..ca7fad4 --- /dev/null +++ b/ts/multicolor_series.ts @@ -0,0 +1,35 @@ +import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; +import Utilities from "highcharts/ts/Core/Utilities"; + +const { line: LineSeries, area: AreaSeries } = SeriesRegistry.seriesTypes; +const { extend, pick } = Utilities; + +/** + * @private + * @class + * @name Highcharts.seriesTypes.coloredline + * + */ +class ColoredLineSeries extends LineSeries { + drawGraph() { + super.drawGraph.apply(this); + console.log('Inside coloredline drawGraph method!'); + } +} + +SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); + +/** + * @private + * @class + * @name Highcharts.seriesTypes.coloredarea + * + */ +class ColoredAreaSeries extends AreaSeries { + drawGraph() { + super.drawGraph.apply(this); + console.log('Inside coloredarea drawGraph method!'); + } +} + +SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); diff --git a/ts/test.ts b/ts/test.ts deleted file mode 100644 index 71ae2d2..0000000 --- a/ts/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Highcharts } from 'ts/config/highcharts-config'; -import Series from 'highcharts/ts/Core/Series/Series'; -import H from 'highcharts/ts/Core/Globals'; - -export const someModule = { - someMethod (series: Series) { - const { win } = H; - - const timeout: number = setTimeout(() => {}, 1000); - - win.jspdf; - - const labelBySeries = series.labelBySeries; - return labelBySeries; - } -} From a0b3b20f4ab1da16cac06185b488ae9416dd6b59 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Fri, 10 Nov 2023 12:02:20 +0100 Subject: [PATCH 10/66] Formatted gulp build script. --- dist/multicolor_series.js | 54 ++++++++++++++++---------------- gulpfile.js | 65 ++++++++++++++++++++------------------- 2 files changed, 60 insertions(+), 59 deletions(-) diff --git a/dist/multicolor_series.js b/dist/multicolor_series.js index c79c35d..0c12930 100644 --- a/dist/multicolor_series.js +++ b/dist/multicolor_series.js @@ -1,30 +1,30 @@ (function (factory) { - if (typeof module === 'object' && module.exports) { - module.exports = factory; - } else { - factory(Highcharts); - } - }(function (Highcharts) { - const _modules = Highcharts ? Highcharts._modules : {}, - _registerModule = (obj, path, args, fn) => { - if (!obj.hasOwnProperty(path)) { - obj[path] = fn.apply(null, args); + if (typeof module === 'object' && module.exports) { + module.exports = factory; + } else { + factory(Highcharts); + } +}(function (Highcharts) { + const _modules = Highcharts ? Highcharts._modules : {}, + _registerModule = (obj, path, args, fn) => { + if (!obj.hasOwnProperty(path)) { + obj[path] = fn.apply(null, args); - if (typeof CustomEvent === 'function') { - window.dispatchEvent(new CustomEvent( - 'HighchartsModuleLoaded', - { detail: { path: path, module: obj[path] } } - )); - } - } - } + if (typeof CustomEvent === 'function') { + window.dispatchEvent(new CustomEvent( + 'HighchartsModuleLoaded', + { detail: { path: path, module: obj[path] } } + )); + } + } + } - _registerModule( - _modules, - 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js']], - (SeriesRegistry,Utilities) => { - + _registerModule( + _modules, + 'Extensions/MulticolorSeries.js', + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js']], + (SeriesRegistry,Utilities) => { + const { line: LineSeries, area: AreaSeries } = SeriesRegistry.seriesTypes; const { extend, pick } = Utilities; @@ -55,6 +55,6 @@ class ColoredAreaSeries extends AreaSeries { } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); - } - ) - })); \ No newline at end of file + } + ) +})); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index d98127a..156afa3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,38 +48,39 @@ gulp.task("build", () => { return ''; }); - const iifeCode = `(function (factory) { - if (typeof module === 'object' && module.exports) { - module.exports = factory; - } else { - factory(Highcharts); - } - }(function (Highcharts) { - const _modules = Highcharts ? Highcharts._modules : {}, - _registerModule = (obj, path, args, fn) => { - if (!obj.hasOwnProperty(path)) { - obj[path] = fn.apply(null, args); - - if (typeof CustomEvent === 'function') { - window.dispatchEvent(new CustomEvent( - 'HighchartsModuleLoaded', - { detail: { path: path, module: obj[path] } } - )); - } - } - } - - _registerModule( - _modules, - 'Extensions/MulticolorSeries.js', - [${removedPaths.map((path) => `_modules[${`'${path}'`}]`)}], - (${removedSpecifiers.map((specifier) => specifier)}) => { - ${fileContent} - } - ) - }));`; - - file.contents = Buffer.from(iifeCode, 'utf8'); + const wrappedFileContent = +`(function (factory) { + if (typeof module === 'object' && module.exports) { + module.exports = factory; + } else { + factory(Highcharts); + } +}(function (Highcharts) { + const _modules = Highcharts ? Highcharts._modules : {}, + _registerModule = (obj, path, args, fn) => { + if (!obj.hasOwnProperty(path)) { + obj[path] = fn.apply(null, args); + + if (typeof CustomEvent === 'function') { + window.dispatchEvent(new CustomEvent( + 'HighchartsModuleLoaded', + { detail: { path: path, module: obj[path] } } + )); + } + } + } + + _registerModule( + _modules, + 'Extensions/MulticolorSeries.js', + [${removedPaths.map((path) => `_modules[${`'${path}'`}]`)}], + (${removedSpecifiers.map((specifier) => specifier)}) => { + ${fileContent} + } + ) +}));`; + + file.contents = Buffer.from(wrappedFileContent, 'utf8'); } this.push(file); From 5df10c0d95fa15b0ca98aa4f41b6bd8df443a632 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 15 Nov 2023 18:37:39 +0100 Subject: [PATCH 11/66] Added initial coloredline series refactor version. --- custom-module-demo.html | 31 +- dist/multicolor_series.js | 424 +++++++++++++++++++++- pnpm-lock.yaml | 12 +- ts/ColoredlineSeriesOptions.d.ts | 52 +++ ts/multicolor_series.ts | 603 ++++++++++++++++++++++++++++++- 5 files changed, 1099 insertions(+), 23 deletions(-) create mode 100644 ts/ColoredlineSeriesOptions.d.ts diff --git a/custom-module-demo.html b/custom-module-demo.html index 0b814a4..4335403 100644 --- a/custom-module-demo.html +++ b/custom-module-demo.html @@ -17,7 +17,36 @@ series: [ { type: "coloredline", - data: [5, 2, 4, 3, 1], + data: [ + { + y: 40, + segmentColor: 'red' + }, + { + y: 60, + segmentColor: 'blue' + }, + { + y: 30, + segmentColor: 'yellow' + }, + { + y: 10, + segmentColor: 'green' + }, + { + y: 50, + segmentColor: 'green' + }, + { + y: 20, + segmentColor: 'brown' + }, + { + y: 70, + segmentColor: 'pink' + } + ] } ] }); diff --git a/dist/multicolor_series.js b/dist/multicolor_series.js index 0c12930..98313d0 100644 --- a/dist/multicolor_series.js +++ b/dist/multicolor_series.js @@ -22,25 +22,431 @@ _registerModule( _modules, 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js']], - (SeriesRegistry,Utilities) => { - + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js']], + (SeriesRegistry,Utilities,LineSeries) => { + /* * + * + * Imports + * + * */ + -const { line: LineSeries, area: AreaSeries } = SeriesRegistry.seriesTypes; -const { extend, pick } = Utilities; + +const { area: AreaSeries } = SeriesRegistry.seriesTypes; +const { extend, isArray } = Utilities; +/* * + * + * Type guards + * + * */ +const isSVGPathSegment = (value) => typeof value !== 'string' && typeof value !== 'number'; +/* * + * + * Functions + * + * */ +function getPath(graphPaths) { + let segmentPath = []; + if (graphPaths) { + graphPaths.forEach(function (el) { + if (isArray(segmentPath) && isArray(el[0])) { + segmentPath = segmentPath.concat(el[0]); + } + }); + } + return segmentPath; +} /** * @private * @class * @name Highcharts.seriesTypes.coloredline * */ -class ColoredLineSeries extends LineSeries { +class ColoredlineSeries extends LineSeries { + /* * + * + * Constructor + * + * */ + constructor() { + super(); + this.singlePoints = []; + this.graphPaths = []; + this.areaPaths = []; + this.graphs = []; + } + /* * + * + * Functions + * + * */ + getSegmentPath(segment) { + const series = this, segmentPath = [], step = series.options.step; + // build the segment line + segment.forEach(function (point, i) { + const plotX = point.plotX, plotY = point.plotY; + let lastPoint; + if (series.getPointSpline) { + // generate the spline as defined in the SplineSeries object + segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i)); + } + else { + // moveTo or lineTo + segmentPath.push(i ? 'L' : 'M'); + // step line? + if (step && i) { + lastPoint = segment[i - 1]; + if (plotX && plotY && (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotX) && (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotY)) { + if (step === 'right') { + segmentPath.push(lastPoint.plotX, plotY, 'L'); + } + else if (step === 'center') { + segmentPath.push((lastPoint.plotX + plotX) / 2, lastPoint.plotY, 'L', (lastPoint.plotX + plotX) / 2, plotY, 'L'); + } + else { + segmentPath.push(plotX, lastPoint.plotY, 'L'); + } + } + } + // normal line to next point + if ((point === null || point === void 0 ? void 0 : point.plotX) && point.plotY) { + segmentPath.push(point.plotX, point.plotY); + } + } + }); + return segmentPath; + } + // handle unsorted data, throw error anyway + error(code, stop) { + const msg = 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code; + if (stop) { + throw msg; + } + else if (window.console) { + console.error(msg); + } + } + processData(force) { + const series = this, processedXData = series.xData, // copied during slice operation below + processedYData = series.yData, cropStart = 0, xAxis = series.xAxis, options = series.options, isCartesian = series.isCartesian; + let cropped, distance, closestPointRange; + // If the series data or axes haven't changed, don't go through this. Return false to pass + // the message on to override methods like in data grouping. + if (isCartesian && !series.isDirty && !xAxis.isDirty && !series.yAxis.isDirty && !force) { + return false; + } + if (processedXData && processedYData) { + // Find the closest distance between processed points + for (let i = processedXData.length - 1; i >= 0; i--) { + distance = processedXData[i] - processedXData[i - 1]; + if (distance > 0 && (typeof closestPointRange === 'undefined' || distance < closestPointRange)) { + closestPointRange = distance; + // Unsorted data is not supported by the line tooltip, as well as data grouping and + // navigation in Stock charts (#725) and width calculation of columns (#1900) + } + else if (distance < 0 && series.requireSorting) { + this.error(15); + } + } + // Record the properties + series.cropped = cropped; // undefined or true + series.cropStart = cropStart; + series.processedXData = processedXData; + series.processedYData = processedYData; + if (options.pointRange === null) { // null means auto, as for columns, candlesticks and OHLC + series.pointRange = closestPointRange || 1; + } + series.closestPointRange = closestPointRange; + } + return true; + } + ; + drawTracker() { + var _a, _b, _c, _d, _e; + const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), trackerPathLength = isArray(trackerPath) && trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor: cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002'; + let singlePoint, i; + const onMouseOver = function () { + if (chart.hoverSeries !== series) { + series.onMouseOver(); + } + }; + // Extend end points. A better way would be to use round linecaps, + // but those are not clickable in VML. + if (trackerPathLength && !trackByArea) { + i = trackerPathLength + 1; + while (i--) { + if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // extend left side + // @ts-ignore + trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], 'L'); + } + if ((i && ((_d = trackerPath[i]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || i === trackerPathLength) { // extend right side + // @ts-ignore + trackerPath.splice(i, 0, 'L', trackerPath[i - 2] + snap, trackerPath[i - 1]); + } + } + } + // handle single points + for (i = 0; i < singlePoints.length; i++) { + singlePoint = singlePoints[i]; + if (singlePoint.plotX && singlePoint.plotY) { + // @ts-ignore + trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, 'L', singlePoint.plotX + snap, singlePoint.plotY); + } + } + // draw the tracker + if (isSVGPathSegment(trackerPath)) { + if (tracker) { + tracker.attr({ d: trackerPath }); + } + else { // create + series.tracker = renderer.path(trackerPath) + .attr({ + 'stroke-linejoin': 'round', + visibility: series.visible ? 'visible' : 'hidden', + stroke: trackerFill, + fill: trackByArea ? trackerFill : 'none', + 'stroke-width': (_e = options.lineWidth) !== null && _e !== void 0 ? _e : 0 + (trackByArea ? 0 : 2 * snap), + zIndex: 2 + }) + .add(series.group); + // The tracker is added to the series group, which is clipped, but is covered + // by the marker group. So the marker group also needs to capture events. + [series.tracker, series.markerGroup].forEach(function (track) { + if (track) { + track.addClass('highcharts-tracker') + .on('mouseover', onMouseOver) + .on('mouseout', function (e) { pointer.onTrackerMouseOut(e); }); + if (css) { + track.css(css); + } + if (typeof document.documentElement.ontouchstart !== 'undefined') { + track.on('touchstart', onMouseOver); + } + } + }); + } + } + } + ; + setState(state) { + var _a, _b, _c; + const series = this, options = series.options, graphs = series.graphs, stateOptions = options.states; + let lineWidth = (_a = options.lineWidth) !== null && _a !== void 0 ? _a : 0; + state = state || ''; + if (series.state !== state) { + series.state = state; + if (stateOptions && state && ((_b = stateOptions[state]) === null || _b === void 0 ? void 0 : _b.enabled) === false) { + return; + } + if (stateOptions && state) { + lineWidth = ((_c = stateOptions[state]) === null || _c === void 0 ? void 0 : _c.lineWidth) || lineWidth + 1; + } + if (graphs) { // hover is turned off for dashed lines in VML + // use attr because animate will cause any other animation on the graph to stop + graphs.forEach(function (seg) { + if (!seg.dashstyle) { + seg.attr({ 'stroke-width': lineWidth }); + } + }); + } + } + } + ; + getSegments() { + var _a, _b; + const series = this, points = series.points; + let segments = [], lastColor = 0, pointsLength = points.length, i; + if (pointsLength) { // no action required for [] + // if connect nulls, just remove null points + if (series.options.connectNulls) { + // iterate backwars for secure point removal + for (i = pointsLength - 1; i >= 0; --i) { + if (points[i].y === null) { + points.splice(i, 1); + } + } + pointsLength = points.length; + points.forEach(function (_point, j) { + var _a; + if (j > 0 && points[j].segmentColor !== points[j - 1].segmentColor) { + segments.push({ + points: points.slice(lastColor, j + 1), + color: (_a = points[j - 1].segmentColor) !== null && _a !== void 0 ? _a : '' + }); + lastColor = j; + } + }); + if (pointsLength) { + // add the last segment (only single-point last segement is added) + if (lastColor !== pointsLength - 1) { + segments.push({ + points: points.slice(lastColor, pointsLength), + color: (_a = points[pointsLength - 1].segmentColor) !== null && _a !== void 0 ? _a : '' + }); + } + } + if (points.length && segments.length === 0) { + segments = [{ color: (_b = points[0].segmentColor) !== null && _b !== void 0 ? _b : '', points }]; + } + // else, split on null points or different colors + } + else { + let previousColor = null; + points.forEach(function (point, j) { + var _a, _b, _c; + var colorChanged = j > 0 && (point.y === null || points[j - 1].y === null || (point.segmentColor !== points[j - 1].segmentColor && points[j].segmentColor !== previousColor)), colorExists = points[j - 1] && points[j - 1].segmentColor && points[j - 1].y !== null ? true : false; + if (colorChanged) { + var p = points.slice(lastColor, j + 1); + if (p.length > 0) { + // do not create segments with null ponits + p.forEach(function (pointObject, k) { + if (pointObject.y === null) { + // remove null points (might be on edges) + p.splice(k, 1); + } + }); + segments.push({ + points: p, + color: (_a = (colorExists ? points[j - 1].segmentColor : previousColor)) !== null && _a !== void 0 ? _a : '' + }); + lastColor = j; + } + } + else if (j === pointsLength - 1) { + var next = j + 1; + if (point.y === null) { + next--; + } + p = points.slice(lastColor, next); + if (p.length > 0) { + // do not create segments with null ponits + p.forEach(function (pointObject, k) { + if (pointObject.y === null) { + // remove null points (might be on edges) + p.splice(k, 1); + } + }); + segments.push({ + points: p, + color: (_b = (colorExists ? points[j - 1].segmentColor : previousColor)) !== null && _b !== void 0 ? _b : '' + }); + lastColor = j; + } + } + // store previous color + if (point) { + previousColor = (_c = point.segmentColor) !== null && _c !== void 0 ? _c : ''; + } + }); + } + } + // register it + series.segments = segments; + } + ; + getGraphPaths() { + const series = this, graphPaths = []; + let singlePoints = [], // used in drawTracker, + segmentPath; + // Divide into segments and build graph and area paths + series.segments.forEach(function (segment) { + segmentPath = series.getSegmentPath(segment.points); + // add the segment to the graph, or a single point for tracking + if (graphPaths && segment.points.length > 1 && isSVGPathSegment(segmentPath)) { + graphPaths.push([segmentPath, segment.color]); + } + else { + singlePoints = [...singlePoints, ...segment.points]; + } + }); + // Record it for use in drawGraph and drawTracker, and return graphPaths + series.singlePoints = singlePoints; + series.graphPaths = graphPaths; + return graphPaths; + } + ; drawGraph() { - super.drawGraph.apply(this); - console.log('Inside coloredline drawGraph method!'); + const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', graphPaths = series.getGraphPaths(), graphPathLength = graphPaths.length; + let graphSegmentsLength = 0; + function getSegment(segment, colorType) { + var attribs = { + stroke: colorType, + 'stroke-width': lineWidth, + fill: 'none', + zIndex: 1 // #1069 + }, item; + if (dashStyle) { + attribs.dashstyle = dashStyle; + } + else if (roundCap) { + attribs['stroke-linecap'] = attribs['stroke-linejoin'] = 'round'; + } + if (segment[1]) { + attribs.stroke = segment[1]; + } + if (isArray(segment[0])) { + item = series.chart.renderer.path(segment[0]) + .attr(attribs) + .add(series.group); + } + if (item && item.shadow) { + item.shadow(!!options.shadow); + } + return item; + } + // draw the graphs + let graphs = series.graphs, g; + if (graphs.length > 0) { // cancel running animations, #459 + // do we have animation + graphPaths.forEach(function (segment, j) { + // update color and path + if (series.graphs[j] && isSVGPathSegment(segment[0])) { + series.graphs[j].attr({ d: segment[0], stroke: segment[1] }); + } + else { + const formattedSegment = getSegment(segment, colorType); + if (formattedSegment) { + series.graphs[j] = formattedSegment; + } + } + }); + } + else if (graphPaths.length) { // #1487 + graphs = []; + graphPaths.forEach(function (segment, j) { + const formattedSegment = getSegment(segment, colorType); + if (formattedSegment) { + graphs[j] = formattedSegment; + } + }); + series.graphs = graphs; + } + // Checks if series.graphs exists. #3 + graphSegmentsLength = (series.graphs && series.graphs.length) || -1; + for (let j = graphSegmentsLength; j >= graphPathLength; j--) { + if (series.graphs && series.graphs[j]) { + series.graphs[j].destroy(); + series.graphs.splice(j, 1); + } + } + } + ; + /* * + * + * Events + * + * */ + translate() { + super.translate.apply(this, arguments); + if (this.getSegments) { + this.getSegments(); + } } } -SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); +extend(ColoredlineSeries.prototype, { + getPointSpline: ColoredlineSeries.prototype.getPointSpline +}); +SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); /** * @private * @class diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 766d7a0..c9d87bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: highcharts: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/41258ad806b26101c2e8aa329340b6ccc0d5d86b + version: github.com/highcharts/highcharts/11fc07d7d2b0abc5fb05601dd380b510515274e5 devDependencies: '@types/jest': @@ -1350,7 +1350,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001561 - electron-to-chromium: 1.4.580 + electron-to-chromium: 1.4.581 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1958,8 +1958,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.580: - resolution: {integrity: sha512-T5q3pjQon853xxxHUq3ZP68ZpvJHuSMY2+BZaW3QzjS4HvNuvsMmZ/+lU+nCrftre1jFZ+OSlExynXWBihnXzw==} + /electron-to-chromium@1.4.581: + resolution: {integrity: sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==} dev: true /emittery@0.13.1: @@ -6392,8 +6392,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/41258ad806b26101c2e8aa329340b6ccc0d5d86b: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/41258ad806b26101c2e8aa329340b6ccc0d5d86b} + github.com/highcharts/highcharts/11fc07d7d2b0abc5fb05601dd380b510515274e5: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/11fc07d7d2b0abc5fb05601dd380b510515274e5} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/ts/ColoredlineSeriesOptions.d.ts b/ts/ColoredlineSeriesOptions.d.ts new file mode 100644 index 0000000..2fff771 --- /dev/null +++ b/ts/ColoredlineSeriesOptions.d.ts @@ -0,0 +1,52 @@ +/* * + * + * Imports + * + * */ + +import type ColorType from 'highcharts/ts/Core/Color/ColorType'; +import type DataLabelOptions from 'highcharts/ts/Core/Series/DataLabelOptions'; +import type SeriesOptions from 'highcharts/ts/Core/Series/SeriesOptions'; +import type { SeriesStateHoverOptions, SeriesStateInactiveOptions, SeriesStateNormalOptions, SeriesStateSelectOptions } from 'highcharts/ts/Core/Series/SeriesOptions'; +import type AnimationOptions from 'highcharts/ts/Core/Animation/AnimationOptions'; +import type StatesOptions, { StateGenericOptions } from 'highcharts/ts/Core/Series/StatesOptions'; + +/* * + * + * Declarations + * + * */ + +interface SeriesStatesOptions extends StatesOptions { + hover?: SeriesStateHoverOptions&StateGenericOptions; + inactive?: SeriesStateInactiveOptions&StateGenericOptions; + normal?: SeriesStateNormalOptions&StateGenericOptions; + select?: SeriesStateSelectOptions&StateGenericOptions; +} + +interface ColoredlineSeriesOptions extends SeriesOptions { + allAreas?: boolean; + animation?: (boolean|DeepPartial); + animationLimit?: number; + boostThreshold?: number; + borderColor?: ColorType; + borderWidth?: number; + colorAxis?: boolean; + connectEnds?: boolean; + dataLabels?: (DataLabelOptions|Array); + description?: string; + linkedTo?: string; + pointDescriptionFormatter?: Function; + pointStart?: number; + skipKeyboardNavigation?: boolean; + states?: SeriesStatesOptions; + supportingColor?: ColorType; +} + +/* * + * + * Default Export + * + * */ + +export default ColoredlineSeriesOptions; diff --git a/ts/multicolor_series.ts b/ts/multicolor_series.ts index ca7fad4..26b699a 100644 --- a/ts/multicolor_series.ts +++ b/ts/multicolor_series.ts @@ -1,8 +1,73 @@ +/* * + * + * Imports + * + * */ + import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; import Utilities from "highcharts/ts/Core/Utilities"; +import LineSeries from "highcharts/ts/Series/Line/LineSeries"; +import PointerEvent from "highcharts/ts/Core/PointerEvent"; +import SVGElement from "highcharts/ts/Core/Renderer/SVG/SVGElement"; +import SVGAttributes from "highcharts/ts/Core/Renderer/SVG/SVGAttributes"; +import ColorType from "highcharts/ts/Core/Color/ColorType"; +import LinePoint from "highcharts/ts/Series/Line/LinePoint"; +import SVGPath from "highcharts/ts/Core/Renderer/SVG/SVGPath"; +import { StatesOptionsKey } from "highcharts/ts/Core/Series/StatesOptions"; +import ColoredlineSeriesOptions from "./ColoredlineSeriesOptions"; + +const { area: AreaSeries } = SeriesRegistry.seriesTypes; +const { extend, isArray } = Utilities; + +/* * + * + * Declarations + * + * */ + +// TO DO: look if any types can be moved to the types.d.ts. +interface SeriesColoredPoint extends LinePoint { + segmentColor?: string; +} + +type SeriesColoredSegmentPath = SVGPath.Segment[] | string | number; + +type SeriesColoredGraphPath = [SeriesColoredSegmentPath, ColorType]; + +type SeriesColoredSegment = { + color: string; + points: SeriesColoredPoint[]; +}; + +/* * + * + * Type guards + * + * */ + +const isSVGPathSegment = ( + value: SeriesColoredSegmentPath | SeriesColoredSegmentPath[] | SVGElement +): value is SVGPath.Segment[] => typeof value !== 'string' && typeof value !== 'number'; + +/* * + * + * Functions + * + * */ + +function getPath(graphPaths: SeriesColoredGraphPath[]) { + let segmentPath: SeriesColoredSegmentPath = []; -const { line: LineSeries, area: AreaSeries } = SeriesRegistry.seriesTypes; -const { extend, pick } = Utilities; + if (graphPaths) { + graphPaths.forEach(function (el) { + if (isArray(segmentPath) && isArray(el[0])) { + segmentPath = segmentPath.concat(el[0]); + } + }); + } + + return segmentPath; +} /** * @private @@ -10,14 +75,537 @@ const { extend, pick } = Utilities; * @name Highcharts.seriesTypes.coloredline * */ -class ColoredLineSeries extends LineSeries { - drawGraph() { - super.drawGraph.apply(this); - console.log('Inside coloredline drawGraph method!'); + +class ColoredlineSeries extends LineSeries { + + /* * + * + * Constructor + * + * */ + + constructor() { + super(); + + this.singlePoints = []; + this.graphPaths = []; + this.areaPaths = []; + this.graphs = []; } + + /* * + * + * Properties + * + * */ + + public pointRange: number | undefined; + + public singlePoints!: SeriesColoredPoint[]; + + public points!: Array; + + public segments!: SeriesColoredSegment[]; + + public options!: ColoredlineSeriesOptions; + + // Overrides graphPath from Series type + public graphPaths: SeriesColoredGraphPath[]; + + // Overrides areaPath from Series type + public areaPaths: SeriesColoredSegmentPath; + + // Overrides graph from Series type + public graphs: SVGElement[] | []; + + /* * + * + * Functions + * + * */ + + public getSegmentPath(segment: SeriesColoredPoint[]) { + const series = this, + segmentPath: SeriesColoredSegmentPath[] = [], + step = series.options.step; + + // build the segment line + segment.forEach(function (point, i: number) { + const plotX = point.plotX, + plotY = point.plotY; + + let lastPoint; + + if (series.getPointSpline) { + // generate the spline as defined in the SplineSeries object + segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i)); + } else { + // moveTo or lineTo + segmentPath.push(i ? 'L' : 'M'); + + // step line? + if (step && i) { + lastPoint = segment[i - 1]; + + if (plotX && plotY && lastPoint?.plotX && lastPoint?.plotY) { + if (step === 'right') { + segmentPath.push( + lastPoint.plotX, + plotY, + 'L' + ); + } else if (step === 'center') { + segmentPath.push( + (lastPoint.plotX + plotX) / 2, + lastPoint.plotY, + 'L', + (lastPoint.plotX + plotX) / 2, + plotY, + 'L' + ); + } else { + segmentPath.push( + plotX, + lastPoint.plotY, + 'L' + ); + } + } + } + + // normal line to next point + if (point?.plotX && point.plotY) { + segmentPath.push( + point.plotX, + point.plotY + ); + } + } + }); + + return segmentPath; + } + + // handle unsorted data, throw error anyway + public error(code: number, stop?: boolean) { + const msg = 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code; + + if (stop) { + throw msg; + } else if (window.console) { + console.error(msg); + } + } + + public processData(force?: boolean | undefined): boolean | undefined { + const series = this, + processedXData = series.xData, // copied during slice operation below + processedYData = series.yData, + cropStart = 0, + xAxis = series.xAxis, + options = series.options, + isCartesian = series.isCartesian; + + let cropped, + distance, + closestPointRange: undefined | number; + + // If the series data or axes haven't changed, don't go through this. Return false to pass + // the message on to override methods like in data grouping. + if (isCartesian && !series.isDirty && !xAxis.isDirty && !series.yAxis.isDirty && !force) { + return false; + } + + if (processedXData && processedYData) { + // Find the closest distance between processed points + for (let i = processedXData.length - 1; i >= 0; i--) { + distance = processedXData[i] - processedXData[i - 1]; + if (distance > 0 && (typeof closestPointRange === 'undefined' || distance < closestPointRange)) { + closestPointRange = distance; + + // Unsorted data is not supported by the line tooltip, as well as data grouping and + // navigation in Stock charts (#725) and width calculation of columns (#1900) + } else if (distance < 0 && series.requireSorting) { + this.error(15); + } + } + + // Record the properties + series.cropped = cropped; // undefined or true + series.cropStart = cropStart; + series.processedXData = processedXData; + series.processedYData = processedYData; + + if (options.pointRange === null) { // null means auto, as for columns, candlesticks and OHLC + series.pointRange = closestPointRange || 1; + } + series.closestPointRange = closestPointRange; + } + + return true; + }; + + public drawTracker() { + const series = this, + options = series.options, + trackByArea = options.trackByArea, + trackerPath: SeriesColoredSegmentPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), + trackerPathLength = isArray(trackerPath) && trackerPath.length, + chart = series.chart, + pointer = chart.pointer, + renderer = chart.renderer, + snap = chart.options.tooltip?.snap ?? 0, + tracker = series.tracker, + cursor = options.cursor, + css = cursor && { cursor: cursor }, + singlePoints = series.singlePoints, + trackerFill = 'rgba(192,192,192,0.002'; + + let singlePoint, + i; + + const onMouseOver = function () { + if (chart.hoverSeries !== series) { + series.onMouseOver(); + } + }; + // Extend end points. A better way would be to use round linecaps, + // but those are not clickable in VML. + if (trackerPathLength && !trackByArea) { + i = trackerPathLength + 1; + while (i--) { + if (trackerPath[i]?.toString() === 'M') { // extend left side + // @ts-ignore + trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], 'L'); + } + if ((i && trackerPath[i]?.toString() === 'M') || i === trackerPathLength) { // extend right side + // @ts-ignore + trackerPath.splice(i, 0, 'L', trackerPath[i - 2] + snap, trackerPath[i - 1]); + } + } + } + + // handle single points + for (i = 0; i < singlePoints.length; i++) { + singlePoint = singlePoints[i]; + if (singlePoint.plotX && singlePoint.plotY) { + // @ts-ignore + trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, + 'L', singlePoint.plotX + snap, singlePoint.plotY); + } + } + + // draw the tracker + if (isSVGPathSegment(trackerPath)) { + if (tracker) { + tracker.attr({ d: trackerPath }); + } else { // create + series.tracker = renderer.path(trackerPath) + .attr({ + 'stroke-linejoin': 'round', // #1225 + visibility: series.visible ? 'visible' : 'hidden', + stroke: trackerFill, + fill: trackByArea ? trackerFill : 'none', + 'stroke-width': options.lineWidth ?? 0 + (trackByArea ? 0 : 2 * snap), + zIndex: 2 + }) + .add(series.group); + + // The tracker is added to the series group, which is clipped, but is covered + // by the marker group. So the marker group also needs to capture events. + [series.tracker, series.markerGroup].forEach(function (track) { + if (track) { + track.addClass('highcharts-tracker') + .on('mouseover', onMouseOver) + .on('mouseout', function (e: PointerEvent) { pointer.onTrackerMouseOut(e); }); + + if (css) { + track.css(css); + } + + if (typeof document.documentElement.ontouchstart !== 'undefined') { + track.on('touchstart', onMouseOver); + } + } + }); + } + } + + }; + + public setState(state?: (StatesOptionsKey | '')) { + const series = this, + options = series.options, + graphs = series.graphs, + stateOptions = options.states; + + let lineWidth = options.lineWidth ?? 0; + + state = state || ''; + + if (series.state !== state) { + series.state = state; + + if (stateOptions && state && stateOptions[state]?.enabled === false) { + return; + } + + if (stateOptions && state) { + lineWidth = stateOptions[state]?.lineWidth || lineWidth + 1; + } + + if (graphs) { // hover is turned off for dashed lines in VML + // use attr because animate will cause any other animation on the graph to stop + graphs.forEach(function (seg: SVGElement) { + if (!seg.dashstyle) { + seg.attr({ 'stroke-width': lineWidth }); + } + }); + } + } + }; + + public getSegments() { + const series = this, + points: SeriesColoredPoint[] = series.points; + + let segments: SeriesColoredSegment[] = [], + lastColor = 0, + pointsLength = points.length, + i; + + if (pointsLength) { // no action required for [] + + // if connect nulls, just remove null points + if (series.options.connectNulls) { + // iterate backwars for secure point removal + for (i = pointsLength - 1; i >= 0; --i) { + if (points[i].y === null) { + points.splice(i, 1); + } + } + pointsLength = points.length; + + points.forEach(function (_point, j) { + if (j > 0 && points[j].segmentColor !== points[j - 1].segmentColor) { + segments.push({ + points: points.slice(lastColor, j + 1), + color: points[j - 1].segmentColor ?? '' + }); + lastColor = j; + } + }); + + if (pointsLength) { + // add the last segment (only single-point last segement is added) + if (lastColor !== pointsLength - 1) { + segments.push({ + points: points.slice(lastColor, pointsLength), + color: points[pointsLength - 1].segmentColor ?? '' + }); + } + } + + if (points.length && segments.length === 0) { + segments = [{ color: points[0].segmentColor ?? '', points }]; + } + + // else, split on null points or different colors + } else { + let previousColor: string | null = null; + points.forEach(function (point, j) { + var colorChanged = j > 0 && (point.y === null || points[j - 1].y === null || (point.segmentColor !== points[j - 1].segmentColor && points[j].segmentColor !== previousColor)), + colorExists = points[j - 1] && points[j - 1].segmentColor && points[j - 1].y !== null ? true : false; + + if (colorChanged) { + var p = points.slice(lastColor, j + 1); + if (p.length > 0) { + // do not create segments with null ponits + p.forEach(function (pointObject, k) { + if (pointObject.y === null) { + // remove null points (might be on edges) + p.splice(k, 1); + } + }); + + segments.push({ + points: p, + color: (colorExists ? points[j - 1].segmentColor : previousColor) ?? '' + }); + lastColor = j; + } + } else if (j === pointsLength - 1) { + var next = j + 1; + if (point.y === null) { + next--; + } + p = points.slice(lastColor, next); + if (p.length > 0) { + // do not create segments with null ponits + p.forEach(function (pointObject, k) { + if (pointObject.y === null) { + // remove null points (might be on edges) + p.splice(k, 1); + } + }); + segments.push({ + points: p, + color: (colorExists ? points[j - 1].segmentColor : previousColor) ?? '' + }); + lastColor = j; + } + + } + + // store previous color + if (point) { + previousColor = point.segmentColor ?? ''; + } + }); + } + } + // register it + series.segments = segments; + }; + + public getGraphPaths() { + const series = this, + graphPaths: SeriesColoredGraphPath[] = []; + + + let singlePoints: SeriesColoredPoint[] = [], // used in drawTracker, + segmentPath; + + // Divide into segments and build graph and area paths + series.segments.forEach(function (segment) { + segmentPath = series.getSegmentPath(segment.points); + // add the segment to the graph, or a single point for tracking + if (graphPaths && segment.points.length > 1 && isSVGPathSegment(segmentPath)) { + graphPaths.push([segmentPath, segment.color]); + } else { + singlePoints = [...singlePoints, ...segment.points]; + } + }); + + // Record it for use in drawGraph and drawTracker, and return graphPaths + series.singlePoints = singlePoints; + series.graphPaths = graphPaths; + + return graphPaths; + }; + + public drawGraph() { + const series = this, + options = series.options, + colorType = options.lineColor || series.color || '', + lineWidth = options.lineWidth, + dashStyle = options.dashStyle, + roundCap = options.linecap !== 'square', + graphPaths: SeriesColoredGraphPath[] = series.getGraphPaths(), + graphPathLength = graphPaths.length; + + let graphSegmentsLength = 0; + + function getSegment(segment: SeriesColoredGraphPath, colorType: ColorType) { + var attribs: SVGAttributes = { + stroke: colorType, + 'stroke-width': lineWidth, + fill: 'none', + zIndex: 1 // #1069 + }, + item; + if (dashStyle) { + attribs.dashstyle = dashStyle; + } else if (roundCap) { + attribs['stroke-linecap'] = attribs['stroke-linejoin'] = 'round'; + } + + if (segment[1]) { + attribs.stroke = segment[1]; + } + + if (isArray(segment[0])) { + item = series.chart.renderer.path(segment[0]) + .attr(attribs) + .add(series.group); + } + + + if (item && item.shadow) { + item.shadow(!!options.shadow); + } + + return item; + } + + // draw the graphs + let graphs = series.graphs, + g; + + if (graphs.length > 0) { // cancel running animations, #459 + // do we have animation + graphPaths.forEach(function (segment, j) { + // update color and path + + if (series.graphs[j] && isSVGPathSegment(segment[0])) { + series.graphs[j].attr({ d: segment[0], stroke: segment[1] }); + } else { + const formattedSegment = getSegment(segment, colorType); + + if (formattedSegment) { + series.graphs[j] = formattedSegment; + } + } + }); + + } else if (graphPaths.length) { // #1487 + graphs = []; + graphPaths.forEach(function (segment, j) { + const formattedSegment = getSegment(segment, colorType); + + if (formattedSegment) { + graphs[j] = formattedSegment; + } + }); + series.graphs = graphs; + } + // Checks if series.graphs exists. #3 + graphSegmentsLength = (series.graphs && series.graphs.length) || -1; + + for (let j = graphSegmentsLength; j >= graphPathLength; j--) { + if (series.graphs && series.graphs[j]) { + series.graphs[j].destroy(); + series.graphs.splice(j, 1); + } + } + }; + + /* * + * + * Events + * + * */ + + public translate(): void { + super.translate.apply(this, arguments); + + if (this.getSegments) { + this.getSegments(); + } + } + } -SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); +interface ColoredlineSeries extends LineSeries { + getPointSpline: + (segment: SeriesColoredPoint[], point: SeriesColoredPoint, i: number) => SeriesColoredSegmentPath[]; +} + +extend(ColoredlineSeries.prototype, { + getPointSpline: ColoredlineSeries.prototype.getPointSpline +}); + +SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); /** * @private @@ -25,6 +613,7 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredLineSeries); * @name Highcharts.seriesTypes.coloredarea * */ + class ColoredAreaSeries extends AreaSeries { drawGraph() { super.drawGraph.apply(this); From c10a0704973d6df39c22f9896e5240c9ddde7374 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Thu, 16 Nov 2023 10:58:47 +0100 Subject: [PATCH 12/66] Added finished version of refactored coloredline series type/structure global types. --- dist/multicolor_series.js | 55 ++++++++------- ts/ColoredlineSeriesOptions.d.ts | 52 -------------- ts/config/highcharts-config.d.ts | 4 -- ts/multicolor_series.ts | 115 +++++++++++++++---------------- types.d.ts | 101 ++++++++++++++++++++++----- 5 files changed, 169 insertions(+), 158 deletions(-) delete mode 100644 ts/ColoredlineSeriesOptions.d.ts diff --git a/dist/multicolor_series.js b/dist/multicolor_series.js index 98313d0..4d53f96 100644 --- a/dist/multicolor_series.js +++ b/dist/multicolor_series.js @@ -24,27 +24,22 @@ 'Extensions/MulticolorSeries.js', [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js']], (SeriesRegistry,Utilities,LineSeries) => { - /* * - * - * Imports - * - * */ - + const { area: AreaSeries } = SeriesRegistry.seriesTypes; const { extend, isArray } = Utilities; -/* * +/** * * Type guards * - * */ -const isSVGPathSegment = (value) => typeof value !== 'string' && typeof value !== 'number'; -/* * + */ +const isSVGPathSegment = (value) => true; +/** * * Functions * - * */ + */ function getPath(graphPaths) { let segmentPath = []; if (graphPaths) { @@ -57,17 +52,18 @@ function getPath(graphPaths) { return segmentPath; } /** + * * @private * @class * @name Highcharts.seriesTypes.coloredline * */ class ColoredlineSeries extends LineSeries { - /* * + /** * * Constructor * - * */ + */ constructor() { super(); this.singlePoints = []; @@ -75,11 +71,11 @@ class ColoredlineSeries extends LineSeries { this.areaPaths = []; this.graphs = []; } - /* * + /** * * Functions * - * */ + */ getSegmentPath(segment) { const series = this, segmentPath = [], step = series.options.step; // build the segment line @@ -176,12 +172,16 @@ class ColoredlineSeries extends LineSeries { i = trackerPathLength + 1; while (i--) { if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // extend left side - // @ts-ignore - trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], 'L'); + const nextTrackerPath = trackerPath[i + 1]; + if (typeof nextTrackerPath === 'number') { + trackerPath.splice(i + 1, 0, nextTrackerPath - snap, trackerPath[i + 2], 'L'); + } } if ((i && ((_d = trackerPath[i]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || i === trackerPathLength) { // extend right side - // @ts-ignore - trackerPath.splice(i, 0, 'L', trackerPath[i - 2] + snap, trackerPath[i - 1]); + const subPreviousTrackerPath = trackerPath[i - 2]; + if (typeof subPreviousTrackerPath === 'number') { + trackerPath.splice(i, 0, 'L', subPreviousTrackerPath + snap, trackerPath[i - 1]); + } } } } @@ -189,7 +189,6 @@ class ColoredlineSeries extends LineSeries { for (i = 0; i < singlePoints.length; i++) { singlePoint = singlePoints[i]; if (singlePoint.plotX && singlePoint.plotY) { - // @ts-ignore trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, 'L', singlePoint.plotX + snap, singlePoint.plotY); } } @@ -384,7 +383,7 @@ class ColoredlineSeries extends LineSeries { if (segment[1]) { attribs.stroke = segment[1]; } - if (isArray(segment[0])) { + if (isSVGPathSegment(segment[0])) { item = series.chart.renderer.path(segment[0]) .attr(attribs) .add(series.group); @@ -395,7 +394,7 @@ class ColoredlineSeries extends LineSeries { return item; } // draw the graphs - let graphs = series.graphs, g; + let graphs = series.graphs; if (graphs.length > 0) { // cancel running animations, #459 // do we have animation graphPaths.forEach(function (segment, j) { @@ -431,11 +430,11 @@ class ColoredlineSeries extends LineSeries { } } ; - /* * + /** * * Events * - * */ + */ translate() { super.translate.apply(this, arguments); if (this.getSegments) { @@ -446,8 +445,14 @@ class ColoredlineSeries extends LineSeries { extend(ColoredlineSeries.prototype, { getPointSpline: ColoredlineSeries.prototype.getPointSpline }); +/** + * + * Registry + * + */ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); /** + * * @private * @class * @name Highcharts.seriesTypes.coloredarea @@ -456,7 +461,7 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); class ColoredAreaSeries extends AreaSeries { drawGraph() { super.drawGraph.apply(this); - console.log('Inside coloredarea drawGraph method!'); + console.info('Inside coloredarea drawGraph method!'); } } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); diff --git a/ts/ColoredlineSeriesOptions.d.ts b/ts/ColoredlineSeriesOptions.d.ts deleted file mode 100644 index 2fff771..0000000 --- a/ts/ColoredlineSeriesOptions.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* * - * - * Imports - * - * */ - -import type ColorType from 'highcharts/ts/Core/Color/ColorType'; -import type DataLabelOptions from 'highcharts/ts/Core/Series/DataLabelOptions'; -import type SeriesOptions from 'highcharts/ts/Core/Series/SeriesOptions'; -import type { SeriesStateHoverOptions, SeriesStateInactiveOptions, SeriesStateNormalOptions, SeriesStateSelectOptions } from 'highcharts/ts/Core/Series/SeriesOptions'; -import type AnimationOptions from 'highcharts/ts/Core/Animation/AnimationOptions'; -import type StatesOptions, { StateGenericOptions } from 'highcharts/ts/Core/Series/StatesOptions'; - -/* * - * - * Declarations - * - * */ - -interface SeriesStatesOptions extends StatesOptions { - hover?: SeriesStateHoverOptions&StateGenericOptions; - inactive?: SeriesStateInactiveOptions&StateGenericOptions; - normal?: SeriesStateNormalOptions&StateGenericOptions; - select?: SeriesStateSelectOptions&StateGenericOptions; -} - -interface ColoredlineSeriesOptions extends SeriesOptions { - allAreas?: boolean; - animation?: (boolean|DeepPartial); - animationLimit?: number; - boostThreshold?: number; - borderColor?: ColorType; - borderWidth?: number; - colorAxis?: boolean; - connectEnds?: boolean; - dataLabels?: (DataLabelOptions|Array); - description?: string; - linkedTo?: string; - pointDescriptionFormatter?: Function; - pointStart?: number; - skipKeyboardNavigation?: boolean; - states?: SeriesStatesOptions; - supportingColor?: ColorType; -} - -/* * - * - * Default Export - * - * */ - -export default ColoredlineSeriesOptions; diff --git a/ts/config/highcharts-config.d.ts b/ts/config/highcharts-config.d.ts index 0f998c0..58f8925 100644 --- a/ts/config/highcharts-config.d.ts +++ b/ts/config/highcharts-config.d.ts @@ -145,7 +145,3 @@ import 'highcharts/ts/masters/themes/high-contrast-light.src'; import 'highcharts/ts/masters/themes/sand-signika.src'; import 'highcharts/ts/masters/themes/skies.src'; import 'highcharts/ts/masters/themes/sunset.src'; - -import H from 'highcharts/ts/Core/Globals'; - -export type Highcharts = typeof H; diff --git a/ts/multicolor_series.ts b/ts/multicolor_series.ts index 26b699a..5865b62 100644 --- a/ts/multicolor_series.ts +++ b/ts/multicolor_series.ts @@ -1,9 +1,3 @@ -/* * - * - * Imports - * - * */ - import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; import Utilities from "highcharts/ts/Core/Utilities"; import LineSeries from "highcharts/ts/Series/Line/LineSeries"; @@ -11,52 +5,35 @@ import PointerEvent from "highcharts/ts/Core/PointerEvent"; import SVGElement from "highcharts/ts/Core/Renderer/SVG/SVGElement"; import SVGAttributes from "highcharts/ts/Core/Renderer/SVG/SVGAttributes"; import ColorType from "highcharts/ts/Core/Color/ColorType"; -import LinePoint from "highcharts/ts/Series/Line/LinePoint"; import SVGPath from "highcharts/ts/Core/Renderer/SVG/SVGPath"; import { StatesOptionsKey } from "highcharts/ts/Core/Series/StatesOptions"; -import ColoredlineSeriesOptions from "./ColoredlineSeriesOptions"; +import { + ColoredlineSeriesOptions, + SeriesColoredGraphPath, + SeriesColoredPoint, + SeriesColoredSegment, + SeriesColoredSegmentPath +} from 'types'; const { area: AreaSeries } = SeriesRegistry.seriesTypes; const { extend, isArray } = Utilities; -/* * - * - * Declarations - * - * */ - -// TO DO: look if any types can be moved to the types.d.ts. -interface SeriesColoredPoint extends LinePoint { - segmentColor?: string; -} - -type SeriesColoredSegmentPath = SVGPath.Segment[] | string | number; - -type SeriesColoredGraphPath = [SeriesColoredSegmentPath, ColorType]; - -type SeriesColoredSegment = { - color: string; - points: SeriesColoredPoint[]; -}; - -/* * +/** * * Type guards * - * */ + */ -const isSVGPathSegment = ( - value: SeriesColoredSegmentPath | SeriesColoredSegmentPath[] | SVGElement -): value is SVGPath.Segment[] => typeof value !== 'string' && typeof value !== 'number'; +const isSVGPathSegment = (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; -/* * +/** * * Functions * - * */ + */ function getPath(graphPaths: SeriesColoredGraphPath[]) { - let segmentPath: SeriesColoredSegmentPath = []; + let segmentPath: SeriesColoredSegmentPath[] = []; if (graphPaths) { graphPaths.forEach(function (el) { @@ -70,6 +47,7 @@ function getPath(graphPaths: SeriesColoredGraphPath[]) { } /** + * * @private * @class * @name Highcharts.seriesTypes.coloredline @@ -78,11 +56,11 @@ function getPath(graphPaths: SeriesColoredGraphPath[]) { class ColoredlineSeries extends LineSeries { - /* * + /** * * Constructor * - * */ + */ constructor() { super(); @@ -93,11 +71,11 @@ class ColoredlineSeries extends LineSeries { this.graphs = []; } - /* * + /** * * Properties * - * */ + */ public pointRange: number | undefined; @@ -109,20 +87,20 @@ class ColoredlineSeries extends LineSeries { public options!: ColoredlineSeriesOptions; - // Overrides graphPath from Series type + // Overrides graphPath property from Series type public graphPaths: SeriesColoredGraphPath[]; - // Overrides areaPath from Series type - public areaPaths: SeriesColoredSegmentPath; + // Overrides areaPath property from Series type + public areaPaths: SeriesColoredSegmentPath[]; - // Overrides graph from Series type + // Overrides graph property from Series type public graphs: SVGElement[] | []; - /* * + /** * * Functions * - * */ + */ public getSegmentPath(segment: SeriesColoredPoint[]) { const series = this, @@ -197,7 +175,7 @@ class ColoredlineSeries extends LineSeries { } } - public processData(force?: boolean | undefined): boolean | undefined { + public processData(force?: boolean | undefined) { const series = this, processedXData = series.xData, // copied during slice operation below processedYData = series.yData, @@ -249,7 +227,7 @@ class ColoredlineSeries extends LineSeries { const series = this, options = series.options, trackByArea = options.trackByArea, - trackerPath: SeriesColoredSegmentPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), + trackerPath: SeriesColoredSegmentPath[] = trackByArea ? series.areaPaths : getPath(series.graphPaths), trackerPathLength = isArray(trackerPath) && trackerPath.length, chart = series.chart, pointer = chart.pointer, @@ -275,12 +253,18 @@ class ColoredlineSeries extends LineSeries { i = trackerPathLength + 1; while (i--) { if (trackerPath[i]?.toString() === 'M') { // extend left side - // @ts-ignore - trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], 'L'); + const nextTrackerPath = trackerPath[i + 1]; + + if (typeof nextTrackerPath === 'number') { + trackerPath.splice(i + 1, 0, nextTrackerPath - snap, trackerPath[i + 2], 'L'); + } } if ((i && trackerPath[i]?.toString() === 'M') || i === trackerPathLength) { // extend right side - // @ts-ignore - trackerPath.splice(i, 0, 'L', trackerPath[i - 2] + snap, trackerPath[i - 1]); + const subPreviousTrackerPath = trackerPath[i - 2]; + + if (typeof subPreviousTrackerPath === 'number') { + trackerPath.splice(i, 0, 'L', subPreviousTrackerPath + snap, trackerPath[i - 1]); + } } } } @@ -289,7 +273,6 @@ class ColoredlineSeries extends LineSeries { for (i = 0; i < singlePoints.length; i++) { singlePoint = singlePoints[i]; if (singlePoint.plotX && singlePoint.plotY) { - // @ts-ignore trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, 'L', singlePoint.plotX + snap, singlePoint.plotY); } @@ -524,7 +507,7 @@ class ColoredlineSeries extends LineSeries { attribs.stroke = segment[1]; } - if (isArray(segment[0])) { + if (isSVGPathSegment(segment[0])) { item = series.chart.renderer.path(segment[0]) .attr(attribs) .add(series.group); @@ -539,8 +522,7 @@ class ColoredlineSeries extends LineSeries { } // draw the graphs - let graphs = series.graphs, - g; + let graphs = series.graphs; if (graphs.length > 0) { // cancel running animations, #459 // do we have animation @@ -580,11 +562,11 @@ class ColoredlineSeries extends LineSeries { } }; - /* * + /** * * Events * - * */ + */ public translate(): void { super.translate.apply(this, arguments); @@ -596,6 +578,12 @@ class ColoredlineSeries extends LineSeries { } +/** + * + * Class Prototype + * + */ + interface ColoredlineSeries extends LineSeries { getPointSpline: (segment: SeriesColoredPoint[], point: SeriesColoredPoint, i: number) => SeriesColoredSegmentPath[]; @@ -605,9 +593,16 @@ extend(ColoredlineSeries.prototype, { getPointSpline: ColoredlineSeries.prototype.getPointSpline }); +/** + * + * Registry + * + */ + SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); /** + * * @private * @class * @name Highcharts.seriesTypes.coloredarea @@ -615,10 +610,12 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); */ class ColoredAreaSeries extends AreaSeries { + drawGraph() { super.drawGraph.apply(this); - console.log('Inside coloredarea drawGraph method!'); + console.info('Inside coloredarea drawGraph method!'); } + } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); diff --git a/types.d.ts b/types.d.ts index dd37cb0..f8f5def 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,16 +1,84 @@ -import { SeriesOptions, PointOptionsObject, Point, Series, SVGElement } from "highcharts"; +import { PointOptionsObject } from "highcharts"; +import Series from 'highcharts/ts/Core/Series/Series'; +import LinePoint from 'highcharts/ts/Series/Line/LinePoint'; +import SVGElement from 'highcharts/ts/Core/Renderer/SVG/SVGElement'; +import type SVGPath from "highcharts/ts/Core/Renderer/SVG/SVGPath"; +import type ColorType from "highcharts/ts/Core/Color/ColorType"; +import type DataLabelOptions from 'highcharts/ts/Core/Series/DataLabelOptions'; +import type AnimationOptions from 'highcharts/ts/Core/Animation/AnimationOptions'; +import type StatesOptions, { + StateGenericOptions +} from 'highcharts/ts/Core/Series/StatesOptions'; +import type SeriesOptions, { + SeriesStateHoverOptions, + SeriesStateInactiveOptions, + SeriesStateNormalOptions, + SeriesStateSelectOptions +} from 'highcharts/ts/Core/Series/SeriesOptions'; /** - * Shared types. + * + * Shared types + * */ + +interface SeriesColored extends Omit { + tracker: SVGElement; + segments: SeriesColoredSegment[]; + graph: SVGElement[]; +} + +interface SeriesColoredPoint extends LinePoint { + segmentColor?: string; +} + type SeriesColoredSegment = { color: string; points: SeriesColoredPoint[]; }; +type SeriesColoredSegmentPath = SVGPath.Segment | string | number; + +type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], ColorType]; + /** - * Represents data for chart options. + * + * Coloredline series options + * */ + +interface SeriesStatesOptions extends StatesOptions { + hover?: SeriesStateHoverOptions&StateGenericOptions; + inactive?: SeriesStateInactiveOptions&StateGenericOptions; + normal?: SeriesStateNormalOptions&StateGenericOptions; + select?: SeriesStateSelectOptions&StateGenericOptions; +} + +interface ColoredlineSeriesOptions extends SeriesOptions { + allAreas?: boolean; + animation?: (boolean|DeepPartial); + animationLimit?: number; + boostThreshold?: number; + borderColor?: ColorType; + borderWidth?: number; + colorAxis?: boolean; + connectEnds?: boolean; + dataLabels?: (DataLabelOptions|Array); + description?: string; + linkedTo?: string; + pointDescriptionFormatter?: Function; + pointStart?: number; + skipKeyboardNavigation?: boolean; + states?: SeriesStatesOptions; + supportingColor?: ColorType; +} + +/** + * + * Represents data for chart options + * + */ + interface SeriesColoredPointOptions extends PointOptionsObject { segmentColor?: string; } @@ -26,8 +94,11 @@ type SeriesColoredlineOptions = SeriesColoredOptions<'coloredline'>; type SeriesColoredareaOptions = SeriesColoredOptions<'coloredarea'>; /** - * Globally accessible on the Highcharts module. + * + * Globally accessible on the Highcharts module + * */ + declare module "highcharts" { interface SeriesOptionsRegistry { SeriesColoredlineOptions?: SeriesColoredlineOptions; @@ -35,17 +106,11 @@ declare module "highcharts" { } } -/** - * Represents created chart data. - */ -interface SeriesColoredPoint extends Point { - segmentColor?: string; -} - -interface SeriesColored extends Omit { - tracker: SVGElement; - segments: SeriesColoredSegment[]; - graph: SVGElement[]; -} - -export { SeriesColored, SeriesColoredSegment, SeriesColoredPoint }; +export { + ColoredlineSeriesOptions, + SeriesColored, + SeriesColoredPoint, + SeriesColoredSegment, + SeriesColoredSegmentPath, + SeriesColoredGraphPath +}; From e0d5c1787df32003ed60108351a8b77d1f1ea2a3 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Thu, 16 Nov 2023 18:50:14 +0100 Subject: [PATCH 13/66] Added refactored ESLint config/formatted main ts file & builded package. --- .eslint-default-config.yml | 106 ----- .eslintrc | 28 -- .eslintrc.json | 105 +++++ dist/multicolor_series.js | 156 ++++--- package.json | 10 +- pnpm-lock.yaml | 634 ++++++++++++++++++++++++- ts/multicolor_series.ts | 932 +++++++++++++++++++++---------------- 7 files changed, 1343 insertions(+), 628 deletions(-) delete mode 100644 .eslint-default-config.yml delete mode 100644 .eslintrc create mode 100644 .eslintrc.json diff --git a/.eslint-default-config.yml b/.eslint-default-config.yml deleted file mode 100644 index 83e30a7..0000000 --- a/.eslint-default-config.yml +++ /dev/null @@ -1,106 +0,0 @@ -# Copied from https://github.com/eslint/eslint/blob/master/packages/eslint-config-eslint/default.yml -# Updated 2015-04-06 - -extends: - "eslint:recommended" - -rules: - array-callback-return: "error" - indent: ["error", 4, {SwitchCase: 1}] - block-spacing: "error" - brace-style: ["error", "1tbs"] - camelcase: ["error", { properties: "never" }] - callback-return: ["error", ["cb", "callback", "next"]] - comma-spacing: "error" - comma-style: ["error", "last"] - consistent-return: "error" - curly: ["error", "all"] - default-case: "error" - dot-notation: ["error", { allowKeywords: true }] - eol-last: "error" - eqeqeq: "error" - func-style: ["error", "declaration"] - guard-for-in: "error" - key-spacing: ["error", { beforeColon: false, afterColon: true }] - keyword-spacing: "error" - lines-around-comment: ["error", { - beforeBlockComment: true, - afterBlockComment: false, - beforeLineComment: true, - afterLineComment: false - }] - new-cap: "error" - newline-after-var: "error" - new-parens: "error" - no-alert: "error" - no-array-constructor: "error" - no-caller: "error" - no-console: 0 - no-delete-var: "error" - no-eval: "error" - no-extend-native: "error" - no-extra-bind: "error" - no-fallthrough: "error" - no-floating-decimal: "error" - no-implied-eval: "error" - no-invalid-this: "error" - no-iterator: "error" - no-label-var: "error" - no-labels: "error" - no-lone-blocks: "error" - no-loop-func: "error" - no-mixed-spaces-and-tabs: ["error", false] - no-multi-spaces: "error" - no-multi-str: "error" - no-native-reassign: "error" - no-nested-ternary: "error" - no-new: "error" - no-new-func: "error" - no-new-object: "error" - no-new-wrappers: "error" - no-octal: "error" - no-octal-escape: "error" - no-process-exit: "error" - no-proto: "error" - no-redeclare: "error" - no-return-assign: "error" - no-script-url: "error" - no-self-assign: "error" - no-sequences: "error" - no-shadow: "error" - no-shadow-restricted-names: "error" - no-spaced-func: "error" - no-trailing-spaces: "error" - no-undef: "error" - no-undef-init: "error" - no-undefined: "error" - no-underscore-dangle: ["error", {allowAfterThis: true}] - no-unmodified-loop-condition: "error" - no-unused-expressions: "error" - no-unused-vars: ["error", {vars: "all", args: "after-used"}] - no-use-before-define: "error" - no-useless-concat: "error" - no-with: "error" - one-var-declaration-per-line: "error" - quotes: ["error", "double"] - radix: "error" - require-jsdoc: "error" - semi: "error" - semi-spacing: ["error", {before: false, after: true}] - space-before-blocks: "error" - space-before-function-paren: ["error", "never"] - space-in-parens: "error" - space-infix-ops: "error" - space-unary-ops: ["error", {words: true, nonwords: false}] - spaced-comment: ["error", "always", { exceptions: ["-"]}] - strict: ["error", "global"] - valid-jsdoc: ["error", { prefer: { "return": "returns"}}] - wrap-iife: "error" - yoda: ["error", "never"] - - # Previously on by default in node environment - no-catch-shadow: "off" - no-mixed-requires: "error" - no-new-require: "error" - no-path-concat: "error" - handle-callback-err: ["error", "err"] \ No newline at end of file diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index fe1d162..0000000 --- a/.eslintrc +++ /dev/null @@ -1,28 +0,0 @@ -extends: - ".eslint-default-config.yml" - -rules: - camelcase: [2, {"properties": "always"}] - comma-dangle: [2, "never"] - dot-location: [2, "property"] - lines-around-comment: 0 - newline-after-var: 0 - no-alert: 2 - no-console: 2 - no-debugger: 2 - no-else-return: 2 - no-unmodified-loop-condition: 0 - object-curly-spacing: [2, "always"] - operator-linebreak: [2, "after"] - space-before-function-paren: [2, {"anonymous": "always", "named": "never"}] # JSLint style - strict: 0 - quotes: [2, "single"] - - no-trailing-spaces: ["error", { "skipBlankLines": true }] - indent: ["error", "tab", {SwitchCase: 1}] - no-nested-ternary: 0 - no-invalid-this: 0 - eol-last: 0 - require-jsdoc: 0 - brace-style: [2, "1tbs", { "allowSingleLine": true }] - wrap-iife: [2, "any"] \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..96ef8f0 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,105 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "parserOptions": { + "project": "./tsconfig.json" + }, + "ignorePatterns": ["types.d.ts"], + "rules": { + "camelcase": [ + 2, + { + "properties": "always" + } + ], + "capitalized-comments": ["warn", "always", { "ignoreConsecutiveComments": true }], + "class-methods-use-this": 0, + "comma-dangle": [ + 2, + "never" + ], + "consistent-return": 0, + "default-case": 0, + "default-param-last": 0, + "dot-notation": 0, + "function-paren-newline": 0, + "func-style": 0, + "indent": 0, + "max-len": [ + "error", + { + "code": 80, + "comments": 80, + "ignoreUrls": true, + "ignoreComments": true + } + ], + "no-dupe-class-members": 0, + "no-inner-declarations": 0, + "no-invalid-this": 0, + "no-shadow": 0, + "no-undef": 0, + "no-underscore-dangle": 0, + "no-unused-expressions": 0, + "no-use-before-define": 0, + "no-useless-constructor": 0, + "no-useless-escape": 0, + "no-useless-return": 0, + "object-curly-spacing": [2, "always"], + "object-shorthand": 0, + "prefer-const": 1, + "prefer-spread": 0, + "prefer-rest-params": 0, + "require-unicode-regexp": 0, + "quote-props": [2, "as-needed", { "keywords": true, "unnecessary": false }], + "semi": 0, + "@typescript-eslint/array-type": 0, + "@typescript-eslint/ban-types": 0, + "@typescript-eslint/explicit-function-return-type": [ + "error", + { + "allowExpressions": false, + "allowTypedFunctionExpressions": false + } + ], + "@typescript-eslint/indent": [ + "error", + 4, + { + "FunctionExpression": { "parameters": 1 }, + "SwitchCase": 1 + } + ], + "@typescript-eslint/no-empty-function": 0, + "@typescript-eslint/no-empty-interface": 0, + "@typescript-eslint/no-explicit-any": 0, + "@typescript-eslint/no-floating-promises": 1, + "@typescript-eslint/no-inferrable-types": 0, + "@typescript-eslint/no-namespace": 0, + "@typescript-eslint/no-object-literal-type-assertion": 0, + "@typescript-eslint/no-this-alias": 0, + "@typescript-eslint/no-unnecessary-type-assertion": 0, + "@typescript-eslint/no-unsafe-argument": 0, + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-call": 0, + "@typescript-eslint/no-unsafe-member-access": 0, + "@typescript-eslint/no-unsafe-return": 0, + "@typescript-eslint/no-unsafe-declaration-merging": 0, + "@typescript-eslint/no-unused-vars": 0, + "@typescript-eslint/no-use-before-define": 0, + "@typescript-eslint/no-useless-constructor": 2, + "@typescript-eslint/prefer-as-const": 1, + "@typescript-eslint/prefer-includes": 0, + "@typescript-eslint/prefer-regexp-exec": 0, + "@typescript-eslint/prefer-string-starts-ends-with": 0, + "@typescript-eslint/restrict-plus-operands": 0, + "@typescript-eslint/restrict-template-expressions": 1, + "@typescript-eslint/semi": 2, + "@typescript-eslint/unbound-method": 0 + } +} diff --git a/dist/multicolor_series.js b/dist/multicolor_series.js index 4d53f96..9af852e 100644 --- a/dist/multicolor_series.js +++ b/dist/multicolor_series.js @@ -78,21 +78,24 @@ class ColoredlineSeries extends LineSeries { */ getSegmentPath(segment) { const series = this, segmentPath = [], step = series.options.step; - // build the segment line + // Build the segment line segment.forEach(function (point, i) { const plotX = point.plotX, plotY = point.plotY; let lastPoint; if (series.getPointSpline) { - // generate the spline as defined in the SplineSeries object + // Generate the spline as defined in the SplineSeries object segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i)); } else { - // moveTo or lineTo + // Declarations: moveTo or lineTo segmentPath.push(i ? 'L' : 'M'); - // step line? + // Step line? if (step && i) { lastPoint = segment[i - 1]; - if (plotX && plotY && (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotX) && (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotY)) { + if (plotX && + plotY && + (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotX) && + (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotY)) { if (step === 'right') { segmentPath.push(lastPoint.plotX, plotY, 'L'); } @@ -104,7 +107,7 @@ class ColoredlineSeries extends LineSeries { } } } - // normal line to next point + // Normal line to next point if ((point === null || point === void 0 ? void 0 : point.plotX) && point.plotY) { segmentPath.push(point.plotX, point.plotY); } @@ -112,7 +115,7 @@ class ColoredlineSeries extends LineSeries { }); return segmentPath; } - // handle unsorted data, throw error anyway + // Handle unsorted data, throw error anyway error(code, stop) { const msg = 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code; if (stop) { @@ -123,19 +126,25 @@ class ColoredlineSeries extends LineSeries { } } processData(force) { - const series = this, processedXData = series.xData, // copied during slice operation below + const series = this, processedXData = series.xData, // Copied during slice operation below processedYData = series.yData, cropStart = 0, xAxis = series.xAxis, options = series.options, isCartesian = series.isCartesian; let cropped, distance, closestPointRange; // If the series data or axes haven't changed, don't go through this. Return false to pass // the message on to override methods like in data grouping. - if (isCartesian && !series.isDirty && !xAxis.isDirty && !series.yAxis.isDirty && !force) { + if (isCartesian && + !series.isDirty && + !xAxis.isDirty && + !series.yAxis.isDirty && + !force) { return false; } if (processedXData && processedYData) { // Find the closest distance between processed points for (let i = processedXData.length - 1; i >= 0; i--) { distance = processedXData[i] - processedXData[i - 1]; - if (distance > 0 && (typeof closestPointRange === 'undefined' || distance < closestPointRange)) { + if (distance > 0 && + (typeof closestPointRange === 'undefined' || + distance < closestPointRange)) { closestPointRange = distance; // Unsorted data is not supported by the line tooltip, as well as data grouping and // navigation in Stock charts (#725) and width calculation of columns (#1900) @@ -145,21 +154,20 @@ class ColoredlineSeries extends LineSeries { } } // Record the properties - series.cropped = cropped; // undefined or true + series.cropped = cropped; // Type: undefined or true series.cropStart = cropStart; series.processedXData = processedXData; series.processedYData = processedYData; - if (options.pointRange === null) { // null means auto, as for columns, candlesticks and OHLC + if (options.pointRange === null) { // Type: null means auto, as for columns, candlesticks and OHLC series.pointRange = closestPointRange || 1; } series.closestPointRange = closestPointRange; } return true; } - ; drawTracker() { var _a, _b, _c, _d, _e; - const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), trackerPathLength = isArray(trackerPath) && trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor: cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002'; + const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), trackerPathLength = isArray(trackerPath) && trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002'; let singlePoint, i; const onMouseOver = function () { if (chart.hoverSeries !== series) { @@ -171,13 +179,15 @@ class ColoredlineSeries extends LineSeries { if (trackerPathLength && !trackByArea) { i = trackerPathLength + 1; while (i--) { - if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // extend left side + if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // Extend left side const nextTrackerPath = trackerPath[i + 1]; if (typeof nextTrackerPath === 'number') { trackerPath.splice(i + 1, 0, nextTrackerPath - snap, trackerPath[i + 2], 'L'); } } - if ((i && ((_d = trackerPath[i]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || i === trackerPathLength) { // extend right side + if ((i && + ((_d = trackerPath[i]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || + i === trackerPathLength) { // Extend right side const subPreviousTrackerPath = trackerPath[i - 2]; if (typeof subPreviousTrackerPath === 'number') { trackerPath.splice(i, 0, 'L', subPreviousTrackerPath + snap, trackerPath[i - 1]); @@ -185,40 +195,45 @@ class ColoredlineSeries extends LineSeries { } } } - // handle single points + // Handle single points for (i = 0; i < singlePoints.length; i++) { singlePoint = singlePoints[i]; if (singlePoint.plotX && singlePoint.plotY) { trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, 'L', singlePoint.plotX + snap, singlePoint.plotY); } } - // draw the tracker + // Draw the tracker if (isSVGPathSegment(trackerPath)) { if (tracker) { tracker.attr({ d: trackerPath }); } - else { // create + else { // Create a tracker series.tracker = renderer.path(trackerPath) .attr({ 'stroke-linejoin': 'round', visibility: series.visible ? 'visible' : 'hidden', stroke: trackerFill, fill: trackByArea ? trackerFill : 'none', - 'stroke-width': (_e = options.lineWidth) !== null && _e !== void 0 ? _e : 0 + (trackByArea ? 0 : 2 * snap), + 'stroke-width': (_e = options.lineWidth) !== null && _e !== void 0 ? _e : 0 + + (trackByArea ? 0 : 2 * snap), zIndex: 2 }) .add(series.group); // The tracker is added to the series group, which is clipped, but is covered // by the marker group. So the marker group also needs to capture events. - [series.tracker, series.markerGroup].forEach(function (track) { + [series.tracker, series.markerGroup] + .forEach(function (track) { if (track) { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) - .on('mouseout', function (e) { pointer.onTrackerMouseOut(e); }); + .on('mouseout', function (e) { + pointer.onTrackerMouseOut(e); + }); if (css) { track.css(css); } - if (typeof document.documentElement.ontouchstart !== 'undefined') { + if (typeof document.documentElement.ontouchstart !== + 'undefined') { track.on('touchstart', onMouseOver); } } @@ -226,7 +241,6 @@ class ColoredlineSeries extends LineSeries { } } } - ; setState(state) { var _a, _b, _c; const series = this, options = series.options, graphs = series.graphs, stateOptions = options.states; @@ -234,13 +248,15 @@ class ColoredlineSeries extends LineSeries { state = state || ''; if (series.state !== state) { series.state = state; - if (stateOptions && state && ((_b = stateOptions[state]) === null || _b === void 0 ? void 0 : _b.enabled) === false) { + if (stateOptions && + state && + ((_b = stateOptions[state]) === null || _b === void 0 ? void 0 : _b.enabled) === false) { return; } if (stateOptions && state) { lineWidth = ((_c = stateOptions[state]) === null || _c === void 0 ? void 0 : _c.lineWidth) || lineWidth + 1; } - if (graphs) { // hover is turned off for dashed lines in VML + if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop graphs.forEach(function (seg) { if (!seg.dashstyle) { @@ -250,15 +266,14 @@ class ColoredlineSeries extends LineSeries { } } } - ; getSegments() { var _a, _b; const series = this, points = series.points; let segments = [], lastColor = 0, pointsLength = points.length, i; - if (pointsLength) { // no action required for [] + if (pointsLength) { // No action required for [] // if connect nulls, just remove null points if (series.options.connectNulls) { - // iterate backwars for secure point removal + // Iterate backwars for secure point removal for (i = pointsLength - 1; i >= 0; --i) { if (points[i].y === null) { points.splice(i, 1); @@ -267,7 +282,8 @@ class ColoredlineSeries extends LineSeries { pointsLength = points.length; points.forEach(function (_point, j) { var _a; - if (j > 0 && points[j].segmentColor !== points[j - 1].segmentColor) { + if (j > 0 && + points[j].segmentColor !== points[j - 1].segmentColor) { segments.push({ points: points.slice(lastColor, j + 1), color: (_a = points[j - 1].segmentColor) !== null && _a !== void 0 ? _a : '' @@ -276,7 +292,7 @@ class ColoredlineSeries extends LineSeries { } }); if (pointsLength) { - // add the last segment (only single-point last segement is added) + // Add the last segment (only single-point last segement is added) if (lastColor !== pointsLength - 1) { segments.push({ points: points.slice(lastColor, pointsLength), @@ -284,74 +300,87 @@ class ColoredlineSeries extends LineSeries { }); } } - if (points.length && segments.length === 0) { - segments = [{ color: (_b = points[0].segmentColor) !== null && _b !== void 0 ? _b : '', points }]; + if ((points.length > 0) && segments.length === 0) { + segments = [ + { + color: (_b = points[0].segmentColor) !== null && _b !== void 0 ? _b : '', + points + } + ]; } - // else, split on null points or different colors + // Else, split on null points or different colors } else { let previousColor = null; points.forEach(function (point, j) { - var _a, _b, _c; - var colorChanged = j > 0 && (point.y === null || points[j - 1].y === null || (point.segmentColor !== points[j - 1].segmentColor && points[j].segmentColor !== previousColor)), colorExists = points[j - 1] && points[j - 1].segmentColor && points[j - 1].y !== null ? true : false; + var _a, _b, _c, _d; + const colorChanged = j > 0 && (point.y === null || + points[j - 1].y === null || + (point.segmentColor !== + points[j - 1].segmentColor && + points[j].segmentColor !== previousColor)), colorExists = !!(((_a = points[j - 1]) === null || _a === void 0 ? void 0 : _a.segmentColor) && + points[j - 1].y !== null); + let p = points.slice(lastColor, j + 1); if (colorChanged) { - var p = points.slice(lastColor, j + 1); if (p.length > 0) { - // do not create segments with null ponits + // Do not create segments with null ponits p.forEach(function (pointObject, k) { if (pointObject.y === null) { - // remove null points (might be on edges) + // Remove null points (might be on edges) p.splice(k, 1); } }); segments.push({ points: p, - color: (_a = (colorExists ? points[j - 1].segmentColor : previousColor)) !== null && _a !== void 0 ? _a : '' + color: (_b = (colorExists ? points[j - 1].segmentColor : + previousColor)) !== null && _b !== void 0 ? _b : '' }); lastColor = j; } } else if (j === pointsLength - 1) { - var next = j + 1; + let next = j + 1; if (point.y === null) { next--; } p = points.slice(lastColor, next); if (p.length > 0) { - // do not create segments with null ponits + // Do not create segments with null ponits p.forEach(function (pointObject, k) { if (pointObject.y === null) { - // remove null points (might be on edges) + // Remove null points (might be on edges) p.splice(k, 1); } }); segments.push({ points: p, - color: (_b = (colorExists ? points[j - 1].segmentColor : previousColor)) !== null && _b !== void 0 ? _b : '' + color: (_c = (colorExists ? points[j - 1].segmentColor : + previousColor)) !== null && _c !== void 0 ? _c : '' }); lastColor = j; } } - // store previous color + // Store previous color if (point) { - previousColor = (_c = point.segmentColor) !== null && _c !== void 0 ? _c : ''; + previousColor = (_d = point.segmentColor) !== null && _d !== void 0 ? _d : ''; } }); } } - // register it + // Register it series.segments = segments; } - ; getGraphPaths() { const series = this, graphPaths = []; - let singlePoints = [], // used in drawTracker, + let singlePoints = [], // Used in drawTracker segmentPath; // Divide into segments and build graph and area paths series.segments.forEach(function (segment) { segmentPath = series.getSegmentPath(segment.points); - // add the segment to the graph, or a single point for tracking - if (graphPaths && segment.points.length > 1 && isSVGPathSegment(segmentPath)) { + // Add the segment to the graph, or a single point for tracking + if (graphPaths && + segment.points.length > 1 && + isSVGPathSegment(segmentPath)) { graphPaths.push([segmentPath, segment.color]); } else { @@ -363,22 +392,23 @@ class ColoredlineSeries extends LineSeries { series.graphPaths = graphPaths; return graphPaths; } - ; drawGraph() { const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', graphPaths = series.getGraphPaths(), graphPathLength = graphPaths.length; let graphSegmentsLength = 0; function getSegment(segment, colorType) { - var attribs = { + const attribs = { stroke: colorType, 'stroke-width': lineWidth, fill: 'none', zIndex: 1 // #1069 - }, item; + }; + let item; if (dashStyle) { attribs.dashstyle = dashStyle; } else if (roundCap) { - attribs['stroke-linecap'] = attribs['stroke-linejoin'] = 'round'; + attribs['stroke-linecap'] = + attribs['stroke-linejoin'] = 'round'; } if (segment[1]) { attribs.stroke = segment[1]; @@ -388,19 +418,22 @@ class ColoredlineSeries extends LineSeries { .attr(attribs) .add(series.group); } - if (item && item.shadow) { + if (item === null || item === void 0 ? void 0 : item.shadow) { item.shadow(!!options.shadow); } return item; } - // draw the graphs + // Draw the graphs let graphs = series.graphs; - if (graphs.length > 0) { // cancel running animations, #459 + if (graphs.length > 0) { // Cancel running animations, #459 // do we have animation graphPaths.forEach(function (segment, j) { - // update color and path + // Update color and path if (series.graphs[j] && isSVGPathSegment(segment[0])) { - series.graphs[j].attr({ d: segment[0], stroke: segment[1] }); + series.graphs[j].attr({ + d: segment[0], + stroke: segment[1] + }); } else { const formattedSegment = getSegment(segment, colorType); @@ -410,7 +443,7 @@ class ColoredlineSeries extends LineSeries { } }); } - else if (graphPaths.length) { // #1487 + else if (graphPaths.length > 0) { // #1487 graphs = []; graphPaths.forEach(function (segment, j) { const formattedSegment = getSegment(segment, colorType); @@ -429,7 +462,6 @@ class ColoredlineSeries extends LineSeries { } } } - ; /** * * Events diff --git a/package.json b/package.json index 534bd7f..daafd03 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "highcharts-multicolor-series", "version": "2.4.1", "description": "Highcharts plugin that adds new series: multicolor-series, where you can define color for each part of a path, between two points.", - "main": "js/multicolor_series.js", + "main": "ts/multicolor_series.ts", "repository": { "type": "git", "url": "git+https://github.com/blacklabel/multicolor_series.git" @@ -17,11 +17,6 @@ "bugs": { "url": "https://github.com/blacklabel/multicolor_series/issues" }, - "files": [ - "js/multicolor_series.js", - "js/multicolor_series.min.js", - "js/multicolor_series.min.js.map" - ], "homepage": "https://github.com/blacklabel/multicolor_series#readme", "types": "types.d.ts", "scripts": { @@ -32,6 +27,9 @@ "@types/jest": "^29.5.6", "@types/jquery": "^3.5.6", "@types/trusted-types": "^2.0.2", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint": "^8.0.1", "google-closure-compiler": "^20160517.1.0", "gulp": "^4.0.0", "gulp-bump": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9d87bc..f0e73c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: highcharts: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/11fc07d7d2b0abc5fb05601dd380b510515274e5 + version: github.com/highcharts/highcharts/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d devDependencies: '@types/jest': @@ -19,6 +19,15 @@ devDependencies: '@types/trusted-types': specifier: ^2.0.2 version: 2.0.2 + '@typescript-eslint/eslint-plugin': + specifier: ^6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.0.1)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.11.0 + version: 6.11.0(eslint@8.0.1)(typescript@5.2.2) + eslint: + specifier: ^8.0.1 + version: 8.0.1 google-closure-compiler: specifier: ^20160517.1.0 version: 20160517.1.0 @@ -70,6 +79,11 @@ devDependencies: packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -414,6 +428,53 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.0.1): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.0.1 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array@0.6.0: + resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -681,6 +742,27 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -794,12 +876,20 @@ packages: parse5: 7.1.2 dev: true + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + /@types/node@20.9.0: resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} dependencies: undici-types: 5.26.5 dev: true + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + dev: true + /@types/sizzle@2.3.6: resolution: {integrity: sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw==} dev: true @@ -833,6 +923,137 @@ packages: '@types/yargs-parser': 21.0.3 dev: true + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.11.0(eslint@8.0.1)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/type-utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + eslint: 8.0.1 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + eslint: 8.0.1 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + dev: true + + /@typescript-eslint/type-utils@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.0.1 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.0.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + eslint: 8.0.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + eslint-visitor-keys: 3.4.3 + dev: true + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true @@ -850,6 +1071,14 @@ packages: acorn: 3.3.0 dev: true + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + dev: true + /acorn-walk@8.3.0: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} @@ -894,7 +1123,16 @@ packages: resolution: {integrity: sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==} dependencies: co: 4.6.0 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 dev: true /ansi-colors@1.1.0: @@ -1028,6 +1266,10 @@ packages: sprintf-js: 1.0.3 dev: true + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + /arr-diff@1.1.0: resolution: {integrity: sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==} engines: {node: '>=0.10.0'} @@ -1126,6 +1368,11 @@ packages: kind-of: 5.1.0 dev: true + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + /array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} @@ -1349,8 +1596,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001561 - electron-to-chromium: 1.4.581 + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.585 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1460,8 +1707,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001561: - resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} dev: true /chalk@1.1.3: @@ -1921,6 +2168,13 @@ packages: engines: {node: '>=0.3.1'} dev: true + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + /doctrine@1.5.0: resolution: {integrity: sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==} engines: {node: '>=0.10.0'} @@ -1929,6 +2183,13 @@ packages: isarray: 1.0.0 dev: true + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -1958,8 +2219,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.581: - resolution: {integrity: sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==} + /electron-to-chromium@1.4.585: + resolution: {integrity: sha512-B4yBlX0azdA3rVMxpYwLQfDpdwOgcnLCkpvSOd68iFmeedo+WYjaBJS3/W58LVD8CB2nf+o7C4K9xz1l09RkWg==} dev: true /emittery@0.13.1: @@ -1977,6 +2238,14 @@ packages: once: 1.4.0 dev: true + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + dev: true + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2060,6 +2329,11 @@ packages: engines: {node: '>=8'} dev: true + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + /escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -2082,6 +2356,34 @@ packages: estraverse: 4.3.0 dev: true + /eslint-scope@6.0.0: + resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.0.1): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.0.1 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /eslint@2.13.1: resolution: {integrity: sha512-29PFGeV6lLQrPaPHeCkjfgLRQPFflDiicoNZOw+c/JkaQ0Am55yUICdYZbmCiM+DSef+q7oCercimHvjNI0GAw==} engines: {node: '>=0.10'} @@ -2105,7 +2407,7 @@ packages: is-my-json-valid: 2.20.6 is-resolvable: 1.1.0 js-yaml: 3.14.1 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 levn: 0.3.0 lodash: 4.17.21 mkdirp: 0.5.6 @@ -2124,6 +2426,53 @@ packages: - supports-color dev: true + /eslint@8.0.1: + resolution: {integrity: sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.6.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + enquirer: 2.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 6.0.0 + eslint-utils: 3.0.0(eslint@8.0.1) + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.23.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.5.4 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree@3.5.4: resolution: {integrity: sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==} engines: {node: '>=0.10.0'} @@ -2132,12 +2481,28 @@ packages: acorn-jsx: 3.0.1 dev: true + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: true + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -2304,6 +2669,21 @@ packages: time-stamp: 1.1.0 dev: true + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -2316,6 +2696,12 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + /fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -2338,6 +2724,13 @@ packages: object-assign: 4.1.1 dev: true + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + /file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} dev: true @@ -2454,6 +2847,19 @@ packages: write: 0.2.1 dev: true + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + /flush-write-stream@1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: @@ -2536,6 +2942,10 @@ packages: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + /generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} dependencies: @@ -2612,6 +3022,20 @@ packages: path-dirname: 1.0.2 dev: true + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + /glob-stream@5.3.5: resolution: {integrity: sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==} engines: {node: '>= 0.10'} @@ -2703,11 +3127,30 @@ packages: engines: {node: '>=4'} dev: true + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globals@9.18.0: resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} engines: {node: '>=0.10.0'} dev: true + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + /glogg@1.0.2: resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} engines: {node: '>= 0.10'} @@ -2735,6 +3178,10 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + /gulp-bump@2.1.0: resolution: {integrity: sha512-NPF2dDFiW1n0htapKFtxhTbnA8MgqJGJbWLgn+IJCqV4o+m6wccleZC67CONbdWsY44j7M6utX9jH64v4PSpAQ==} engines: {node: '>= 0.9.0'} @@ -3031,6 +3478,24 @@ packages: resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} dev: true + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -3364,6 +3829,10 @@ packages: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -3893,6 +4362,13 @@ packages: esprima: 4.0.1 dev: true + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + /jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} @@ -3940,18 +4416,30 @@ packages: hasBin: true dev: true + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.0.2: - resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + /json-stable-stringify@1.1.0: + resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.5 + isarray: 2.0.5 jsonify: 0.0.1 + object-keys: 1.1.1 dev: true /json5@2.2.3: @@ -3973,6 +4461,12 @@ packages: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} dev: true + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + /kind-of@1.1.0: resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} engines: {node: '>=0.10.0'} @@ -4049,6 +4543,14 @@ packages: type-check: 0.3.2 dev: true + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + /liftoff@3.1.0: resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} engines: {node: '>= 0.8'} @@ -4157,6 +4659,10 @@ packages: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + /lodash.restparam@3.6.1: resolution: {integrity: sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==} dev: true @@ -4303,6 +4809,11 @@ packages: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + /micromatch@2.3.11: resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} engines: {node: '>=0.10.0'} @@ -4612,6 +5123,18 @@ packages: word-wrap: 1.2.5 dev: true + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + /ordered-read-streams@0.3.0: resolution: {integrity: sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==} dependencies: @@ -4663,6 +5186,13 @@ packages: engines: {node: '>=6'} dev: true + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + /parse-filepath@1.0.2: resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} engines: {node: '>=0.8'} @@ -4775,6 +5305,11 @@ packages: pinkie-promise: 2.0.1 dev: true + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -4867,6 +5402,11 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + /preserve@0.2.0: resolution: {integrity: sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==} engines: {node: '>=0.10.0'} @@ -4895,6 +5435,11 @@ packages: engines: {node: '>=0.4.0'} dev: true + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4935,6 +5480,10 @@ packages: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + /randomatic@3.1.1: resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} engines: {node: '>= 0.10.0'} @@ -5053,6 +5602,11 @@ packages: safe-regex: 1.1.0 dev: true + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + /remove-bom-buffer@3.0.0: resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} engines: {node: '>=0.10.0'} @@ -5163,6 +5717,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -5207,6 +5766,11 @@ packages: engines: {node: '>=0.12'} dev: true + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} hasBin: true @@ -5214,12 +5778,25 @@ packages: glob: 7.2.3 dev: true + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + /run-async@0.1.0: resolution: {integrity: sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==} dependencies: once: 1.4.0 dev: true + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /rx-lite@3.1.2: resolution: {integrity: sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==} dev: true @@ -5826,6 +6403,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5898,11 +6484,23 @@ packages: prelude-ls: 1.1.2 dev: true + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -6002,6 +6600,12 @@ packages: picocolors: 1.0.0 dev: true + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + /urix@0.1.0: resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated @@ -6034,6 +6638,10 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true + /v8-to-istanbul@9.1.3: resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} @@ -6392,8 +7000,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/11fc07d7d2b0abc5fb05601dd380b510515274e5: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/11fc07d7d2b0abc5fb05601dd380b510515274e5} + github.com/highcharts/highcharts/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/ts/multicolor_series.ts b/ts/multicolor_series.ts index 5865b62..a00d171 100644 --- a/ts/multicolor_series.ts +++ b/ts/multicolor_series.ts @@ -1,18 +1,18 @@ -import SeriesRegistry from "highcharts/ts/Core/Series/SeriesRegistry"; -import Utilities from "highcharts/ts/Core/Utilities"; -import LineSeries from "highcharts/ts/Series/Line/LineSeries"; -import PointerEvent from "highcharts/ts/Core/PointerEvent"; -import SVGElement from "highcharts/ts/Core/Renderer/SVG/SVGElement"; -import SVGAttributes from "highcharts/ts/Core/Renderer/SVG/SVGAttributes"; -import ColorType from "highcharts/ts/Core/Color/ColorType"; -import SVGPath from "highcharts/ts/Core/Renderer/SVG/SVGPath"; -import { StatesOptionsKey } from "highcharts/ts/Core/Series/StatesOptions"; +import SeriesRegistry from 'highcharts/ts/Core/Series/SeriesRegistry'; +import Utilities from 'highcharts/ts/Core/Utilities'; +import LineSeries from 'highcharts/ts/Series/Line/LineSeries'; +import type PointerEvent from 'highcharts/ts/Core/PointerEvent'; +import type SVGElement from 'highcharts/ts/Core/Renderer/SVG/SVGElement'; +import type SVGAttributes from 'highcharts/ts/Core/Renderer/SVG/SVGAttributes'; +import type ColorType from 'highcharts/ts/Core/Color/ColorType'; +import type SVGPath from 'highcharts/ts/Core/Renderer/SVG/SVGPath'; +import { type StatesOptionsKey } from 'highcharts/ts/Core/Series/StatesOptions'; import { - ColoredlineSeriesOptions, - SeriesColoredGraphPath, - SeriesColoredPoint, - SeriesColoredSegment, - SeriesColoredSegmentPath + type ColoredlineSeriesOptions, + type SeriesColoredGraphPath, + type SeriesColoredPoint, + type SeriesColoredSegment, + type SeriesColoredSegmentPath } from 'types'; const { area: AreaSeries } = SeriesRegistry.seriesTypes; @@ -24,7 +24,8 @@ const { extend, isArray } = Utilities; * */ -const isSVGPathSegment = (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; +const isSVGPathSegment = + (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; /** * @@ -32,14 +33,16 @@ const isSVGPathSegment = (value: SeriesColoredSegmentPath[]): value is SVGPath.S * */ -function getPath(graphPaths: SeriesColoredGraphPath[]) { +function getPath ( + graphPaths: SeriesColoredGraphPath[] +): SeriesColoredSegmentPath[] { let segmentPath: SeriesColoredSegmentPath[] = []; if (graphPaths) { - graphPaths.forEach(function (el) { - if (isArray(segmentPath) && isArray(el[0])) { - segmentPath = segmentPath.concat(el[0]); - } + graphPaths.forEach(function (el): void { + if (isArray(segmentPath) && isArray(el[0])) { + segmentPath = segmentPath.concat(el[0]); + } }); } @@ -47,7 +50,7 @@ function getPath(graphPaths: SeriesColoredGraphPath[]) { } /** - * + * * @private * @class * @name Highcharts.seriesTypes.coloredline @@ -55,20 +58,20 @@ function getPath(graphPaths: SeriesColoredGraphPath[]) { */ class ColoredlineSeries extends LineSeries { - - /** + + /** * * Constructor * */ - constructor() { + constructor () { super(); this.singlePoints = []; this.graphPaths = []; this.areaPaths = []; - this.graphs = []; + this.graphs = []; } /** @@ -81,20 +84,20 @@ class ColoredlineSeries extends LineSeries { public singlePoints!: SeriesColoredPoint[]; - public points!: Array; + public points!: SeriesColoredPoint[]; public segments!: SeriesColoredSegment[]; - public options!: ColoredlineSeriesOptions; + public options!: ColoredlineSeriesOptions; - // Overrides graphPath property from Series type + // Overrides graphPath property from Series type public graphPaths: SeriesColoredGraphPath[]; - // Overrides areaPath property from Series type + // Overrides areaPath property from Series type public areaPaths: SeriesColoredSegmentPath[]; - // Overrides graph property from Series type - public graphs: SVGElement[] | []; + // Overrides graph property from Series type + public graphs: SVGElement[] | []; /** * @@ -102,38 +105,47 @@ class ColoredlineSeries extends LineSeries { * */ - public getSegmentPath(segment: SeriesColoredPoint[]) { + public getSegmentPath ( + segment: SeriesColoredPoint[] + ): SeriesColoredSegmentPath[] { const series = this, segmentPath: SeriesColoredSegmentPath[] = [], step = series.options.step; - - // build the segment line - segment.forEach(function (point, i: number) { + + // Build the segment line + segment.forEach(function (point, i: number): void { const plotX = point.plotX, plotY = point.plotY; let lastPoint; - + if (series.getPointSpline) { - // generate the spline as defined in the SplineSeries object - segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i)); + // Generate the spline as defined in the SplineSeries object + segmentPath.push.apply( + segmentPath, series.getPointSpline(segment, point, i) + ); } else { - // moveTo or lineTo + // Declarations: moveTo or lineTo segmentPath.push(i ? 'L' : 'M'); - - // step line? + + // Step line? if (step && i) { lastPoint = segment[i - 1]; - - if (plotX && plotY && lastPoint?.plotX && lastPoint?.plotY) { + + if ( + plotX && + plotY && + lastPoint?.plotX && + lastPoint?.plotY + ) { if (step === 'right') { - segmentPath.push( + segmentPath.push( lastPoint.plotX, plotY, 'L' ); } else if (step === 'center') { - segmentPath.push( + segmentPath.push( (lastPoint.plotX + plotX) / 2, lastPoint.plotY, 'L', @@ -150,8 +162,8 @@ class ColoredlineSeries extends LineSeries { } } } - - // normal line to next point + + // Normal line to next point if (point?.plotX && point.plotY) { segmentPath.push( point.plotX, @@ -160,13 +172,14 @@ class ColoredlineSeries extends LineSeries { } } }); - + return segmentPath; } - // handle unsorted data, throw error anyway - public error(code: number, stop?: boolean) { - const msg = 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code; + // Handle unsorted data, throw error anyway + public error (code: number, stop?: boolean): void { + const msg = + 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code; if (stop) { throw msg; @@ -175,392 +188,485 @@ class ColoredlineSeries extends LineSeries { } } - public processData(force?: boolean | undefined) { - const series = this, - processedXData = series.xData, // copied during slice operation below - processedYData = series.yData, - cropStart = 0, - xAxis = series.xAxis, - options = series.options, - isCartesian = series.isCartesian; - + public processData (force?: boolean | undefined): boolean { + const series = this, + processedXData = series.xData, // Copied during slice operation below + processedYData = series.yData, + cropStart = 0, + xAxis = series.xAxis, + options = series.options, + isCartesian = series.isCartesian; + let cropped, distance, closestPointRange: undefined | number; - - // If the series data or axes haven't changed, don't go through this. Return false to pass - // the message on to override methods like in data grouping. - if (isCartesian && !series.isDirty && !xAxis.isDirty && !series.yAxis.isDirty && !force) { - return false; - } + + // If the series data or axes haven't changed, don't go through this. Return false to pass + // the message on to override methods like in data grouping. + if ( + isCartesian && + !series.isDirty && + !xAxis.isDirty && + !series.yAxis.isDirty && + !force + ) { + return false; + } if (processedXData && processedYData) { // Find the closest distance between processed points for (let i = processedXData.length - 1; i >= 0; i--) { distance = processedXData[i] - processedXData[i - 1]; - if (distance > 0 && (typeof closestPointRange === 'undefined' || distance < closestPointRange)) { + + if ( + distance > 0 && + (typeof closestPointRange === 'undefined' || + distance < closestPointRange) + ) { closestPointRange = distance; - + // Unsorted data is not supported by the line tooltip, as well as data grouping and // navigation in Stock charts (#725) and width calculation of columns (#1900) } else if (distance < 0 && series.requireSorting) { this.error(15); } } - + // Record the properties - series.cropped = cropped; // undefined or true + series.cropped = cropped; // Type: undefined or true series.cropStart = cropStart; series.processedXData = processedXData; series.processedYData = processedYData; - - if (options.pointRange === null) { // null means auto, as for columns, candlesticks and OHLC + + if (options.pointRange === null) { // Type: null means auto, as for columns, candlesticks and OHLC series.pointRange = closestPointRange || 1; } + series.closestPointRange = closestPointRange; } - return true; - }; - - public drawTracker() { - const series = this, - options = series.options, - trackByArea = options.trackByArea, - trackerPath: SeriesColoredSegmentPath[] = trackByArea ? series.areaPaths : getPath(series.graphPaths), - trackerPathLength = isArray(trackerPath) && trackerPath.length, - chart = series.chart, - pointer = chart.pointer, - renderer = chart.renderer, - snap = chart.options.tooltip?.snap ?? 0, - tracker = series.tracker, - cursor = options.cursor, - css = cursor && { cursor: cursor }, - singlePoints = series.singlePoints, + return true; + } + + public drawTracker (): void { + const series = this, + options = series.options, + trackByArea = options.trackByArea, + trackerPath: SeriesColoredSegmentPath[] = + trackByArea ? series.areaPaths : getPath(series.graphPaths), + trackerPathLength = isArray(trackerPath) && trackerPath.length, + chart = series.chart, + pointer = chart.pointer, + renderer = chart.renderer, + snap = chart.options.tooltip?.snap ?? 0, + tracker = series.tracker, + cursor = options.cursor, + css = cursor && { cursor }, + singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002'; - + let singlePoint, i; - const onMouseOver = function () { - if (chart.hoverSeries !== series) { - series.onMouseOver(); - } - }; - // Extend end points. A better way would be to use round linecaps, - // but those are not clickable in VML. - if (trackerPathLength && !trackByArea) { - i = trackerPathLength + 1; - while (i--) { - if (trackerPath[i]?.toString() === 'M') { // extend left side - const nextTrackerPath = trackerPath[i + 1]; - - if (typeof nextTrackerPath === 'number') { - trackerPath.splice(i + 1, 0, nextTrackerPath - snap, trackerPath[i + 2], 'L'); - } - } - if ((i && trackerPath[i]?.toString() === 'M') || i === trackerPathLength) { // extend right side - const subPreviousTrackerPath = trackerPath[i - 2]; - - if (typeof subPreviousTrackerPath === 'number') { - trackerPath.splice(i, 0, 'L', subPreviousTrackerPath + snap, trackerPath[i - 1]); - } - } - } - } - - // handle single points - for (i = 0; i < singlePoints.length; i++) { - singlePoint = singlePoints[i]; - if (singlePoint.plotX && singlePoint.plotY) { - trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, - 'L', singlePoint.plotX + snap, singlePoint.plotY); - } - } - - // draw the tracker - if (isSVGPathSegment(trackerPath)) { - if (tracker) { - tracker.attr({ d: trackerPath }); - } else { // create - series.tracker = renderer.path(trackerPath) - .attr({ - 'stroke-linejoin': 'round', // #1225 - visibility: series.visible ? 'visible' : 'hidden', - stroke: trackerFill, - fill: trackByArea ? trackerFill : 'none', - 'stroke-width': options.lineWidth ?? 0 + (trackByArea ? 0 : 2 * snap), - zIndex: 2 - }) - .add(series.group); - - // The tracker is added to the series group, which is clipped, but is covered - // by the marker group. So the marker group also needs to capture events. - [series.tracker, series.markerGroup].forEach(function (track) { - if (track) { - track.addClass('highcharts-tracker') - .on('mouseover', onMouseOver) - .on('mouseout', function (e: PointerEvent) { pointer.onTrackerMouseOut(e); }); - - if (css) { - track.css(css); - } - - if (typeof document.documentElement.ontouchstart !== 'undefined') { - track.on('touchstart', onMouseOver); - } - } - }); - } - } - - }; - - public setState(state?: (StatesOptionsKey | '')) { - const series = this, - options = series.options, - graphs = series.graphs, - stateOptions = options.states; + const onMouseOver = function (): void { + if (chart.hoverSeries !== series) { + series.onMouseOver(); + } + }; + + // Extend end points. A better way would be to use round linecaps, + // but those are not clickable in VML. + if (trackerPathLength && !trackByArea) { + i = trackerPathLength + 1; + + while (i--) { + if (trackerPath[i]?.toString() === 'M') { // Extend left side + const nextTrackerPath = trackerPath[i + 1]; + + if (typeof nextTrackerPath === 'number') { + trackerPath.splice( + i + 1, + 0, + nextTrackerPath - snap, + trackerPath[i + 2], + 'L' + ); + } + } + + if ( + ( + i && + trackerPath[i]?.toString() === 'M' + ) || + i === trackerPathLength + ) { // Extend right side + const subPreviousTrackerPath = trackerPath[i - 2]; + + if (typeof subPreviousTrackerPath === 'number') { + trackerPath.splice( + i, + 0, + 'L', + subPreviousTrackerPath + snap, + trackerPath[i - 1] + ); + } + } + } + } + + // Handle single points + for (i = 0; i < singlePoints.length; i++) { + singlePoint = singlePoints[i]; + + if (singlePoint.plotX && singlePoint.plotY) { + trackerPath.push( + 'M', + singlePoint.plotX - snap, + singlePoint.plotY, + 'L', + singlePoint.plotX + snap, + singlePoint.plotY + ); + } + } + + // Draw the tracker + if (isSVGPathSegment(trackerPath)) { + if (tracker) { + tracker.attr({ d: trackerPath }); + } else { // Create a tracker + series.tracker = renderer.path(trackerPath) + .attr({ + 'stroke-linejoin': 'round', // #1225 + visibility: series.visible ? 'visible' : 'hidden', + stroke: trackerFill, + fill: trackByArea ? trackerFill : 'none', + 'stroke-width': options.lineWidth ?? 0 + + (trackByArea ? 0 : 2 * snap), + zIndex: 2 + }) + .add(series.group); + + // The tracker is added to the series group, which is clipped, but is covered + // by the marker group. So the marker group also needs to capture events. + [series.tracker, series.markerGroup] + .forEach(function (track): void { + if (track) { + track.addClass('highcharts-tracker') + .on('mouseover', onMouseOver) + .on('mouseout', + function (e: PointerEvent): void { + pointer.onTrackerMouseOut(e); + } + ); + + if (css) { + track.css(css); + } + + if ( + typeof document.documentElement.ontouchstart !== + 'undefined' + ) { + track.on('touchstart', onMouseOver); + } + } + }); + } + } + } + + public setState (state?: (StatesOptionsKey | '')): void { + const series = this, + options = series.options, + graphs = series.graphs, + stateOptions = options.states; let lineWidth = options.lineWidth ?? 0; - - state = state || ''; - - if (series.state !== state) { - series.state = state; - - if (stateOptions && state && stateOptions[state]?.enabled === false) { - return; - } - - if (stateOptions && state) { - lineWidth = stateOptions[state]?.lineWidth || lineWidth + 1; - } - - if (graphs) { // hover is turned off for dashed lines in VML - // use attr because animate will cause any other animation on the graph to stop - graphs.forEach(function (seg: SVGElement) { - if (!seg.dashstyle) { - seg.attr({ 'stroke-width': lineWidth }); - } - }); - } - } - }; - - public getSegments() { - const series = this, - points: SeriesColoredPoint[] = series.points; + + state = state || ''; + + if (series.state !== state) { + series.state = state; + + if ( + stateOptions && + state && + stateOptions[state]?.enabled === false + ) { + return; + } + + if (stateOptions && state) { + lineWidth = stateOptions[state]?.lineWidth || lineWidth + 1; + } + + if (graphs) { // Hover is turned off for dashed lines in VML + // use attr because animate will cause any other animation on the graph to stop + graphs.forEach(function (seg: SVGElement): void { + if (!seg.dashstyle) { + seg.attr({ 'stroke-width': lineWidth }); + } + }); + } + } + } + + public getSegments (): void { + const series = this, + points: SeriesColoredPoint[] = series.points; let segments: SeriesColoredSegment[] = [], - lastColor = 0, + lastColor = 0, pointsLength = points.length, i; - - if (pointsLength) { // no action required for [] - - // if connect nulls, just remove null points - if (series.options.connectNulls) { - // iterate backwars for secure point removal - for (i = pointsLength - 1; i >= 0; --i) { - if (points[i].y === null) { - points.splice(i, 1); - } - } - pointsLength = points.length; - - points.forEach(function (_point, j) { - if (j > 0 && points[j].segmentColor !== points[j - 1].segmentColor) { - segments.push({ - points: points.slice(lastColor, j + 1), - color: points[j - 1].segmentColor ?? '' - }); - lastColor = j; - } - }); - - if (pointsLength) { - // add the last segment (only single-point last segement is added) - if (lastColor !== pointsLength - 1) { - segments.push({ - points: points.slice(lastColor, pointsLength), - color: points[pointsLength - 1].segmentColor ?? '' - }); - } - } - - if (points.length && segments.length === 0) { - segments = [{ color: points[0].segmentColor ?? '', points }]; - } - - // else, split on null points or different colors - } else { - let previousColor: string | null = null; - points.forEach(function (point, j) { - var colorChanged = j > 0 && (point.y === null || points[j - 1].y === null || (point.segmentColor !== points[j - 1].segmentColor && points[j].segmentColor !== previousColor)), - colorExists = points[j - 1] && points[j - 1].segmentColor && points[j - 1].y !== null ? true : false; - - if (colorChanged) { - var p = points.slice(lastColor, j + 1); - if (p.length > 0) { - // do not create segments with null ponits - p.forEach(function (pointObject, k) { - if (pointObject.y === null) { - // remove null points (might be on edges) - p.splice(k, 1); - } - }); - - segments.push({ - points: p, - color: (colorExists ? points[j - 1].segmentColor : previousColor) ?? '' - }); - lastColor = j; - } - } else if (j === pointsLength - 1) { - var next = j + 1; - if (point.y === null) { - next--; - } - p = points.slice(lastColor, next); - if (p.length > 0) { - // do not create segments with null ponits - p.forEach(function (pointObject, k) { - if (pointObject.y === null) { - // remove null points (might be on edges) - p.splice(k, 1); - } - }); - segments.push({ - points: p, - color: (colorExists ? points[j - 1].segmentColor : previousColor) ?? '' - }); - lastColor = j; - } - - } - - // store previous color - if (point) { - previousColor = point.segmentColor ?? ''; - } - }); - } - } - // register it - series.segments = segments; - }; - - public getGraphPaths() { - const series = this, - graphPaths: SeriesColoredGraphPath[] = []; - - - let singlePoints: SeriesColoredPoint[] = [], // used in drawTracker, - segmentPath; - - // Divide into segments and build graph and area paths - series.segments.forEach(function (segment) { - segmentPath = series.getSegmentPath(segment.points); - // add the segment to the graph, or a single point for tracking - if (graphPaths && segment.points.length > 1 && isSVGPathSegment(segmentPath)) { - graphPaths.push([segmentPath, segment.color]); - } else { - singlePoints = [...singlePoints, ...segment.points]; - } - }); - - // Record it for use in drawGraph and drawTracker, and return graphPaths - series.singlePoints = singlePoints; - series.graphPaths = graphPaths; - - return graphPaths; - }; - - public drawGraph() { - const series = this, - options = series.options, - colorType = options.lineColor || series.color || '', - lineWidth = options.lineWidth, - dashStyle = options.dashStyle, - roundCap = options.linecap !== 'square', - graphPaths: SeriesColoredGraphPath[] = series.getGraphPaths(), - graphPathLength = graphPaths.length; - - let graphSegmentsLength = 0; - - function getSegment(segment: SeriesColoredGraphPath, colorType: ColorType) { - var attribs: SVGAttributes = { - stroke: colorType, - 'stroke-width': lineWidth, - fill: 'none', - zIndex: 1 // #1069 - }, - item; - if (dashStyle) { - attribs.dashstyle = dashStyle; - } else if (roundCap) { - attribs['stroke-linecap'] = attribs['stroke-linejoin'] = 'round'; - } - - if (segment[1]) { - attribs.stroke = segment[1]; - } - - if (isSVGPathSegment(segment[0])) { - item = series.chart.renderer.path(segment[0]) - .attr(attribs) - .add(series.group); - } - - - if (item && item.shadow) { - item.shadow(!!options.shadow); - } - - return item; - } - - // draw the graphs - let graphs = series.graphs; - - if (graphs.length > 0) { // cancel running animations, #459 - // do we have animation - graphPaths.forEach(function (segment, j) { - // update color and path - - if (series.graphs[j] && isSVGPathSegment(segment[0])) { - series.graphs[j].attr({ d: segment[0], stroke: segment[1] }); - } else { - const formattedSegment = getSegment(segment, colorType); - - if (formattedSegment) { - series.graphs[j] = formattedSegment; - } - } - }); - - } else if (graphPaths.length) { // #1487 - graphs = []; - graphPaths.forEach(function (segment, j) { - const formattedSegment = getSegment(segment, colorType); - - if (formattedSegment) { - graphs[j] = formattedSegment; - } - }); - series.graphs = graphs; - } - // Checks if series.graphs exists. #3 - graphSegmentsLength = (series.graphs && series.graphs.length) || -1; - - for (let j = graphSegmentsLength; j >= graphPathLength; j--) { - if (series.graphs && series.graphs[j]) { - series.graphs[j].destroy(); - series.graphs.splice(j, 1); - } - } - }; + + if (pointsLength) { // No action required for [] + // if connect nulls, just remove null points + if (series.options.connectNulls) { + // Iterate backwars for secure point removal + for (i = pointsLength - 1; i >= 0; --i) { + if (points[i].y === null) { + points.splice(i, 1); + } + } + pointsLength = points.length; + + points.forEach(function (_point, j): void { + if ( + j > 0 && + points[j].segmentColor !== points[j - 1].segmentColor + ) { + segments.push({ + points: points.slice(lastColor, j + 1), + color: points[j - 1].segmentColor ?? '' + }); + lastColor = j; + } + }); + + if (pointsLength) { + // Add the last segment (only single-point last segement is added) + if (lastColor !== pointsLength - 1) { + segments.push({ + points: points.slice(lastColor, pointsLength), + color: points[pointsLength - 1].segmentColor ?? '' + }); + } + } + + if ((points.length > 0) && segments.length === 0) { + segments = [ + { + color: points[0].segmentColor ?? '', + points + } + ]; + } + + // Else, split on null points or different colors + } else { + let previousColor: string | null = null; + + points.forEach(function (point, j): void { + const colorChanged = j > 0 && ( + point.y === null || + points[j - 1].y === null || + ( + point.segmentColor !== + points[j - 1].segmentColor && + points[j].segmentColor !== previousColor + ) + ), + colorExists = !!(points[j - 1]?.segmentColor && + points[j - 1].y !== null); + + let p = points.slice(lastColor, j + 1); + + if (colorChanged) { + if (p.length > 0) { + // Do not create segments with null ponits + p.forEach(function (pointObject, k): void { + if (pointObject.y === null) { + // Remove null points (might be on edges) + p.splice(k, 1); + } + }); + + segments.push({ + points: p, + color: ( + colorExists ? points[j - 1].segmentColor : + previousColor + ) ?? '' + }); + lastColor = j; + } + } else if (j === pointsLength - 1) { + let next = j + 1; + + if (point.y === null) { + next--; + } + + p = points.slice(lastColor, next); + + if (p.length > 0) { + // Do not create segments with null ponits + p.forEach(function (pointObject, k): void { + if (pointObject.y === null) { + // Remove null points (might be on edges) + p.splice(k, 1); + } + }); + + segments.push({ + points: p, + color: ( + colorExists ? points[j - 1].segmentColor : + previousColor + ) ?? '' + }); + + lastColor = j; + } + } + + // Store previous color + if (point) { + previousColor = point.segmentColor ?? ''; + } + }); + } + } + + // Register it + series.segments = segments; + } + + public getGraphPaths (): SeriesColoredGraphPath[] { + const series = this, + graphPaths: SeriesColoredGraphPath[] = []; + + let singlePoints: SeriesColoredPoint[] = [], // Used in drawTracker + segmentPath; + + // Divide into segments and build graph and area paths + series.segments.forEach(function (segment): void { + segmentPath = series.getSegmentPath(segment.points); + + // Add the segment to the graph, or a single point for tracking + if ( + graphPaths && + segment.points.length > 1 && + isSVGPathSegment(segmentPath) + ) { + graphPaths.push([segmentPath, segment.color]); + } else { + singlePoints = [...singlePoints, ...segment.points]; + } + }); + + // Record it for use in drawGraph and drawTracker, and return graphPaths + series.singlePoints = singlePoints; + series.graphPaths = graphPaths; + + return graphPaths; + } + + public drawGraph (): void { + const series = this, + options = series.options, + colorType = options.lineColor || series.color || '', + lineWidth = options.lineWidth, + dashStyle = options.dashStyle, + roundCap = options.linecap !== 'square', + graphPaths: SeriesColoredGraphPath[] = series.getGraphPaths(), + graphPathLength = graphPaths.length; + + let graphSegmentsLength = 0; + + function getSegment ( + segment: SeriesColoredGraphPath, + colorType: ColorType + ): SVGElement | undefined { + const attribs: SVGAttributes = { + stroke: colorType, + 'stroke-width': lineWidth, + fill: 'none', + zIndex: 1 // #1069 + }; + + let item; + + if (dashStyle) { + attribs.dashstyle = dashStyle; + } else if (roundCap) { + attribs['stroke-linecap'] = + attribs['stroke-linejoin'] = 'round'; + } + + if (segment[1]) { + attribs.stroke = segment[1]; + } + + if (isSVGPathSegment(segment[0])) { + item = series.chart.renderer.path(segment[0]) + .attr(attribs) + .add(series.group); + } + + if (item?.shadow) { + item.shadow(!!options.shadow); + } + + return item; + } + + // Draw the graphs + let graphs = series.graphs; + + if (graphs.length > 0) { // Cancel running animations, #459 + // do we have animation + graphPaths.forEach(function (segment, j): void { + // Update color and path + if (series.graphs[j] && isSVGPathSegment(segment[0])) { + series.graphs[j].attr({ + d: segment[0], + stroke: segment[1] + }); + } else { + const formattedSegment = getSegment(segment, colorType); + + if (formattedSegment) { + series.graphs[j] = formattedSegment; + } + } + }); + } else if (graphPaths.length > 0) { // #1487 + graphs = []; + graphPaths.forEach(function (segment, j): void { + const formattedSegment = getSegment(segment, colorType); + + if (formattedSegment) { + graphs[j] = formattedSegment; + } + }); + + series.graphs = graphs; + } + // Checks if series.graphs exists. #3 + graphSegmentsLength = (series.graphs && series.graphs.length) || -1; + + for (let j = graphSegmentsLength; j >= graphPathLength; j--) { + if (series.graphs && series.graphs[j]) { + series.graphs[j].destroy(); + series.graphs.splice(j, 1); + } + } + } /** * @@ -568,14 +674,13 @@ class ColoredlineSeries extends LineSeries { * */ - public translate(): void { + public translate (): void { super.translate.apply(this, arguments); if (this.getSegments) { - this.getSegments(); - } + this.getSegments(); + } } - } /** @@ -585,8 +690,11 @@ class ColoredlineSeries extends LineSeries { */ interface ColoredlineSeries extends LineSeries { - getPointSpline: - (segment: SeriesColoredPoint[], point: SeriesColoredPoint, i: number) => SeriesColoredSegmentPath[]; + getPointSpline: ( + segment: SeriesColoredPoint[], + point: SeriesColoredPoint, + i: number + ) => SeriesColoredSegmentPath[] } extend(ColoredlineSeries.prototype, { @@ -602,7 +710,7 @@ extend(ColoredlineSeries.prototype, { SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); /** - * + * * @private * @class * @name Highcharts.seriesTypes.coloredarea @@ -610,12 +718,10 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); */ class ColoredAreaSeries extends AreaSeries { - - drawGraph() { + drawGraph (): void { super.drawGraph.apply(this); console.info('Inside coloredarea drawGraph method!'); } - } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); From 55549c44721e165b7ed8f7ec191bcbbd75a414c2 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Fri, 17 Nov 2023 11:32:37 +0100 Subject: [PATCH 14/66] Added gulp lint task/husky, pre-commit script to run gulp lint task. --- .eslintrc.json | 3 +- .husky/pre-commit | 4 + gulpfile.js | 12 +- package.json | 9 +- pnpm-lock.yaml | 692 +++++++++++++++++----------------------- ts/multicolor_series.ts | 2 + 6 files changed, 319 insertions(+), 403 deletions(-) create mode 100755 .husky/pre-commit diff --git a/.eslintrc.json b/.eslintrc.json index 96ef8f0..89fb555 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,7 +1,6 @@ { "env": { - "browser": true, - "es2021": true + "browser": true }, "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], "parser": "@typescript-eslint/parser", diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..75fac8e --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npm run lint diff --git a/gulpfile.js b/gulpfile.js index 156afa3..46b6f15 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -30,7 +30,7 @@ decorator = [ '' ]; -gulp.task("build", () => { +gulp.task("compile", () => { return tsProject .src() .pipe(tsProject()) @@ -90,12 +90,14 @@ gulp.task("build", () => { }); gulp.task('lint', function () { - return gulp.src(files) - .pipe(eslint()) - .pipe(gulpif(args.failonerror, eslint.failOnError())) - .pipe(eslint.formatEach()); + return gulp.src(['ts/*.ts']) + .pipe(eslint()) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()); }); +gulp.task('build', gulp.series('lint', 'compile')); + gulp.task('lint-watch', function () { return gulp.src(files) .pipe(eslint()) diff --git a/package.json b/package.json index daafd03..4b0db09 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,9 @@ "types": "types.d.ts", "scripts": { "test": "jest", - "build": "gulp build" + "build": "gulp build", + "lint": "gulp lint", + "prepare": "husky install" }, "devDependencies": { "@types/jest": "^29.5.6", @@ -33,7 +35,7 @@ "google-closure-compiler": "^20160517.1.0", "gulp": "^4.0.0", "gulp-bump": "^2.1.0", - "gulp-eslint": "^2.0.0", + "gulp-eslint": "^6.0.0", "gulp-git": "^2.10.0", "gulp-if": "^2.0.0", "gulp-replace": "^1.1.4", @@ -45,7 +47,8 @@ "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "typescript": "^5.2.2", - "yargs": "^4.7.0" + "yargs": "^4.7.0", + "husky": "^8.0.0" }, "dependencies": { "highcharts": "github:highcharts/highcharts" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0e73c9..12bfa9e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: highcharts: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d + version: github.com/highcharts/highcharts/12a5a01b32a09882151b806e86021fe269b71019 devDependencies: '@types/jest': @@ -38,8 +38,8 @@ devDependencies: specifier: ^2.1.0 version: 2.1.0 gulp-eslint: - specifier: ^2.0.0 - version: 2.0.0 + specifier: ^6.0.0 + version: 6.0.0 gulp-git: specifier: ^2.10.0 version: 2.10.0 @@ -55,9 +55,12 @@ devDependencies: gulp-typescript: specifier: ^6.0.0-alpha.1 version: 6.0.0-alpha.1(typescript@5.2.2) + husky: + specifier: ^8.0.0 + version: 8.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -69,7 +72,7 @@ devDependencies: version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) + version: 10.9.1(@types/node@20.9.1)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -496,7 +499,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -517,14 +520,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -552,7 +555,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-mock: 29.7.0 dev: true @@ -579,7 +582,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -612,7 +615,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -700,7 +703,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.9.0 + '@types/node': 20.9.1 '@types/yargs': 17.0.31 chalk: 4.1.2 dev: true @@ -836,7 +839,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.1 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -871,7 +874,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.1 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -880,8 +883,8 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + /@types/node@20.9.1: + resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==} dependencies: undici-types: 5.26.5 dev: true @@ -910,7 +913,7 @@ packages: resolution: {integrity: sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.9.0 + '@types/node': 20.9.1 dev: true /@types/yargs-parser@21.0.3: @@ -1065,10 +1068,12 @@ packages: acorn-walk: 8.3.0 dev: true - /acorn-jsx@3.0.1: - resolution: {integrity: sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==} + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 3.3.0 + acorn: 7.4.1 dev: true /acorn-jsx@5.3.2(acorn@8.11.2): @@ -1084,14 +1089,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn@3.3.0: - resolution: {integrity: sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn@5.7.4: - resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1111,21 +1110,6 @@ packages: - supports-color dev: true - /ajv-keywords@1.5.1(ajv@4.11.8): - resolution: {integrity: sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA==} - peerDependencies: - ajv: '>=4.10.0' - dependencies: - ajv: 4.11.8 - dev: true - - /ajv@4.11.8: - resolution: {integrity: sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==} - dependencies: - co: 4.6.0 - json-stable-stringify: 1.1.0 - dev: true - /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -1154,11 +1138,6 @@ packages: ansi-wrap: 0.1.0 dev: true - /ansi-escapes@1.4.0: - resolution: {integrity: sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==} - engines: {node: '>=0.10.0'} - dev: true - /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1185,9 +1164,9 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} dev: true /ansi-regex@5.0.1: @@ -1393,6 +1372,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: true + /async-done@1.3.2: resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} engines: {node: '>= 0.10'} @@ -1521,7 +1505,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.0 + component-emitter: 1.3.1 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -1596,8 +1580,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001562 - electron-to-chromium: 1.4.585 + caniuse-lite: 1.0.30001563 + electron-to-chromium: 1.4.587 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1624,13 +1608,6 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /bufferstreams@1.1.3: - resolution: {integrity: sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==} - engines: {node: '>= 0.10.0'} - dependencies: - readable-stream: 2.3.8 - dev: true - /bump-regex@2.9.0: resolution: {integrity: sha512-o4WC1mKw/kM0zScuOxZKi243lc+/h09b41u2A7HlWbxHsEDsTTZtqDZYkQj65l24J8+9Saahn5ep+EyeqpQoCg==} engines: {node: '>= 0.12.0'} @@ -1644,7 +1621,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.0 + component-emitter: 1.3.1 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -1662,18 +1639,6 @@ packages: set-function-length: 1.1.1 dev: true - /caller-path@0.1.0: - resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==} - engines: {node: '>=0.10.0'} - dependencies: - callsites: 0.2.0 - dev: true - - /callsites@0.2.0: - resolution: {integrity: sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==} - engines: {node: '>=0.10.0'} - dev: true - /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1707,8 +1672,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001562: - resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} + /caniuse-lite@1.0.30001563: + resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==} dev: true /chalk@1.1.3: @@ -1744,6 +1709,10 @@ packages: engines: {node: '>=10'} dev: true + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + /chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies @@ -1770,11 +1739,6 @@ packages: engines: {node: '>=8'} dev: true - /circular-json@0.3.3: - resolution: {integrity: sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==} - deprecated: CircularJSON is in maintenance only, flatted is its successor. - dev: true - /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true @@ -1789,15 +1753,16 @@ packages: static-extend: 0.1.2 dev: true - /cli-cursor@1.0.2: - resolution: {integrity: sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==} - engines: {node: '>=0.10.0'} + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: - restore-cursor: 1.0.1 + restore-cursor: 3.1.0 dev: true - /cli-width@2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} dev: true /cliui@3.2.0: @@ -1912,8 +1877,8 @@ packages: delayed-stream: 1.0.0 dev: true - /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true /concat-map@0.0.1: @@ -1954,7 +1919,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /create-jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1963,7 +1928,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -1977,6 +1942,17 @@ packages: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -2175,14 +2151,6 @@ packages: path-type: 4.0.0 dev: true - /doctrine@1.5.0: - resolution: {integrity: sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - isarray: 1.0.0 - dev: true - /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -2219,8 +2187,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.585: - resolution: {integrity: sha512-B4yBlX0azdA3rVMxpYwLQfDpdwOgcnLCkpvSOd68iFmeedo+WYjaBJS3/W58LVD8CB2nf+o7C4K9xz1l09RkWg==} + /electron-to-chromium@1.4.587: + resolution: {integrity: sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==} dev: true /emittery@0.13.1: @@ -2228,6 +2196,10 @@ packages: engines: {node: '>=12'} dev: true + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -2275,29 +2247,6 @@ packages: es6-symbol: 3.1.3 dev: true - /es6-map@0.1.5: - resolution: {integrity: sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-iterator: 2.0.3 - es6-set: 0.1.6 - es6-symbol: 3.1.3 - event-emitter: 0.3.5 - dev: true - - /es6-set@0.1.6: - resolution: {integrity: sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==} - engines: {node: '>=0.12'} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - event-emitter: 0.3.5 - type: 2.7.2 - dev: true - /es6-symbol@3.1.3: resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: @@ -2346,12 +2295,10 @@ packages: source-map: 0.6.1 dev: true - /escope@3.6.0: - resolution: {integrity: sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==} - engines: {node: '>=0.4.0'} + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: - es6-map: 0.1.5 - es6-weak-map: 2.0.3 esrecurse: 4.3.0 estraverse: 4.3.0 dev: true @@ -2364,6 +2311,13 @@ packages: estraverse: 5.3.0 dev: true + /eslint-utils@1.4.3: + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + /eslint-utils@3.0.0(eslint@8.0.1): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} @@ -2374,6 +2328,11 @@ packages: eslint-visitor-keys: 2.1.0 dev: true + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -2384,44 +2343,48 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@2.13.1: - resolution: {integrity: sha512-29PFGeV6lLQrPaPHeCkjfgLRQPFflDiicoNZOw+c/JkaQ0Am55yUICdYZbmCiM+DSef+q7oCercimHvjNI0GAw==} - engines: {node: '>=0.10'} + /eslint@6.8.0: + resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} hasBin: true dependencies: - chalk: 1.1.3 - concat-stream: 1.6.2 - debug: 2.6.9 - doctrine: 1.5.0 - es6-map: 0.1.5 - escope: 3.6.0 - espree: 3.5.4 - estraverse: 4.3.0 + '@babel/code-frame': 7.22.13 + ajv: 6.12.6 + chalk: 2.4.2 + cross-spawn: 6.0.5 + debug: 4.3.4 + doctrine: 3.0.0 + eslint-scope: 5.1.1 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + espree: 6.2.1 + esquery: 1.5.0 esutils: 2.0.3 - file-entry-cache: 1.3.1 - glob: 7.2.3 - globals: 9.18.0 - ignore: 3.3.10 + file-entry-cache: 5.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 imurmurhash: 0.1.4 - inquirer: 0.12.0 - is-my-json-valid: 2.20.6 - is-resolvable: 1.1.0 + inquirer: 7.3.3 + is-glob: 4.0.3 js-yaml: 3.14.1 - json-stable-stringify: 1.1.0 + json-stable-stringify-without-jsonify: 1.0.1 levn: 0.3.0 lodash: 4.17.21 + minimatch: 3.1.2 mkdirp: 0.5.6 + natural-compare: 1.4.0 optionator: 0.8.3 - path-is-absolute: 1.0.1 - path-is-inside: 1.0.2 - pluralize: 1.2.1 - progress: 1.1.8 - require-uncached: 1.0.3 - shelljs: 0.6.1 - strip-json-comments: 1.0.4 - table: 3.8.3 + progress: 2.0.3 + regexpp: 2.0.1 + semver: 6.3.1 + strip-ansi: 5.2.0 + strip-json-comments: 3.1.1 + table: 5.4.6 text-table: 0.2.0 - user-home: 2.0.0 + v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color dev: true @@ -2473,12 +2436,13 @@ packages: - supports-color dev: true - /espree@3.5.4: - resolution: {integrity: sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==} - engines: {node: '>=0.10.0'} + /espree@6.2.1: + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} dependencies: - acorn: 5.7.4 - acorn-jsx: 3.0.1 + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 dev: true /espree@9.6.1: @@ -2525,13 +2489,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - dev: true - /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2547,11 +2504,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /exit-hook@1.1.1: - resolution: {integrity: sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==} - engines: {node: '>=0.10.0'} - dev: true - /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -2636,6 +2588,15 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + /extglob@0.3.2: resolution: {integrity: sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==} engines: {node: '>=0.10.0'} @@ -2708,20 +2669,18 @@ packages: bser: 2.1.1 dev: true - /figures@1.7.0: - resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} - engines: {node: '>=0.10.0'} + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - object-assign: 4.1.1 dev: true - /file-entry-cache@1.3.1: - resolution: {integrity: sha512-JyVk7P0Hvw6uEAwH4Y0j+rZMvaMWvLBYRmRGAF2S6jKTycf0mMDcC7d21Y2KyrKJk3XI8YghSsk5KmRdbvg0VQ==} - engines: {node: '>=0.10.0'} + /file-entry-cache@5.0.1: + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} dependencies: - flat-cache: 1.3.4 - object-assign: 4.1.1 + flat-cache: 2.0.1 dev: true /file-entry-cache@6.0.1: @@ -2837,14 +2796,13 @@ packages: engines: {node: '>= 0.10'} dev: true - /flat-cache@1.3.4: - resolution: {integrity: sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==} - engines: {node: '>=0.10.0'} + /flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} dependencies: - circular-json: 0.3.3 - graceful-fs: 4.2.11 + flatted: 2.0.2 rimraf: 2.6.3 - write: 0.2.1 + write: 1.0.3 dev: true /flat-cache@3.2.0: @@ -2856,6 +2814,10 @@ packages: rimraf: 3.0.2 dev: true + /flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + dev: true + /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true @@ -2946,18 +2908,6 @@ packages: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true - /generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} - dependencies: - is-property: 1.0.2 - dev: true - - /generate-object-property@1.2.0: - resolution: {integrity: sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==} - dependencies: - is-property: 1.0.2 - dev: true - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3127,6 +3077,13 @@ packages: engines: {node: '>=4'} dev: true + /globals@12.4.0: + resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.8.1 + dev: true + /globals@13.23.0: resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} @@ -3134,11 +3091,6 @@ packages: type-fest: 0.20.2 dev: true - /globals@9.18.0: - resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} - engines: {node: '>=0.10.0'} - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3220,13 +3172,12 @@ packages: - supports-color dev: true - /gulp-eslint@2.0.0: - resolution: {integrity: sha512-sxSpbiQZQwemG0E0kgNb9SNW8kjmr6IBfAtTsqNU+/cGAFOqKiowNqwJBdcowas4YEFp2ltcQ2h+3nFTbb2tGg==} + /gulp-eslint@6.0.0: + resolution: {integrity: sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig==} dependencies: - bufferstreams: 1.1.3 - eslint: 2.13.1 - gulp-util: 3.0.8 - object-assign: 4.1.1 + eslint: 6.8.0 + fancy-log: 1.3.3 + plugin-error: 1.0.1 transitivePeerDependencies: - supports-color dev: true @@ -3264,7 +3215,7 @@ packages: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.1 '@types/vinyl': 2.0.10 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -3467,15 +3418,24 @@ packages: engines: {node: '>=10.17.0'} dev: true - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + /husky@8.0.0: + resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /ignore@3.3.10: - resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 dev: true /ignore@4.0.6: @@ -3532,21 +3492,22 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /inquirer@0.12.0: - resolution: {integrity: sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==} + /inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} dependencies: - ansi-escapes: 1.4.0 - ansi-regex: 2.1.1 - chalk: 1.1.3 - cli-cursor: 1.0.2 - cli-width: 2.2.1 - figures: 1.7.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 lodash: 4.17.21 - readline2: 1.0.1 - run-async: 0.1.0 - rx-lite: 3.1.2 - string-width: 1.0.2 - strip-ansi: 3.0.1 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 through: 2.3.8 dev: true @@ -3701,20 +3662,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-my-ip-valid@1.0.1: - resolution: {integrity: sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==} - dev: true - - /is-my-json-valid@2.20.6: - resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==} - dependencies: - generate-function: 2.3.1 - generate-object-property: 1.2.0 - is-my-ip-valid: 1.0.1 - jsonpointer: 5.0.1 - xtend: 4.0.2 - dev: true - /is-negated-glob@1.0.0: resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} engines: {node: '>=0.10.0'} @@ -3770,10 +3717,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-property@1.0.2: - resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - dev: true - /is-relative@1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} @@ -3781,10 +3724,6 @@ packages: is-unc-path: 1.0.0 dev: true - /is-resolvable@1.1.0: - resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} - dev: true - /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -3829,10 +3768,6 @@ packages: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -3933,7 +3868,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3954,7 +3889,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3968,10 +3903,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3982,7 +3917,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3997,7 +3932,7 @@ packages: '@babel/core': 7.23.3 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 @@ -4017,7 +3952,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.9.1)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4064,7 +3999,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4081,7 +4016,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4097,7 +4032,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.9.0 + '@types/node': 20.9.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4148,7 +4083,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-util: 29.7.0 dev: true @@ -4203,7 +4138,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4234,7 +4169,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4286,7 +4221,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4311,7 +4246,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.0 + '@types/node': 20.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4323,13 +4258,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4342,7 +4277,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -4432,31 +4367,12 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.1.0: - resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true - /jsonify@0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - dev: true - - /jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - dev: true - /just-debounce@1.1.0: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} dev: true @@ -4923,8 +4839,8 @@ packages: engines: {node: '>= 0.10'} dev: true - /mute-stream@0.0.5: - resolution: {integrity: sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true /nan@2.18.0: @@ -4959,6 +4875,10 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true @@ -5099,11 +5019,6 @@ packages: wrappy: 1.0.2 dev: true - /onetime@1.1.0: - resolution: {integrity: sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==} - engines: {node: '>=0.10.0'} - dev: true - /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -5148,11 +5063,6 @@ packages: readable-stream: 2.3.8 dev: true - /os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} - dev: true - /os-locale@1.4.0: resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} engines: {node: '>=0.10.0'} @@ -5160,6 +5070,11 @@ packages: lcid: 1.0.0 dev: true + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5271,8 +5186,9 @@ packages: engines: {node: '>=0.10.0'} dev: true - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} dev: true /path-key@3.1.1: @@ -5388,10 +5304,6 @@ packages: dateformat: 1.0.12 dev: true - /pluralize@1.2.1: - resolution: {integrity: sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==} - dev: true - /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -5430,11 +5342,6 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /progress@1.1.8: - resolution: {integrity: sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==} - engines: {node: '>=0.4.0'} - dev: true - /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -5564,14 +5471,6 @@ packages: - supports-color dev: true - /readline2@1.0.1: - resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - mute-stream: 0.0.5 - dev: true - /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -5602,6 +5501,11 @@ packages: safe-regex: 1.1.0 dev: true + /regexpp@2.0.1: + resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} + engines: {node: '>=6.5.0'} + dev: true + /regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -5685,14 +5589,6 @@ packages: resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} dev: true - /require-uncached@1.0.3: - resolution: {integrity: sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==} - engines: {node: '>=0.10.0'} - dependencies: - caller-path: 0.1.0 - resolve-from: 1.0.1 - dev: true - /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true @@ -5712,11 +5608,6 @@ packages: global-modules: 1.0.0 dev: true - /resolve-from@1.0.1: - resolution: {integrity: sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==} - engines: {node: '>=0.10.0'} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -5753,12 +5644,12 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@1.0.1: - resolution: {integrity: sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==} - engines: {node: '>=0.10.0'} + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: - exit-hook: 1.1.1 - onetime: 1.1.0 + onetime: 5.1.2 + signal-exit: 3.0.7 dev: true /ret@0.1.15: @@ -5785,10 +5676,9 @@ packages: glob: 7.2.3 dev: true - /run-async@0.1.0: - resolution: {integrity: sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==} - dependencies: - once: 1.4.0 + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} dev: true /run-parallel@1.2.0: @@ -5797,8 +5687,11 @@ packages: queue-microtask: 1.2.3 dev: true - /rx-lite@3.1.2: - resolution: {integrity: sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==} + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 dev: true /safe-buffer@5.1.2: @@ -5875,6 +5768,13 @@ packages: split-string: 3.1.0 dev: true + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -5882,17 +5782,16 @@ packages: shebang-regex: 3.0.0 dev: true + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /shelljs@0.6.1: - resolution: {integrity: sha512-B1vvzXQlJ77SURr3SIUQ/afh+LwecDKAVKE1wqkBlr2PCHoZDaF6MFD+YX1u9ddQjR4z2CKx1tdqvS2Xfs5h1A==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: true - /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -5906,9 +5805,13 @@ packages: engines: {node: '>=8'} dev: true - /slice-ansi@0.0.4: - resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==} - engines: {node: '>=0.10.0'} + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 dev: true /snapdragon-node@2.1.1: @@ -6063,12 +5966,13 @@ packages: strip-ansi: 3.0.1 dev: true - /string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} dependencies: + emoji-regex: 7.0.3 is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 + strip-ansi: 5.2.0 dev: true /string-width@4.2.3: @@ -6103,11 +6007,11 @@ packages: ansi-regex: 2.1.1 dev: true - /strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} dependencies: - ansi-regex: 3.0.1 + ansi-regex: 4.1.1 dev: true /strip-ansi@6.0.1: @@ -6165,12 +6069,6 @@ packages: get-stdin: 4.0.1 dev: true - /strip-json-comments@1.0.4: - resolution: {integrity: sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==} - engines: {node: '>=0.8.0'} - hasBin: true - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -6222,15 +6120,14 @@ packages: resolution: {integrity: sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==} dev: true - /table@3.8.3: - resolution: {integrity: sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==} + /table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} dependencies: - ajv: 4.11.8 - ajv-keywords: 1.5.1(ajv@4.11.8) - chalk: 1.1.3 + ajv: 6.12.6 lodash: 4.17.21 - slice-ansi: 0.0.4 - string-width: 2.1.1 + slice-ansi: 2.1.0 + string-width: 3.1.0 dev: true /ternary-stream@2.1.1: @@ -6318,6 +6215,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true @@ -6436,7 +6340,7 @@ packages: '@babel/core': 7.23.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -6446,7 +6350,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.9.0)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.9.1)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6465,7 +6369,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.0 + '@types/node': 20.9.1 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -6477,6 +6381,10 @@ packages: yn: 3.1.1 dev: true + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + /type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} @@ -6506,6 +6414,11 @@ packages: engines: {node: '>=10'} dev: true + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + /type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} dev: true @@ -6623,13 +6536,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /user-home@2.0.0: - resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} - engines: {node: '>=0.10.0'} - dependencies: - os-homedir: 1.0.2 - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -6867,9 +6773,9 @@ packages: signal-exit: 3.0.7 dev: true - /write@0.2.1: - resolution: {integrity: sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==} - engines: {node: '>=0.10.0'} + /write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} dependencies: mkdirp: 0.5.6 dev: true @@ -7000,8 +6906,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/06b1e8cd6c776d4a2dd82c6cb4d96a3aa27b818d} + github.com/highcharts/highcharts/12a5a01b32a09882151b806e86021fe269b71019: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/12a5a01b32a09882151b806e86021fe269b71019} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/ts/multicolor_series.ts b/ts/multicolor_series.ts index a00d171..34b9d35 100644 --- a/ts/multicolor_series.ts +++ b/ts/multicolor_series.ts @@ -443,6 +443,7 @@ class ColoredlineSeries extends LineSeries { points: points.slice(lastColor, j + 1), color: points[j - 1].segmentColor ?? '' }); + lastColor = j; } }); @@ -502,6 +503,7 @@ class ColoredlineSeries extends LineSeries { previousColor ) ?? '' }); + lastColor = j; } } else if (j === pointsLength - 1) { From 7b51b108845723bb2b37bfa12da4731632ca1fe2 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 21 Nov 2023 11:38:30 +0100 Subject: [PATCH 15/66] Refactored core code, ESLint & Husky configs, types structure. --- .eslintrc.json | 2 +- custom-module-demo.html | 2 +- ...ticolor_series.js => multicolor-series.js} | 82 +++--- gulpfile.js | 7 +- package.json | 8 +- pnpm-lock.yaml | 243 ++++++++++-------- .../coloredarea-series.test.ts.snap | 12 +- .../coloredline-series.test.ts.snap | 24 +- .../jest-snapshot/coloredarea-series.test.ts | 29 ++- .../jest-snapshot/coloredline-series.test.ts | 32 ++- tests/jest-snapshot/helper.ts | 36 ++- ts/HighchartsConfig.d.ts | 148 +++++++++++ ...lticolor_series.ts => MulticolorSeries.ts} | 199 +++++++------- ts/config/highcharts-config.d.ts | 147 ----------- tsconfig.json | 14 +- typeguards.ts | 2 +- types.d.ts | 103 +++----- 17 files changed, 546 insertions(+), 544 deletions(-) rename dist/{multicolor_series.js => multicolor-series.js} (87%) create mode 100644 ts/HighchartsConfig.d.ts rename ts/{multicolor_series.ts => MulticolorSeries.ts} (83%) delete mode 100644 ts/config/highcharts-config.d.ts diff --git a/.eslintrc.json b/.eslintrc.json index 89fb555..1cd0ec8 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,7 +8,7 @@ "parserOptions": { "project": "./tsconfig.json" }, - "ignorePatterns": ["types.d.ts"], + "ignorePatterns": ["dist"], "rules": { "camelcase": [ 2, diff --git a/custom-module-demo.html b/custom-module-demo.html index 4335403..fd0e5db 100644 --- a/custom-module-demo.html +++ b/custom-module-demo.html @@ -5,7 +5,7 @@ Multicolor series - +
diff --git a/dist/multicolor_series.js b/dist/multicolor-series.js similarity index 87% rename from dist/multicolor_series.js rename to dist/multicolor-series.js index 9af852e..9f727d3 100644 --- a/dist/multicolor_series.js +++ b/dist/multicolor-series.js @@ -22,12 +22,12 @@ _registerModule( _modules, 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js']], - (SeriesRegistry,Utilities,LineSeries) => { + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js'],_modules['Series/Area/AreaSeries.js']], + (SeriesRegistry,Utilities,LineSeries,AreaSeries) => { -const { area: AreaSeries } = SeriesRegistry.seriesTypes; + const { extend, isArray } = Utilities; /** * @@ -35,22 +35,6 @@ const { extend, isArray } = Utilities; * */ const isSVGPathSegment = (value) => true; -/** - * - * Functions - * - */ -function getPath(graphPaths) { - let segmentPath = []; - if (graphPaths) { - graphPaths.forEach(function (el) { - if (isArray(segmentPath) && isArray(el[0])) { - segmentPath = segmentPath.concat(el[0]); - } - }); - } - return segmentPath; -} /** * * @private @@ -76,11 +60,22 @@ class ColoredlineSeries extends LineSeries { * Functions * */ + getPath(graphPaths) { + let segmentPath = []; + if (graphPaths) { + graphPaths.forEach(function (el) { + if (isArray(el[0])) { + segmentPath = segmentPath.concat(el[0]); + } + }); + } + return segmentPath; + } getSegmentPath(segment) { const series = this, segmentPath = [], step = series.options.step; // Build the segment line segment.forEach(function (point, i) { - const plotX = point.plotX, plotY = point.plotY; + const plotX = Number(point.plotX), plotY = Number(point.plotY); let lastPoint; if (series.getPointSpline) { // Generate the spline as defined in the SplineSeries object @@ -92,25 +87,19 @@ class ColoredlineSeries extends LineSeries { // Step line? if (step && i) { lastPoint = segment[i - 1]; - if (plotX && - plotY && - (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotX) && - (lastPoint === null || lastPoint === void 0 ? void 0 : lastPoint.plotY)) { - if (step === 'right') { - segmentPath.push(lastPoint.plotX, plotY, 'L'); - } - else if (step === 'center') { - segmentPath.push((lastPoint.plotX + plotX) / 2, lastPoint.plotY, 'L', (lastPoint.plotX + plotX) / 2, plotY, 'L'); - } - else { - segmentPath.push(plotX, lastPoint.plotY, 'L'); - } + const lastPointPlotX = Number(lastPoint.plotX); + if (step === 'right') { + segmentPath.push(lastPoint.plotX, plotY, 'L'); + } + else if (step === 'center') { + segmentPath.push((lastPointPlotX + plotX) / 2, lastPoint.plotY, 'L', (lastPointPlotX + plotX) / 2, plotY, 'L'); + } + else { + segmentPath.push(plotX, lastPoint.plotY, 'L'); } } // Normal line to next point - if ((point === null || point === void 0 ? void 0 : point.plotX) && point.plotY) { - segmentPath.push(point.plotX, point.plotY); - } + segmentPath.push(plotX, plotY); } }); return segmentPath; @@ -167,7 +156,8 @@ class ColoredlineSeries extends LineSeries { } drawTracker() { var _a, _b, _c, _d, _e; - const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : getPath(series.graphPaths), trackerPathLength = isArray(trackerPath) && trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002'; + const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : + this.getPath(series.graphPaths), trackerPathLength = trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002)'; let singlePoint, i; const onMouseOver = function () { if (chart.hoverSeries !== series) { @@ -198,9 +188,8 @@ class ColoredlineSeries extends LineSeries { // Handle single points for (i = 0; i < singlePoints.length; i++) { singlePoint = singlePoints[i]; - if (singlePoint.plotX && singlePoint.plotY) { - trackerPath.push('M', singlePoint.plotX - snap, singlePoint.plotY, 'L', singlePoint.plotX + snap, singlePoint.plotY); - } + const singlePointPlotX = Number(singlePoint.plotX); + trackerPath.push('M', singlePointPlotX - snap, singlePoint.plotY, 'L', singlePointPlotX + snap, singlePoint.plotY); } // Draw the tracker if (isSVGPathSegment(trackerPath)) { @@ -242,7 +231,7 @@ class ColoredlineSeries extends LineSeries { } } setState(state) { - var _a, _b, _c; + var _a, _b, _c, _d; const series = this, options = series.options, graphs = series.graphs, stateOptions = options.states; let lineWidth = (_a = options.lineWidth) !== null && _a !== void 0 ? _a : 0; state = state || ''; @@ -250,11 +239,12 @@ class ColoredlineSeries extends LineSeries { series.state = state; if (stateOptions && state && - ((_b = stateOptions[state]) === null || _b === void 0 ? void 0 : _b.enabled) === false) { + (((_b = stateOptions.hover) === null || _b === void 0 ? void 0 : _b.enabled) === false || + ((_c = stateOptions.inactive) === null || _c === void 0 ? void 0 : _c.enabled) === false)) { return; } if (stateOptions && state) { - lineWidth = ((_c = stateOptions[state]) === null || _c === void 0 ? void 0 : _c.lineWidth) || lineWidth + 1; + lineWidth = ((_d = stateOptions[state]) === null || _d === void 0 ? void 0 : _d.lineWidth) || lineWidth + 1; } if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop @@ -378,9 +368,7 @@ class ColoredlineSeries extends LineSeries { series.segments.forEach(function (segment) { segmentPath = series.getSegmentPath(segment.points); // Add the segment to the graph, or a single point for tracking - if (graphPaths && - segment.points.length > 1 && - isSVGPathSegment(segmentPath)) { + if (segment.points.length > 1) { graphPaths.push([segmentPath, segment.color]); } else { @@ -425,7 +413,7 @@ class ColoredlineSeries extends LineSeries { } // Draw the graphs let graphs = series.graphs; - if (graphs.length > 0) { // Cancel running animations, #459 + if (graphs) { // Cancel running animations, #459 // do we have animation graphPaths.forEach(function (segment, j) { // Update color and path diff --git a/gulpfile.js b/gulpfile.js index 46b6f15..aa50412 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -13,6 +13,7 @@ const gulp = require('gulp'), dateformat = require('dateformat'), gulpTypescript = require("gulp-typescript"), through2 = require('through2'), + rename = require('gulp-rename'), tsProject = gulpTypescript.createProject("tsconfig.json"); let files = ['./js/multicolor_series.js', 'js/demo.js'], @@ -34,13 +35,15 @@ gulp.task("compile", () => { return tsProject .src() .pipe(tsProject()) - .js.pipe(through2.obj(async function (file, _encoding, callback) { + .js + .pipe(rename('multicolor-series.js')) + .pipe(through2.obj(async function (file, _encoding, callback) { if (file.isBuffer()) { let fileContent = file.contents.toString('utf8'); const removedSpecifiers = [], removedPaths = [], importPathReg = /import (.+?) from ["'](.+?)["'];/g, - formattedPathReg = /^highcharts\/ts\//; + formattedPathReg = /^highcharts-github\/ts\//; fileContent = fileContent.replace(importPathReg, (_match, specifier, path) => { removedSpecifiers.push(specifier); diff --git a/package.json b/package.json index 4b0db09..f929049 100644 --- a/package.json +++ b/package.json @@ -38,19 +38,21 @@ "gulp-eslint": "^6.0.0", "gulp-git": "^2.10.0", "gulp-if": "^2.0.0", + "gulp-rename": "^2.0.0", "gulp-replace": "^1.1.4", "gulp-sourcemaps": "1.6.0", "gulp-typescript": "^6.0.0-alpha.1", + "husky": "^8.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "through2": "^4.0.2", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "typescript": "^5.2.2", - "yargs": "^4.7.0", - "husky": "^8.0.0" + "yargs": "^4.7.0" }, "dependencies": { - "highcharts": "github:highcharts/highcharts" + "highcharts": "^11.2.0", + "highcharts-github": "github:highcharts/highcharts" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12bfa9e..3c495e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,11 @@ settings: dependencies: highcharts: + specifier: ^11.2.0 + version: 11.2.0 + highcharts-github: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/12a5a01b32a09882151b806e86021fe269b71019 + version: github.com/highcharts/highcharts/011afc26054380975fd18629faec3cd342dfdc30 devDependencies: '@types/jest': @@ -46,6 +49,9 @@ devDependencies: gulp-if: specifier: ^2.0.0 version: 2.0.0 + gulp-rename: + specifier: ^2.0.0 + version: 2.0.0 gulp-replace: specifier: ^1.1.4 version: 1.1.4 @@ -60,7 +66,7 @@ devDependencies: version: 8.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -72,7 +78,7 @@ devDependencies: version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.9.1)(typescript@5.2.2) + version: 10.9.1(@types/node@20.9.3)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -95,11 +101,11 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true @@ -113,15 +119,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 + '@babel/helpers': 7.23.4 + '@babel/parser': 7.23.4 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -131,11 +137,11 @@ packages: - supports-color dev: true - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -162,21 +168,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): @@ -202,18 +208,18 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} dev: true @@ -227,19 +233,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -247,12 +253,12 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): @@ -388,34 +394,34 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 dev: true - /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + /@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + /@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -499,7 +505,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -520,14 +526,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -555,7 +561,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-mock: 29.7.0 dev: true @@ -582,7 +588,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -615,7 +621,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -703,8 +709,8 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.9.1 - '@types/yargs': 17.0.31 + '@types/node': 20.9.3 + '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -803,11 +809,11 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@types/babel__core@7.20.4: - resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.4 @@ -816,20 +822,20 @@ packages: /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@types/expect@1.20.4: @@ -839,7 +845,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.9.1 + '@types/node': 20.9.3 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -868,13 +874,13 @@ packages: /@types/jquery@3.5.6: resolution: {integrity: sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==} dependencies: - '@types/sizzle': 2.3.6 + '@types/sizzle': 2.3.7 dev: true /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.9.1 + '@types/node': 20.9.3 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -883,18 +889,18 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.9.1: - resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==} + /@types/node@20.9.3: + resolution: {integrity: sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==} dependencies: undici-types: 5.26.5 dev: true - /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@types/sizzle@2.3.6: - resolution: {integrity: sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw==} + /@types/sizzle@2.3.7: + resolution: {integrity: sha512-sU5MNKvSFdbT97qLSabU6jxceY9BfYQe9uF+b8E1rdTecpq9ROkkKoiHlblUlhgfaz9bdCByWjAI40Y3mHf1iQ==} dev: true /@types/stack-utils@2.0.3: @@ -909,19 +915,19 @@ packages: resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} dev: true - /@types/vinyl@2.0.10: - resolution: {integrity: sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ==} + /@types/vinyl@2.0.11: + resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.9.1 + '@types/node': 20.9.3 dev: true /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@17.0.31: - resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 dev: true @@ -1038,7 +1044,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.0.1) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) @@ -1416,7 +1422,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.4 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 @@ -1444,8 +1450,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 - '@types/babel__core': 7.20.4 + '@babel/types': 7.23.4 + '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.4 dev: true @@ -1581,7 +1587,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001563 - electron-to-chromium: 1.4.587 + electron-to-chromium: 1.4.589 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1919,7 +1925,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /create-jest@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1928,7 +1934,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2187,8 +2193,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.587: - resolution: {integrity: sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==} + /electron-to-chromium@1.4.589: + resolution: {integrity: sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==} dev: true /emittery@0.13.1: @@ -2348,7 +2354,7 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} hasBin: true dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 @@ -3211,12 +3217,17 @@ packages: minimatch: 3.1.2 dev: true + /gulp-rename@2.0.0: + resolution: {integrity: sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==} + engines: {node: '>=4'} + dev: true + /gulp-replace@1.1.4: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.9.1 - '@types/vinyl': 2.0.10 + '@types/node': 20.9.3 + '@types/vinyl': 2.0.11 istextorbinary: 3.3.0 replacestream: 4.0.3 yargs-parser: 21.1.1 @@ -3370,6 +3381,10 @@ packages: function-bind: 1.1.2 dev: true + /highcharts@11.2.0: + resolution: {integrity: sha512-9i650YK7ZBA1Mgtr3avMkLVCAI45RQvYnwi+eHsdFSaBGuQN6BHoa4j4lMkSJLv0V4LISTK1z7J7G82Lzd7zwg==} + dev: false + /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -3794,7 +3809,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.23.3 - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -3807,7 +3822,7 @@ packages: engines: {node: '>=10'} dependencies: '@babel/core': 7.23.3 - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 @@ -3868,7 +3883,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3889,7 +3904,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3903,10 +3918,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3917,7 +3932,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3932,7 +3947,7 @@ packages: '@babel/core': 7.23.3 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 @@ -3952,7 +3967,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.9.1)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.9.3)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -3999,7 +4014,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4016,7 +4031,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4032,7 +4047,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.9.1 + '@types/node': 20.9.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4067,7 +4082,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -4083,7 +4098,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-util: 29.7.0 dev: true @@ -4138,7 +4153,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4169,7 +4184,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4193,10 +4208,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.3 - '@babel/generator': 7.23.3 + '@babel/generator': 7.23.4 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -4221,7 +4236,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4246,7 +4261,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.1 + '@types/node': 20.9.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4258,13 +4273,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.9.1 + '@types/node': 20.9.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.9.1)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4277,7 +4292,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5138,7 +5153,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -6340,7 +6355,7 @@ packages: '@babel/core': 7.23.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.9.1)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -6350,7 +6365,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.9.1)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.9.3)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6369,7 +6384,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.1 + '@types/node': 20.9.3 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -6906,8 +6921,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/12a5a01b32a09882151b806e86021fe269b71019: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/12a5a01b32a09882151b806e86021fe269b71019} + github.com/highcharts/highcharts/011afc26054380975fd18629faec3cd342dfdc30: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/011afc26054380975fd18629faec3cd342dfdc30} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap index 596cf19..23d051c 100644 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -2,11 +2,11 @@ exports[`Refactoring regression tests - series coloredarea. Graph element tests. The graph paths should match the snapshot. 1`] = ` [ - "", - "", - "", - "", - "", + "", + "", + "", + "", + "", ] `; @@ -146,7 +146,7 @@ exports[`Refactoring regression tests - series coloredarea. The tracker element fill="none" stroke="rgba(192,192,192,0.002)" stroke-linejoin="round" - stroke-width="21" + stroke-width="22" visibility="visible" /> `; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index 1617ef6..923e996 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -2,11 +2,21 @@ exports[`Refactoring regression tests - series coloredline. Graph element tests. The graph paths should match the snapshot. 1`] = ` [ - "", - "", - "", - "", - "", + "", + "", + "", + "", + "", +] +`; + +exports[`Refactoring regression tests - series coloredline. Graph element tests. The graphs paths should match the snapshot. 1`] = ` +[ + "", + "", + "", + "", + "", ] `; @@ -134,7 +144,7 @@ exports[`Refactoring regression tests - series coloredline. The series data shou "y": 70, }, ], - "seriesType": "line", + "seriesType": "coloredline", } `; @@ -146,7 +156,7 @@ exports[`Refactoring regression tests - series coloredline. The tracker element fill="none" stroke="rgba(192,192,192,0.002)" stroke-linejoin="round" - stroke-width="21" + stroke-width="2" visibility="visible" /> `; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 82fee5e..5ca1304 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -1,11 +1,11 @@ -import Highcharts from 'highcharts/ts/masters/highcharts.src'; -import multicolorModule from './../../js/multicolor_series'; +import Highcharts from 'highcharts'; +import multicolorModule from '../../js/multicolor_series'; import { isSeriesColored } from './../../typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); -describe('Refactoring regression tests - series coloredarea.', () => { +describe('Refactoring regression tests - series coloredarea.', (): void => { const containerElement = document.createElement('div'); const chart = Highcharts.chart(containerElement, { chart: { @@ -71,27 +71,32 @@ describe('Refactoring regression tests - series coloredarea.', () => { const graph = series.graph; - describe('Graph element tests.', () => { - test('The graph element should be an five elements array.', () => { - expect(graph.length).toEqual(5); - }); + describe('Graph element tests.', (): void => { + test( + 'The graph element should be an five elements array.', + (): void => { + expect(graph.length).toEqual(5); + } + ); - test('The graph paths should match the snapshot.', () => { - const paths = graph.map((graph) => graph.element.outerHTML); + test('The graph paths should match the snapshot.', (): void => { + const paths = graph.map((graph): string => + graph.element.outerHTML + ); expect(paths).toMatchSnapshot(); }); }); - test('The tracker element should match the snapshot.', () => { + test('The tracker element should match the snapshot.', (): void => { expect(series.tracker.element).toMatchSnapshot(); }); - test('The series data should match the snapshot.', () => { + test('The series data should match the snapshot.', (): void => { const formattedSeries = generateFormattedSeries(series, series.data); expect(formattedSeries).toMatchSnapshot(); }); - test('The segments data should match the snapshot.', () => { + test('The segments data should match the snapshot.', (): void => { const formattedSegments = generateFormattedSegments(series.segments); expect(formattedSegments).toMatchSnapshot(); }); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 3041497..98b4a8c 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -1,11 +1,11 @@ -import Highcharts from 'highcharts/ts/masters/highcharts.src'; -import multicolorModule from './../../js/multicolor_series'; +import Highcharts from 'highcharts'; +import multicolorModule from '../../dist/multicolor-series'; import { isSeriesColored } from './../../typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; multicolorModule(Highcharts); -describe('Refactoring regression tests - series coloredline.', () => { +describe('Refactoring regression tests - series coloredline.', (): void => { const containerElement = document.createElement('div'); const chart = Highcharts.chart(containerElement, { chart: { @@ -69,29 +69,35 @@ describe('Refactoring regression tests - series coloredline.', () => { throw Error('Series type should be coloredline.'); } - const graph = series.graph; + // TO DO: change to graphs once refactored the coloredarea series. + const graphs = series.graphs; - describe('Graph element tests.', () => { - test('The graph element should be an five elements array.', () => { - expect(graph.length).toEqual(5); - }); + describe('Graph element tests.', (): void => { + test( + 'The graphs element should be an five elements array.', + (): void => { + expect(graphs.length).toEqual(5); + } + ); - test('The graph paths should match the snapshot.', () => { - const paths = graph.map((graph) => graph.element.outerHTML); + test('The graphs paths should match the snapshot.', (): void => { + const paths = graphs.map((graph): string => + graph.element.outerHTML + ); expect(paths).toMatchSnapshot(); }); }); - test('The tracker element should match the snapshot.', () => { + test('The tracker element should match the snapshot.', (): void => { expect(series.tracker.element).toMatchSnapshot(); }); - test('The series data should match the snapshot.', () => { + test('The series data should match the snapshot.', (): void => { const formattedSeries = generateFormattedSeries(series, series.data); expect(formattedSeries).toMatchSnapshot(); }); - test('The segments data should match the snapshot.', () => { + test('The segments data should match the snapshot.', (): void => { const formattedSegments = generateFormattedSegments(series.segments); expect(formattedSegments).toMatchSnapshot(); }); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts index d0956df..213142a 100644 --- a/tests/jest-snapshot/helper.ts +++ b/tests/jest-snapshot/helper.ts @@ -1,22 +1,42 @@ -import { Series } from "highcharts"; -import { SeriesColoredPoint, SeriesColoredSegment } from "types"; +import { Point, Series } from "highcharts"; +import { SeriesColoredPoint, SeriesColoredSegment } from "../../types"; + +type SeriesColoredDefaultPoint = SeriesColoredPoint; + +type FormattedSeries = { + seriesType: string; + data: FormattedSeriesPoints[]; +}; + +type FormattedSegments = { + color: string; + points: FormattedSeriesPoints[]; +}; + +interface FormattedSeriesPoints { + segmentColor: string | undefined; + x: number; + y: number | undefined; +} export const generateFormattedSeries = ( series: Series, - data: SeriesColoredPoint[] -) => ({ + data: SeriesColoredDefaultPoint[] +): FormattedSeries => ({ seriesType: series.type, - data: data.map((point) => ({ + data: data.map((point): FormattedSeriesPoints => ({ segmentColor: point?.segmentColor, x: point.x, y: point.y })) }); -export const generateFormattedSegments = (segments: SeriesColoredSegment[]) => - segments.map((segment) => ({ +export const generateFormattedSegments = ( + segments: SeriesColoredSegment[] +): FormattedSegments[] => + segments.map((segment): FormattedSegments => ({ color: segment.color, - points: segment.points.map((point) => ({ + points: segment.points.map((point): FormattedSeriesPoints => ({ segmentColor: point?.segmentColor, x: point.x, y: point.y diff --git a/ts/HighchartsConfig.d.ts b/ts/HighchartsConfig.d.ts new file mode 100644 index 0000000..007b4fb --- /dev/null +++ b/ts/HighchartsConfig.d.ts @@ -0,0 +1,148 @@ +import 'highcharts-github/ts/masters/highcharts.src'; +import 'highcharts-github/ts/masters/highstock.src'; +import 'highcharts-github/ts/masters/highmaps.src'; +import 'highcharts-github/ts/masters/highcharts-3d.src'; +import 'highcharts-github/ts/masters/highcharts-gantt.src'; +import 'highcharts-github/ts/masters/highcharts-more.src'; + +import 'highcharts-github/ts/masters/modules/accessibility.src'; +import 'highcharts-github/ts/masters/modules/annotations-advanced.src'; +import 'highcharts-github/ts/masters/modules/annotations.src'; +import 'highcharts-github/ts/masters/modules/arc-diagram.src'; +import 'highcharts-github/ts/masters/modules/arrow-symbols.src'; +import 'highcharts-github/ts/masters/modules/boost-canvas.src'; +import 'highcharts-github/ts/masters/modules/boost.src'; +import 'highcharts-github/ts/masters/modules/broken-axis.src'; +import 'highcharts-github/ts/masters/modules/bullet.src'; +import 'highcharts-github/ts/masters/modules/coloraxis.src'; +import 'highcharts-github/ts/masters/modules/current-date-indicator.src'; +import 'highcharts-github/ts/masters/modules/cylinder.src'; +import 'highcharts-github/ts/masters/modules/data-tools.src'; +import 'highcharts-github/ts/masters/modules/data.src'; +import 'highcharts-github/ts/masters/modules/datagrouping.src'; +import 'highcharts-github/ts/masters/modules/debugger.src'; +import 'highcharts-github/ts/masters/modules/dependency-wheel.src'; +import 'highcharts-github/ts/masters/modules/dotplot.src'; +import 'highcharts-github/ts/masters/modules/drag-panes.src'; +import 'highcharts-github/ts/masters/modules/draggable-points.src'; +import 'highcharts-github/ts/masters/modules/drilldown.src'; +import 'highcharts-github/ts/masters/modules/dumbbell.src'; +import 'highcharts-github/ts/masters/modules/export-data.src'; +import 'highcharts-github/ts/masters/modules/exporting.src'; +import 'highcharts-github/ts/masters/modules/flowmap.src'; +import 'highcharts-github/ts/masters/modules/full-screen.src'; +import 'highcharts-github/ts/masters/modules/funnel.src'; +import 'highcharts-github/ts/masters/modules/funnel3d.src'; +import 'highcharts-github/ts/masters/modules/gantt.src'; +import 'highcharts-github/ts/masters/modules/geoheatmap.src'; +import 'highcharts-github/ts/masters/modules/grid-axis.src'; +import 'highcharts-github/ts/masters/modules/heatmap.src'; +import 'highcharts-github/ts/masters/modules/heikinashi.src'; +import 'highcharts-github/ts/masters/modules/histogram-bellcurve.src'; +import 'highcharts-github/ts/masters/modules/hollowcandlestick.src'; +import 'highcharts-github/ts/masters/modules/item-series.src'; +import 'highcharts-github/ts/masters/modules/lollipop.src'; +import 'highcharts-github/ts/masters/modules/map.src'; +import 'highcharts-github/ts/masters/modules/marker-clusters.src'; +import 'highcharts-github/ts/masters/modules/mouse-wheel-zoom.src'; +import 'highcharts-github/ts/masters/modules/networkgraph.src'; +import 'highcharts-github/ts/masters/modules/no-data-to-display.src'; + +// eslint-disable-next-line max-len +import 'highcharts-github/ts/Extensions/OfflineExporting/OfflineExportingVendor'; + +import 'highcharts-github/ts/masters/modules/offline-exporting.src'; +import 'highcharts-github/ts/masters/modules/organization.src'; +import 'highcharts-github/ts/masters/modules/overlapping-datalabels.src'; +import 'highcharts-github/ts/masters/modules/parallel-coordinates.src'; +import 'highcharts-github/ts/masters/modules/pareto.src'; +import 'highcharts-github/ts/masters/modules/pathfinder.src'; +import 'highcharts-github/ts/masters/modules/pattern-fill.src'; +import 'highcharts-github/ts/masters/modules/pictorial.src'; +import 'highcharts-github/ts/masters/modules/price-indicator.src'; +import 'highcharts-github/ts/masters/modules/pyramid3d.src'; +import 'highcharts-github/ts/masters/modules/sankey.src'; +import 'highcharts-github/ts/masters/modules/series-label.src'; +import 'highcharts-github/ts/masters/modules/series-on-point.src'; +import 'highcharts-github/ts/masters/modules/solid-gauge.src'; +import 'highcharts-github/ts/masters/modules/sonification.src'; +import 'highcharts-github/ts/masters/modules/static-scale.src'; +import 'highcharts-github/ts/masters/modules/stock-tools.src'; +import 'highcharts-github/ts/masters/modules/stock.src'; +import 'highcharts-github/ts/masters/modules/streamgraph.src'; +import 'highcharts-github/ts/masters/modules/sunburst.src'; +import 'highcharts-github/ts/masters/modules/tiledwebmap.src'; +import 'highcharts-github/ts/masters/modules/tilemap.src'; +import 'highcharts-github/ts/masters/modules/timeline.src'; +import 'highcharts-github/ts/masters/modules/treegraph.src'; +import 'highcharts-github/ts/masters/modules/treegrid.src'; +import 'highcharts-github/ts/masters/modules/treemap.src'; +import 'highcharts-github/ts/masters/modules/variable-pie.src'; +import 'highcharts-github/ts/masters/modules/variwide.src'; +import 'highcharts-github/ts/masters/modules/vector.src'; +import 'highcharts-github/ts/masters/modules/venn.src'; +import 'highcharts-github/ts/masters/modules/windbarb.src'; +import 'highcharts-github/ts/masters/modules/wordcloud.src'; +import 'highcharts-github/ts/masters/modules/xrange.src'; + +import 'highcharts-github/ts/masters/indicators/acceleration-bands.src'; +import 'highcharts-github/ts/masters/indicators/accumulation-distribution.src'; +import 'highcharts-github/ts/masters/indicators/ao.src'; +import 'highcharts-github/ts/masters/indicators/apo.src'; +import 'highcharts-github/ts/masters/indicators/aroon-oscillator.src'; +import 'highcharts-github/ts/masters/indicators/aroon.src'; +import 'highcharts-github/ts/masters/indicators/atr.src'; +import 'highcharts-github/ts/masters/indicators/bollinger-bands.src'; +import 'highcharts-github/ts/masters/indicators/cci.src'; +import 'highcharts-github/ts/masters/indicators/chaikin.src'; +import 'highcharts-github/ts/masters/indicators/cmf.src'; +import 'highcharts-github/ts/masters/indicators/cmo.src'; +import 'highcharts-github/ts/masters/indicators/dema.src'; +import 'highcharts-github/ts/masters/indicators/disparity-index.src'; +import 'highcharts-github/ts/masters/indicators/dmi.src'; +import 'highcharts-github/ts/masters/indicators/dpo.src'; +import 'highcharts-github/ts/masters/indicators/ema.src'; +import 'highcharts-github/ts/masters/indicators/ichimoku-kinko-hyo.src'; +import 'highcharts-github/ts/masters/indicators/indicators-all.src'; +import 'highcharts-github/ts/masters/indicators/indicators.src'; +import 'highcharts-github/ts/masters/indicators/keltner-channels.src'; +import 'highcharts-github/ts/masters/indicators/klinger.src'; +import 'highcharts-github/ts/masters/indicators/macd.src'; +import 'highcharts-github/ts/masters/indicators/mfi.src'; +import 'highcharts-github/ts/masters/indicators/momentum.src'; +import 'highcharts-github/ts/masters/indicators/natr.src'; +import 'highcharts-github/ts/masters/indicators/obv.src'; +import 'highcharts-github/ts/masters/indicators/pivot-points.src'; +import 'highcharts-github/ts/masters/indicators/ppo.src'; +import 'highcharts-github/ts/masters/indicators/price-channel.src'; +import 'highcharts-github/ts/masters/indicators/price-envelopes.src'; +import 'highcharts-github/ts/masters/indicators/psar.src'; +import 'highcharts-github/ts/masters/indicators/regressions.src'; +import 'highcharts-github/ts/masters/indicators/roc.src'; +import 'highcharts-github/ts/masters/indicators/rsi.src'; +import 'highcharts-github/ts/masters/indicators/slow-stochastic.src'; +import 'highcharts-github/ts/masters/indicators/stochastic.src'; +import 'highcharts-github/ts/masters/indicators/supertrend.src'; +import 'highcharts-github/ts/masters/indicators/tema.src'; +import 'highcharts-github/ts/masters/indicators/trendline.src'; +import 'highcharts-github/ts/masters/indicators/trix.src'; +import 'highcharts-github/ts/masters/indicators/volume-by-price.src'; +import 'highcharts-github/ts/masters/indicators/vwap.src'; +import 'highcharts-github/ts/masters/indicators/williams-r.src'; +import 'highcharts-github/ts/masters/indicators/wma.src'; +import 'highcharts-github/ts/masters/indicators/zigzag.src'; + +import 'highcharts-github/ts/masters/themes/avocado.src'; +import 'highcharts-github/ts/masters/themes/brand-dark.src'; +import 'highcharts-github/ts/masters/themes/brand-light.src'; +import 'highcharts-github/ts/masters/themes/dark-blue.src'; +import 'highcharts-github/ts/masters/themes/dark-green.src'; +import 'highcharts-github/ts/masters/themes/dark-unica.src'; +import 'highcharts-github/ts/masters/themes/gray.src'; +import 'highcharts-github/ts/masters/themes/grid-light.src'; +import 'highcharts-github/ts/masters/themes/grid.src'; +import 'highcharts-github/ts/masters/themes/high-contrast-dark.src'; +import 'highcharts-github/ts/masters/themes/high-contrast-light.src'; +import 'highcharts-github/ts/masters/themes/sand-signika.src'; +import 'highcharts-github/ts/masters/themes/skies.src'; +import 'highcharts-github/ts/masters/themes/sunset.src'; diff --git a/ts/multicolor_series.ts b/ts/MulticolorSeries.ts similarity index 83% rename from ts/multicolor_series.ts rename to ts/MulticolorSeries.ts index 34b9d35..d306a1d 100644 --- a/ts/multicolor_series.ts +++ b/ts/MulticolorSeries.ts @@ -1,53 +1,43 @@ -import SeriesRegistry from 'highcharts/ts/Core/Series/SeriesRegistry'; -import Utilities from 'highcharts/ts/Core/Utilities'; -import LineSeries from 'highcharts/ts/Series/Line/LineSeries'; -import type PointerEvent from 'highcharts/ts/Core/PointerEvent'; -import type SVGElement from 'highcharts/ts/Core/Renderer/SVG/SVGElement'; -import type SVGAttributes from 'highcharts/ts/Core/Renderer/SVG/SVGAttributes'; -import type ColorType from 'highcharts/ts/Core/Color/ColorType'; -import type SVGPath from 'highcharts/ts/Core/Renderer/SVG/SVGPath'; -import { type StatesOptionsKey } from 'highcharts/ts/Core/Series/StatesOptions'; +import SeriesRegistry from 'highcharts-github/ts/Core/Series/SeriesRegistry'; +import Utilities from 'highcharts-github/ts/Core/Utilities'; +import LineSeries from 'highcharts-github/ts/Series/Line/LineSeries'; +import AreaSeries from 'highcharts-github/ts/Series/Area/AreaSeries'; +import type LinePoint from 'highcharts-github/ts/Series/Line/LinePoint'; +import type PointerEvent from 'highcharts-github/ts/Core/PointerEvent'; +import type SVGElement from 'highcharts-github/ts/Core/Renderer/SVG/SVGElement'; +import type SVGAttributes from + 'highcharts-github/ts/Core/Renderer/SVG/SVGAttributes'; +import type ColorType from 'highcharts-github/ts/Core/Color/ColorType'; +import type SVGPath from 'highcharts-github/ts/Core/Renderer/SVG/SVGPath'; +import { type StatesOptionsKey } from + 'highcharts-github/ts/Core/Series/StatesOptions'; import { - type ColoredlineSeriesOptions, - type SeriesColoredGraphPath, type SeriesColoredPoint, type SeriesColoredSegment, - type SeriesColoredSegmentPath + type SeriesColoredSegmentPath, + type SeriesColoredGraphPath } from 'types'; -const { area: AreaSeries } = SeriesRegistry.seriesTypes; const { extend, isArray } = Utilities; /** * - * Type guards + * Declarations * */ -const isSVGPathSegment = - (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; +type SeriesColoredLinePoint = SeriesColoredPoint; + +type SeriesColoredLineSegment = SeriesColoredSegment; /** * - * Functions + * Type guards * */ -function getPath ( - graphPaths: SeriesColoredGraphPath[] -): SeriesColoredSegmentPath[] { - let segmentPath: SeriesColoredSegmentPath[] = []; - - if (graphPaths) { - graphPaths.forEach(function (el): void { - if (isArray(segmentPath) && isArray(el[0])) { - segmentPath = segmentPath.concat(el[0]); - } - }); - } - - return segmentPath; -} +const isSVGPathSegment = + (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; /** * @@ -82,16 +72,14 @@ class ColoredlineSeries extends LineSeries { public pointRange: number | undefined; - public singlePoints!: SeriesColoredPoint[]; + public singlePoints!: SeriesColoredLinePoint[]; - public points!: SeriesColoredPoint[]; + public points!: SeriesColoredLinePoint[]; - public segments!: SeriesColoredSegment[]; - - public options!: ColoredlineSeriesOptions; + public segments!: SeriesColoredLineSegment[]; // Overrides graphPath property from Series type - public graphPaths: SeriesColoredGraphPath[]; + public graphPaths: SeriesColoredGraphPath[] | undefined; // Overrides areaPath property from Series type public areaPaths: SeriesColoredSegmentPath[]; @@ -105,8 +93,24 @@ class ColoredlineSeries extends LineSeries { * */ + public getPath ( + graphPaths: SeriesColoredGraphPath[] | undefined + ): SeriesColoredSegmentPath[] { + let segmentPath: SeriesColoredSegmentPath[] = []; + + if (graphPaths) { + graphPaths.forEach(function (el): void { + if (isArray(el[0])) { + segmentPath = segmentPath.concat(el[0]); + } + }); + } + + return segmentPath; + } + public getSegmentPath ( - segment: SeriesColoredPoint[] + segment: SeriesColoredLinePoint[] ): SeriesColoredSegmentPath[] { const series = this, segmentPath: SeriesColoredSegmentPath[] = [], @@ -114,8 +118,8 @@ class ColoredlineSeries extends LineSeries { // Build the segment line segment.forEach(function (point, i: number): void { - const plotX = point.plotX, - plotY = point.plotY; + const plotX = Number(point.plotX), + plotY = Number(point.plotY); let lastPoint; @@ -131,45 +135,37 @@ class ColoredlineSeries extends LineSeries { // Step line? if (step && i) { lastPoint = segment[i - 1]; + const lastPointPlotX = Number(lastPoint.plotX); - if ( - plotX && - plotY && - lastPoint?.plotX && - lastPoint?.plotY - ) { - if (step === 'right') { - segmentPath.push( - lastPoint.plotX, - plotY, - 'L' - ); - } else if (step === 'center') { - segmentPath.push( - (lastPoint.plotX + plotX) / 2, - lastPoint.plotY, - 'L', - (lastPoint.plotX + plotX) / 2, - plotY, - 'L' - ); - } else { - segmentPath.push( - plotX, - lastPoint.plotY, - 'L' - ); - } + if (step === 'right') { + segmentPath.push( + lastPoint.plotX, + plotY, + 'L' + ); + } else if (step === 'center') { + segmentPath.push( + (lastPointPlotX + plotX) / 2, + lastPoint.plotY, + 'L', + (lastPointPlotX + plotX) / 2, + plotY, + 'L' + ); + } else { + segmentPath.push( + plotX, + lastPoint.plotY, + 'L' + ); } } // Normal line to next point - if (point?.plotX && point.plotY) { - segmentPath.push( - point.plotX, - point.plotY - ); - } + segmentPath.push( + plotX, + plotY + ); } }); @@ -188,7 +184,7 @@ class ColoredlineSeries extends LineSeries { } } - public processData (force?: boolean | undefined): boolean { + public processData (force?: boolean): boolean { const series = this, processedXData = series.xData, // Copied during slice operation below processedYData = series.yData, @@ -253,8 +249,9 @@ class ColoredlineSeries extends LineSeries { options = series.options, trackByArea = options.trackByArea, trackerPath: SeriesColoredSegmentPath[] = - trackByArea ? series.areaPaths : getPath(series.graphPaths), - trackerPathLength = isArray(trackerPath) && trackerPath.length, + trackByArea ? series.areaPaths : + this.getPath(series.graphPaths), + trackerPathLength = trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, @@ -263,7 +260,7 @@ class ColoredlineSeries extends LineSeries { cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, - trackerFill = 'rgba(192,192,192,0.002'; + trackerFill = 'rgba(192,192,192,0.002)'; let singlePoint, i; @@ -319,17 +316,16 @@ class ColoredlineSeries extends LineSeries { // Handle single points for (i = 0; i < singlePoints.length; i++) { singlePoint = singlePoints[i]; - - if (singlePoint.plotX && singlePoint.plotY) { - trackerPath.push( - 'M', - singlePoint.plotX - snap, - singlePoint.plotY, - 'L', - singlePoint.plotX + snap, - singlePoint.plotY - ); - } + const singlePointPlotX = Number(singlePoint.plotX); + + trackerPath.push( + 'M', + singlePointPlotX - snap, + singlePoint.plotY, + 'L', + singlePointPlotX + snap, + singlePoint.plotY + ); } // Draw the tracker @@ -394,7 +390,10 @@ class ColoredlineSeries extends LineSeries { if ( stateOptions && state && - stateOptions[state]?.enabled === false + ( + stateOptions.hover?.enabled === false || + stateOptions.inactive?.enabled === false + ) ) { return; } @@ -416,9 +415,9 @@ class ColoredlineSeries extends LineSeries { public getSegments (): void { const series = this, - points: SeriesColoredPoint[] = series.points; + points: SeriesColoredLinePoint[] = series.points; - let segments: SeriesColoredSegment[] = [], + let segments: SeriesColoredLineSegment[] = [], lastColor = 0, pointsLength = points.length, i; @@ -552,7 +551,7 @@ class ColoredlineSeries extends LineSeries { const series = this, graphPaths: SeriesColoredGraphPath[] = []; - let singlePoints: SeriesColoredPoint[] = [], // Used in drawTracker + let singlePoints: SeriesColoredLinePoint[] = [], // Used in drawTracker segmentPath; // Divide into segments and build graph and area paths @@ -560,11 +559,7 @@ class ColoredlineSeries extends LineSeries { segmentPath = series.getSegmentPath(segment.points); // Add the segment to the graph, or a single point for tracking - if ( - graphPaths && - segment.points.length > 1 && - isSVGPathSegment(segmentPath) - ) { + if (segment.points.length > 1) { graphPaths.push([segmentPath, segment.color]); } else { singlePoints = [...singlePoints, ...segment.points]; @@ -630,7 +625,7 @@ class ColoredlineSeries extends LineSeries { // Draw the graphs let graphs = series.graphs; - if (graphs.length > 0) { // Cancel running animations, #459 + if (graphs) { // Cancel running animations, #459 // do we have animation graphPaths.forEach(function (segment, j): void { // Update color and path @@ -693,8 +688,8 @@ class ColoredlineSeries extends LineSeries { interface ColoredlineSeries extends LineSeries { getPointSpline: ( - segment: SeriesColoredPoint[], - point: SeriesColoredPoint, + segment: SeriesColoredLinePoint[], + point: SeriesColoredLinePoint, i: number ) => SeriesColoredSegmentPath[] } diff --git a/ts/config/highcharts-config.d.ts b/ts/config/highcharts-config.d.ts deleted file mode 100644 index 58f8925..0000000 --- a/ts/config/highcharts-config.d.ts +++ /dev/null @@ -1,147 +0,0 @@ -import 'highcharts/ts/masters/highcharts.src'; -import 'highcharts/ts/masters/highstock.src'; -import 'highcharts/ts/masters/highmaps.src'; -import 'highcharts/ts/masters/highcharts-3d.src'; -import 'highcharts/ts/masters/highcharts-gantt.src'; -import 'highcharts/ts/masters/highcharts-more.src'; - -import 'highcharts/ts/masters/modules/accessibility.src'; -import 'highcharts/ts/masters/modules/annotations-advanced.src'; -import 'highcharts/ts/masters/modules/annotations.src'; -import 'highcharts/ts/masters/modules/arc-diagram.src'; -import 'highcharts/ts/masters/modules/arrow-symbols.src'; -import 'highcharts/ts/masters/modules/boost-canvas.src'; -import 'highcharts/ts/masters/modules/boost.src'; -import 'highcharts/ts/masters/modules/broken-axis.src'; -import 'highcharts/ts/masters/modules/bullet.src'; -import 'highcharts/ts/masters/modules/coloraxis.src'; -import 'highcharts/ts/masters/modules/current-date-indicator.src'; -import 'highcharts/ts/masters/modules/cylinder.src'; -import 'highcharts/ts/masters/modules/data-tools.src'; -import 'highcharts/ts/masters/modules/data.src'; -import 'highcharts/ts/masters/modules/datagrouping.src'; -import 'highcharts/ts/masters/modules/debugger.src'; -import 'highcharts/ts/masters/modules/dependency-wheel.src'; -import 'highcharts/ts/masters/modules/dotplot.src'; -import 'highcharts/ts/masters/modules/drag-panes.src'; -import 'highcharts/ts/masters/modules/draggable-points.src'; -import 'highcharts/ts/masters/modules/drilldown.src'; -import 'highcharts/ts/masters/modules/dumbbell.src'; -import 'highcharts/ts/masters/modules/export-data.src'; -import 'highcharts/ts/masters/modules/exporting.src'; -import 'highcharts/ts/masters/modules/flowmap.src'; -import 'highcharts/ts/masters/modules/full-screen.src'; -import 'highcharts/ts/masters/modules/funnel.src'; -import 'highcharts/ts/masters/modules/funnel3d.src'; -import 'highcharts/ts/masters/modules/gantt.src'; -import 'highcharts/ts/masters/modules/geoheatmap.src'; -import 'highcharts/ts/masters/modules/grid-axis.src'; -import 'highcharts/ts/masters/modules/heatmap.src'; -import 'highcharts/ts/masters/modules/heikinashi.src'; -import 'highcharts/ts/masters/modules/histogram-bellcurve.src'; -import 'highcharts/ts/masters/modules/hollowcandlestick.src'; -import 'highcharts/ts/masters/modules/item-series.src'; -import 'highcharts/ts/masters/modules/lollipop.src'; -import 'highcharts/ts/masters/modules/map.src'; -import 'highcharts/ts/masters/modules/marker-clusters.src'; -import 'highcharts/ts/masters/modules/mouse-wheel-zoom.src'; -import 'highcharts/ts/masters/modules/networkgraph.src'; -import 'highcharts/ts/masters/modules/no-data-to-display.src'; - -import 'highcharts/ts/Extensions/OfflineExporting/OfflineExportingVendor'; - -import 'highcharts/ts/masters/modules/offline-exporting.src'; -import 'highcharts/ts/masters/modules/organization.src'; -import 'highcharts/ts/masters/modules/overlapping-datalabels.src'; -import 'highcharts/ts/masters/modules/parallel-coordinates.src'; -import 'highcharts/ts/masters/modules/pareto.src'; -import 'highcharts/ts/masters/modules/pathfinder.src'; -import 'highcharts/ts/masters/modules/pattern-fill.src'; -import 'highcharts/ts/masters/modules/pictorial.src'; -import 'highcharts/ts/masters/modules/price-indicator.src'; -import 'highcharts/ts/masters/modules/pyramid3d.src'; -import 'highcharts/ts/masters/modules/sankey.src'; -import 'highcharts/ts/masters/modules/series-label.src'; -import 'highcharts/ts/masters/modules/series-on-point.src'; -import 'highcharts/ts/masters/modules/solid-gauge.src'; -import 'highcharts/ts/masters/modules/sonification.src'; -import 'highcharts/ts/masters/modules/static-scale.src'; -import 'highcharts/ts/masters/modules/stock-tools.src'; -import 'highcharts/ts/masters/modules/stock.src'; -import 'highcharts/ts/masters/modules/streamgraph.src'; -import 'highcharts/ts/masters/modules/sunburst.src'; -import 'highcharts/ts/masters/modules/tiledwebmap.src'; -import 'highcharts/ts/masters/modules/tilemap.src'; -import 'highcharts/ts/masters/modules/timeline.src'; -import 'highcharts/ts/masters/modules/treegraph.src'; -import 'highcharts/ts/masters/modules/treegrid.src'; -import 'highcharts/ts/masters/modules/treemap.src'; -import 'highcharts/ts/masters/modules/variable-pie.src'; -import 'highcharts/ts/masters/modules/variwide.src'; -import 'highcharts/ts/masters/modules/vector.src'; -import 'highcharts/ts/masters/modules/venn.src'; -import 'highcharts/ts/masters/modules/windbarb.src'; -import 'highcharts/ts/masters/modules/wordcloud.src'; -import 'highcharts/ts/masters/modules/xrange.src'; - -import 'highcharts/ts/masters/indicators/acceleration-bands.src'; -import 'highcharts/ts/masters/indicators/accumulation-distribution.src'; -import 'highcharts/ts/masters/indicators/ao.src'; -import 'highcharts/ts/masters/indicators/apo.src'; -import 'highcharts/ts/masters/indicators/aroon-oscillator.src'; -import 'highcharts/ts/masters/indicators/aroon.src'; -import 'highcharts/ts/masters/indicators/atr.src'; -import 'highcharts/ts/masters/indicators/bollinger-bands.src'; -import 'highcharts/ts/masters/indicators/cci.src'; -import 'highcharts/ts/masters/indicators/chaikin.src'; -import 'highcharts/ts/masters/indicators/cmf.src'; -import 'highcharts/ts/masters/indicators/cmo.src'; -import 'highcharts/ts/masters/indicators/dema.src'; -import 'highcharts/ts/masters/indicators/disparity-index.src'; -import 'highcharts/ts/masters/indicators/dmi.src'; -import 'highcharts/ts/masters/indicators/dpo.src'; -import 'highcharts/ts/masters/indicators/ema.src'; -import 'highcharts/ts/masters/indicators/ichimoku-kinko-hyo.src'; -import 'highcharts/ts/masters/indicators/indicators-all.src'; -import 'highcharts/ts/masters/indicators/indicators.src'; -import 'highcharts/ts/masters/indicators/keltner-channels.src'; -import 'highcharts/ts/masters/indicators/klinger.src'; -import 'highcharts/ts/masters/indicators/macd.src'; -import 'highcharts/ts/masters/indicators/mfi.src'; -import 'highcharts/ts/masters/indicators/momentum.src'; -import 'highcharts/ts/masters/indicators/natr.src'; -import 'highcharts/ts/masters/indicators/obv.src'; -import 'highcharts/ts/masters/indicators/pivot-points.src'; -import 'highcharts/ts/masters/indicators/ppo.src'; -import 'highcharts/ts/masters/indicators/price-channel.src'; -import 'highcharts/ts/masters/indicators/price-envelopes.src'; -import 'highcharts/ts/masters/indicators/psar.src'; -import 'highcharts/ts/masters/indicators/regressions.src'; -import 'highcharts/ts/masters/indicators/roc.src'; -import 'highcharts/ts/masters/indicators/rsi.src'; -import 'highcharts/ts/masters/indicators/slow-stochastic.src'; -import 'highcharts/ts/masters/indicators/stochastic.src'; -import 'highcharts/ts/masters/indicators/supertrend.src'; -import 'highcharts/ts/masters/indicators/tema.src'; -import 'highcharts/ts/masters/indicators/trendline.src'; -import 'highcharts/ts/masters/indicators/trix.src'; -import 'highcharts/ts/masters/indicators/volume-by-price.src'; -import 'highcharts/ts/masters/indicators/vwap.src'; -import 'highcharts/ts/masters/indicators/williams-r.src'; -import 'highcharts/ts/masters/indicators/wma.src'; -import 'highcharts/ts/masters/indicators/zigzag.src'; - -import 'highcharts/ts/masters/themes/avocado.src'; -import 'highcharts/ts/masters/themes/brand-dark.src'; -import 'highcharts/ts/masters/themes/brand-light.src'; -import 'highcharts/ts/masters/themes/dark-blue.src'; -import 'highcharts/ts/masters/themes/dark-green.src'; -import 'highcharts/ts/masters/themes/dark-unica.src'; -import 'highcharts/ts/masters/themes/gray.src'; -import 'highcharts/ts/masters/themes/grid-light.src'; -import 'highcharts/ts/masters/themes/grid.src'; -import 'highcharts/ts/masters/themes/high-contrast-dark.src'; -import 'highcharts/ts/masters/themes/high-contrast-light.src'; -import 'highcharts/ts/masters/themes/sand-signika.src'; -import 'highcharts/ts/masters/themes/skies.src'; -import 'highcharts/ts/masters/themes/sunset.src'; diff --git a/tsconfig.json b/tsconfig.json index 1f6bb5e..5cf076c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,26 +1,14 @@ { "compilerOptions": { - "outDir": "./js", - "rootDir": "./ts", - "baseUrl": ".", - "paths": { - "js/*": ["js/*"] - }, - "allowJs": true, "allowSyntheticDefaultImports": true, "alwaysStrict": false, "declaration": false, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - - /** - * "ignoreDeprecations" - only to mute the warning of the keyofStringsOnly flag (set because Highcharts uses it) - */ "keyofStringsOnly": true, "ignoreDeprecations": "5.0", - "noEmitOnError": true, "noFallthroughCasesInSwitch": true, "noImplicitThis": true, @@ -36,5 +24,5 @@ "types": ["jquery", "trusted-types", "jest"] }, "include": ["ts/**/*"], - "exclude": ["ts/tests/**/*"] + "exclude": ["tests/**/*"] } diff --git a/typeguards.ts b/typeguards.ts index ccc0ce5..e555f36 100644 --- a/typeguards.ts +++ b/typeguards.ts @@ -1,5 +1,5 @@ import { Series } from "highcharts"; -import { SeriesColored } from "types"; +import { SeriesColored } from "./types"; export const isSeriesColored = ( series: Series | SeriesColored, diff --git a/types.d.ts b/types.d.ts index f8f5def..1114ed1 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,81 +1,55 @@ -import { PointOptionsObject } from "highcharts"; -import Series from 'highcharts/ts/Core/Series/Series'; -import LinePoint from 'highcharts/ts/Series/Line/LinePoint'; -import SVGElement from 'highcharts/ts/Core/Renderer/SVG/SVGElement'; -import type SVGPath from "highcharts/ts/Core/Renderer/SVG/SVGPath"; -import type ColorType from "highcharts/ts/Core/Color/ColorType"; -import type DataLabelOptions from 'highcharts/ts/Core/Series/DataLabelOptions'; -import type AnimationOptions from 'highcharts/ts/Core/Animation/AnimationOptions'; -import type StatesOptions, { - StateGenericOptions -} from 'highcharts/ts/Core/Series/StatesOptions'; -import type SeriesOptions, { - SeriesStateHoverOptions, - SeriesStateInactiveOptions, - SeriesStateNormalOptions, - SeriesStateSelectOptions -} from 'highcharts/ts/Core/Series/SeriesOptions'; +import type SVGPath from "highcharts-github/ts/Core/Renderer/SVG/SVGPath"; +import type ColorType from "highcharts-github/ts/Core/Color/ColorType"; +import type { + SeriesOptions, + PointOptionsObject, + Point, + Series, + SVGElement +} from 'highcharts'; /** - * + * * Shared types * */ -interface SeriesColored extends Omit { - tracker: SVGElement; - segments: SeriesColoredSegment[]; - graph: SVGElement[]; -} - -interface SeriesColoredPoint extends LinePoint { +type SeriesColoredPoint = T & { segmentColor?: string; -} +}; -type SeriesColoredSegment = { +type SeriesColoredSegment = { color: string; - points: SeriesColoredPoint[]; + points: SeriesColoredPoint[]; }; -type SeriesColoredSegmentPath = SVGPath.Segment | string | number; +/** + * + * Core code types + * + */ + +type SeriesColoredSegmentPath = SVGPath.Segment | string | number | undefined; type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], ColorType]; /** - * - * Coloredline series options + * + * Tests types * */ -interface SeriesStatesOptions extends StatesOptions { - hover?: SeriesStateHoverOptions&StateGenericOptions; - inactive?: SeriesStateInactiveOptions&StateGenericOptions; - normal?: SeriesStateNormalOptions&StateGenericOptions; - select?: SeriesStateSelectOptions&StateGenericOptions; -} - -interface ColoredlineSeriesOptions extends SeriesOptions { - allAreas?: boolean; - animation?: (boolean|DeepPartial); - animationLimit?: number; - boostThreshold?: number; - borderColor?: ColorType; - borderWidth?: number; - colorAxis?: boolean; - connectEnds?: boolean; - dataLabels?: (DataLabelOptions|Array); - description?: string; - linkedTo?: string; - pointDescriptionFormatter?: Function; - pointStart?: number; - skipKeyboardNavigation?: boolean; - states?: SeriesStatesOptions; - supportingColor?: ColorType; +interface SeriesColored extends Omit { + tracker: SVGElement; + segments: SeriesColoredSegment[]; + graphs: SVGElement[]; + // TO DO: remove once refactored the coloredarea series. + graph: SVGElement[]; } /** - * - * Represents data for chart options + * + * Extended Highcharts module types * */ @@ -85,7 +59,9 @@ interface SeriesColoredPointOptions extends PointOptionsObject { type SeriesColoredType = 'coloredline' | 'coloredarea'; -interface SeriesColoredOptions extends SeriesOptions { +interface SeriesColoredOptions< + Type extends SeriesColoredType +> extends SeriesOptions { type: Type; data?: SeriesColoredPointOptions[]; } @@ -93,12 +69,6 @@ interface SeriesColoredOptions extends SeriesOpt type SeriesColoredlineOptions = SeriesColoredOptions<'coloredline'>; type SeriesColoredareaOptions = SeriesColoredOptions<'coloredarea'>; -/** - * - * Globally accessible on the Highcharts module - * - */ - declare module "highcharts" { interface SeriesOptionsRegistry { SeriesColoredlineOptions?: SeriesColoredlineOptions; @@ -107,10 +77,9 @@ declare module "highcharts" { } export { - ColoredlineSeriesOptions, - SeriesColored, SeriesColoredPoint, SeriesColoredSegment, SeriesColoredSegmentPath, - SeriesColoredGraphPath + SeriesColoredGraphPath, + SeriesColored }; From 183982b29858d4af80b39f52b30bfefe4dfbe942 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Mon, 27 Nov 2023 12:15:46 +0100 Subject: [PATCH 16/66] Fixed code review issues. --- dist/multicolor-series.js | 66 +++++++++----- gulpfile.js | 5 +- jest.config.ts | 4 +- .../jest-snapshot/coloredarea-series.test.ts | 9 +- .../jest-snapshot/coloredline-series.test.ts | 3 +- ts/MulticolorSeries.ts | 85 ++++++++++++------- typeguards.ts | 15 ++-- types.d.ts | 17 +--- 8 files changed, 125 insertions(+), 79 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 9f727d3..2ed412c 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -28,13 +28,34 @@ -const { extend, isArray } = Utilities; +/** + * + * Helpers + * + */ +const { isArray } = Utilities; +const containsStringNumberNumberSequence = (sequenceValue) => { + let isSequenceFound = false; + for (let i = 0; i < sequenceValue.length; i++) { + if (typeof sequenceValue[i] === 'string' && + typeof sequenceValue[i + 1] === 'number' && + typeof sequenceValue[i + 2] === 'number') { + isSequenceFound = true; + } + else { + isSequenceFound = false; + break; + } + i += 2; + } + return isSequenceFound; +}; /** * * Type guards * */ -const isSVGPathSegment = (value) => true; +const isSVGPathSegment = (value) => containsStringNumberNumberSequence(value); /** * * @private @@ -63,7 +84,7 @@ class ColoredlineSeries extends LineSeries { getPath(graphPaths) { let segmentPath = []; if (graphPaths) { - graphPaths.forEach(function (el) { + graphPaths.forEach((el) => { if (isArray(el[0])) { segmentPath = segmentPath.concat(el[0]); } @@ -74,7 +95,7 @@ class ColoredlineSeries extends LineSeries { getSegmentPath(segment) { const series = this, segmentPath = [], step = series.options.step; // Build the segment line - segment.forEach(function (point, i) { + segment.forEach((point, i) => { const plotX = Number(point.plotX), plotY = Number(point.plotY); let lastPoint; if (series.getPointSpline) { @@ -159,7 +180,7 @@ class ColoredlineSeries extends LineSeries { const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : this.getPath(series.graphPaths), trackerPathLength = trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002)'; let singlePoint, i; - const onMouseOver = function () { + const onMouseOver = () => { if (chart.hoverSeries !== series) { series.onMouseOver(); } @@ -193,6 +214,7 @@ class ColoredlineSeries extends LineSeries { } // Draw the tracker if (isSVGPathSegment(trackerPath)) { + console.info('1:', trackerPath); if (tracker) { tracker.attr({ d: trackerPath }); } @@ -211,11 +233,11 @@ class ColoredlineSeries extends LineSeries { // The tracker is added to the series group, which is clipped, but is covered // by the marker group. So the marker group also needs to capture events. [series.tracker, series.markerGroup] - .forEach(function (track) { + .forEach((track) => { if (track) { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) - .on('mouseout', function (e) { + .on('mouseout', (e) => { pointer.onTrackerMouseOut(e); }); if (css) { @@ -248,7 +270,7 @@ class ColoredlineSeries extends LineSeries { } if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop - graphs.forEach(function (seg) { + graphs.forEach((seg) => { if (!seg.dashstyle) { seg.attr({ 'stroke-width': lineWidth }); } @@ -270,7 +292,7 @@ class ColoredlineSeries extends LineSeries { } } pointsLength = points.length; - points.forEach(function (_point, j) { + points.forEach((_point, j) => { var _a; if (j > 0 && points[j].segmentColor !== points[j - 1].segmentColor) { @@ -302,7 +324,7 @@ class ColoredlineSeries extends LineSeries { } else { let previousColor = null; - points.forEach(function (point, j) { + points.forEach((point, j) => { var _a, _b, _c, _d; const colorChanged = j > 0 && (point.y === null || points[j - 1].y === null || @@ -314,7 +336,7 @@ class ColoredlineSeries extends LineSeries { if (colorChanged) { if (p.length > 0) { // Do not create segments with null ponits - p.forEach(function (pointObject, k) { + p.forEach((pointObject, k) => { if (pointObject.y === null) { // Remove null points (might be on edges) p.splice(k, 1); @@ -336,7 +358,7 @@ class ColoredlineSeries extends LineSeries { p = points.slice(lastColor, next); if (p.length > 0) { // Do not create segments with null ponits - p.forEach(function (pointObject, k) { + p.forEach((pointObject, k) => { if (pointObject.y === null) { // Remove null points (might be on edges) p.splice(k, 1); @@ -360,12 +382,12 @@ class ColoredlineSeries extends LineSeries { // Register it series.segments = segments; } - getGraphPaths() { + setSeriesGraphPathsAndSinglePoints() { const series = this, graphPaths = []; let singlePoints = [], // Used in drawTracker segmentPath; // Divide into segments and build graph and area paths - series.segments.forEach(function (segment) { + series.segments.forEach((segment) => { segmentPath = series.getSegmentPath(segment.points); // Add the segment to the graph, or a single point for tracking if (segment.points.length > 1) { @@ -381,9 +403,9 @@ class ColoredlineSeries extends LineSeries { return graphPaths; } drawGraph() { - const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', graphPaths = series.getGraphPaths(), graphPathLength = graphPaths.length; + const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', graphPaths = series.setSeriesGraphPathsAndSinglePoints(), graphPathLength = graphPaths.length; let graphSegmentsLength = 0; - function getSegment(segment, colorType) { + const getSegment = (segment, colorType) => { const attribs = { stroke: colorType, 'stroke-width': lineWidth, @@ -402,6 +424,7 @@ class ColoredlineSeries extends LineSeries { attribs.stroke = segment[1]; } if (isSVGPathSegment(segment[0])) { + console.info('2:', segment[0]); item = series.chart.renderer.path(segment[0]) .attr(attribs) .add(series.group); @@ -410,14 +433,15 @@ class ColoredlineSeries extends LineSeries { item.shadow(!!options.shadow); } return item; - } + }; // Draw the graphs let graphs = series.graphs; if (graphs) { // Cancel running animations, #459 // do we have animation - graphPaths.forEach(function (segment, j) { + graphPaths.forEach((segment, j) => { // Update color and path if (series.graphs[j] && isSVGPathSegment(segment[0])) { + console.info('3:', segment[0]); series.graphs[j].attr({ d: segment[0], stroke: segment[1] @@ -433,7 +457,7 @@ class ColoredlineSeries extends LineSeries { } else if (graphPaths.length > 0) { // #1487 graphs = []; - graphPaths.forEach(function (segment, j) { + graphPaths.forEach((segment, j) => { const formattedSegment = getSegment(segment, colorType); if (formattedSegment) { graphs[j] = formattedSegment; @@ -462,9 +486,6 @@ class ColoredlineSeries extends LineSeries { } } } -extend(ColoredlineSeries.prototype, { - getPointSpline: ColoredlineSeries.prototype.getPointSpline -}); /** * * Registry @@ -486,6 +507,7 @@ class ColoredAreaSeries extends AreaSeries { } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); + } ) })); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index aa50412..912f4a8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -43,7 +43,8 @@ gulp.task("compile", () => { const removedSpecifiers = [], removedPaths = [], importPathReg = /import (.+?) from ["'](.+?)["'];/g, - formattedPathReg = /^highcharts-github\/ts\//; + formattedPathReg = /^highcharts-github\/ts\//, + exportReg = /\bexport\s*{[^}]*};?/g; fileContent = fileContent.replace(importPathReg, (_match, specifier, path) => { removedSpecifiers.push(specifier); @@ -51,6 +52,8 @@ gulp.task("compile", () => { return ''; }); + fileContent = fileContent.replace(exportReg, ''); + const wrappedFileContent = `(function (factory) { if (typeof module === 'object' && module.exports) { diff --git a/jest.config.ts b/jest.config.ts index 4c4404b..dc59f6f 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -4,7 +4,9 @@ const config: Config = { preset: "ts-jest", clearMocks: true, testEnvironment: "jest-environment-jsdom", - modulePaths: ['.'] + modulePaths: ["."], + // TO DO: remove once refactored the coloredarea series. + testPathIgnorePatterns: ["tests/jest-snapshot/coloredarea-series.test.ts"] }; export default config; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 5ca1304..5a35be1 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -69,18 +69,21 @@ describe('Refactoring regression tests - series coloredarea.', (): void => { throw Error('Series type should be coloredarea.'); } + // TO DO: change to graphs once refactored the coloredarea series. const graph = series.graph; describe('Graph element tests.', (): void => { test( 'The graph element should be an five elements array.', (): void => { - expect(graph.length).toEqual(5); + // TO DO: check not needed once refactored the coloredarea series. + expect(graph?.length).toEqual(5); } ); test('The graph paths should match the snapshot.', (): void => { - const paths = graph.map((graph): string => + // TO DO: check not needed once refactored the coloredarea series. + const paths = graph?.map((graph): string => graph.element.outerHTML ); expect(paths).toMatchSnapshot(); @@ -88,7 +91,7 @@ describe('Refactoring regression tests - series coloredarea.', (): void => { }); test('The tracker element should match the snapshot.', (): void => { - expect(series.tracker.element).toMatchSnapshot(); + expect(series?.tracker?.element).toMatchSnapshot(); }); test('The series data should match the snapshot.', (): void => { diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index 98b4a8c..debf8a4 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -69,7 +69,6 @@ describe('Refactoring regression tests - series coloredline.', (): void => { throw Error('Series type should be coloredline.'); } - // TO DO: change to graphs once refactored the coloredarea series. const graphs = series.graphs; describe('Graph element tests.', (): void => { @@ -89,7 +88,7 @@ describe('Refactoring regression tests - series coloredline.', (): void => { }); test('The tracker element should match the snapshot.', (): void => { - expect(series.tracker.element).toMatchSnapshot(); + expect(series?.tracker?.element).toMatchSnapshot(); }); test('The series data should match the snapshot.', (): void => { diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index d306a1d..6443b3b 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -18,7 +18,36 @@ import { type SeriesColoredGraphPath } from 'types'; -const { extend, isArray } = Utilities; +/** + * + * Helpers + * + */ + +const { isArray } = Utilities; + +const containsStringNumberNumberSequence = ( + sequenceValue: SeriesColoredSegmentPath[] +): boolean => { + let isSequenceFound = false; + + for (let i = 0; i < sequenceValue.length; i++) { + if ( + typeof sequenceValue[i] === 'string' && + typeof sequenceValue[i + 1] === 'number' && + typeof sequenceValue[i + 2] === 'number' + ) { + isSequenceFound = true; + } else { + isSequenceFound = false; + break; + } + + i += 2; + } + + return isSequenceFound; +}; /** * @@ -36,8 +65,9 @@ type SeriesColoredLineSegment = SeriesColoredSegment; * */ -const isSVGPathSegment = - (value: SeriesColoredSegmentPath[]): value is SVGPath.Segment[] => true; +const isSVGPathSegment = ( + value: SeriesColoredSegmentPath[] +): value is SVGPath.Segment[] => containsStringNumberNumberSequence(value); /** * @@ -99,7 +129,7 @@ class ColoredlineSeries extends LineSeries { let segmentPath: SeriesColoredSegmentPath[] = []; if (graphPaths) { - graphPaths.forEach(function (el): void { + graphPaths.forEach((el): void => { if (isArray(el[0])) { segmentPath = segmentPath.concat(el[0]); } @@ -117,7 +147,7 @@ class ColoredlineSeries extends LineSeries { step = series.options.step; // Build the segment line - segment.forEach(function (point, i: number): void { + segment.forEach((point, i: number): void => { const plotX = Number(point.plotX), plotY = Number(point.plotY); @@ -265,7 +295,7 @@ class ColoredlineSeries extends LineSeries { let singlePoint, i; - const onMouseOver = function (): void { + const onMouseOver = (): void => { if (chart.hoverSeries !== series) { series.onMouseOver(); } @@ -348,15 +378,13 @@ class ColoredlineSeries extends LineSeries { // The tracker is added to the series group, which is clipped, but is covered // by the marker group. So the marker group also needs to capture events. [series.tracker, series.markerGroup] - .forEach(function (track): void { + .forEach((track): void => { if (track) { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) - .on('mouseout', - function (e: PointerEvent): void { - pointer.onTrackerMouseOut(e); - } - ); + .on('mouseout', (e: PointerEvent): void => { + pointer.onTrackerMouseOut(e); + }); if (css) { track.css(css); @@ -404,7 +432,7 @@ class ColoredlineSeries extends LineSeries { if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop - graphs.forEach(function (seg: SVGElement): void { + graphs.forEach((seg: SVGElement): void => { if (!seg.dashstyle) { seg.attr({ 'stroke-width': lineWidth }); } @@ -433,7 +461,7 @@ class ColoredlineSeries extends LineSeries { } pointsLength = points.length; - points.forEach(function (_point, j): void { + points.forEach((_point, j): void => { if ( j > 0 && points[j].segmentColor !== points[j - 1].segmentColor @@ -470,7 +498,7 @@ class ColoredlineSeries extends LineSeries { } else { let previousColor: string | null = null; - points.forEach(function (point, j): void { + points.forEach((point, j): void => { const colorChanged = j > 0 && ( point.y === null || points[j - 1].y === null || @@ -488,7 +516,7 @@ class ColoredlineSeries extends LineSeries { if (colorChanged) { if (p.length > 0) { // Do not create segments with null ponits - p.forEach(function (pointObject, k): void { + p.forEach((pointObject, k): void => { if (pointObject.y === null) { // Remove null points (might be on edges) p.splice(k, 1); @@ -516,7 +544,7 @@ class ColoredlineSeries extends LineSeries { if (p.length > 0) { // Do not create segments with null ponits - p.forEach(function (pointObject, k): void { + p.forEach((pointObject, k): void => { if (pointObject.y === null) { // Remove null points (might be on edges) p.splice(k, 1); @@ -547,7 +575,7 @@ class ColoredlineSeries extends LineSeries { series.segments = segments; } - public getGraphPaths (): SeriesColoredGraphPath[] { + public setSeriesGraphPathsAndSinglePoints (): SeriesColoredGraphPath[] { const series = this, graphPaths: SeriesColoredGraphPath[] = []; @@ -555,7 +583,7 @@ class ColoredlineSeries extends LineSeries { segmentPath; // Divide into segments and build graph and area paths - series.segments.forEach(function (segment): void { + series.segments.forEach((segment): void => { segmentPath = series.getSegmentPath(segment.points); // Add the segment to the graph, or a single point for tracking @@ -580,15 +608,16 @@ class ColoredlineSeries extends LineSeries { lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', - graphPaths: SeriesColoredGraphPath[] = series.getGraphPaths(), + graphPaths: SeriesColoredGraphPath[] = + series.setSeriesGraphPathsAndSinglePoints(), graphPathLength = graphPaths.length; let graphSegmentsLength = 0; - function getSegment ( + const getSegment = ( segment: SeriesColoredGraphPath, colorType: ColorType - ): SVGElement | undefined { + ): SVGElement | undefined => { const attribs: SVGAttributes = { stroke: colorType, 'stroke-width': lineWidth, @@ -620,14 +649,14 @@ class ColoredlineSeries extends LineSeries { } return item; - } + }; // Draw the graphs let graphs = series.graphs; if (graphs) { // Cancel running animations, #459 // do we have animation - graphPaths.forEach(function (segment, j): void { + graphPaths.forEach((segment, j): void => { // Update color and path if (series.graphs[j] && isSVGPathSegment(segment[0])) { series.graphs[j].attr({ @@ -644,7 +673,7 @@ class ColoredlineSeries extends LineSeries { }); } else if (graphPaths.length > 0) { // #1487 graphs = []; - graphPaths.forEach(function (segment, j): void { + graphPaths.forEach((segment, j): void => { const formattedSegment = getSegment(segment, colorType); if (formattedSegment) { @@ -694,10 +723,6 @@ interface ColoredlineSeries extends LineSeries { ) => SeriesColoredSegmentPath[] } -extend(ColoredlineSeries.prototype, { - getPointSpline: ColoredlineSeries.prototype.getPointSpline -}); - /** * * Registry @@ -722,3 +747,5 @@ class ColoredAreaSeries extends AreaSeries { } SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); + +export { ColoredlineSeries, ColoredAreaSeries }; diff --git a/typeguards.ts b/typeguards.ts index e555f36..382a58f 100644 --- a/typeguards.ts +++ b/typeguards.ts @@ -1,7 +1,12 @@ -import { Series } from "highcharts"; -import { SeriesColored } from "./types"; +import { Series, Point } from 'highcharts'; +import { ColoredlineSeries } from './ts/MulticolorSeries'; +import { SeriesColoredPoint, SeriesColoredSegment } from './types'; + +type ExtendedColoredlineSeries = ColoredlineSeries & { + segments: SeriesColoredSegment>[]; +}; export const isSeriesColored = ( - series: Series | SeriesColored, - type: "coloredline" | "coloredarea" -): series is SeriesColored => true; + series: Series | ExtendedColoredlineSeries, + type: 'coloredline' | 'coloredarea' +): series is ExtendedColoredlineSeries => true; diff --git a/types.d.ts b/types.d.ts index 1114ed1..306d971 100644 --- a/types.d.ts +++ b/types.d.ts @@ -33,20 +33,6 @@ type SeriesColoredSegmentPath = SVGPath.Segment | string | number | undefined; type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], ColorType]; -/** - * - * Tests types - * - */ - -interface SeriesColored extends Omit { - tracker: SVGElement; - segments: SeriesColoredSegment[]; - graphs: SVGElement[]; - // TO DO: remove once refactored the coloredarea series. - graph: SVGElement[]; -} - /** * * Extended Highcharts module types @@ -80,6 +66,5 @@ export { SeriesColoredPoint, SeriesColoredSegment, SeriesColoredSegmentPath, - SeriesColoredGraphPath, - SeriesColored + SeriesColoredGraphPath }; From 4f21bafc75b27e97406e6c33e3a57f6b133bfd40 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Mon, 27 Nov 2023 12:54:16 +0100 Subject: [PATCH 17/66] Extracted formatTrackerPath method from drawTracker. --- dist/multicolor-series.js | 38 ++++++++++++----------- ts/MulticolorSeries.ts | 63 +++++++++++++++++++++++---------------- 2 files changed, 59 insertions(+), 42 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 2ed412c..1030660 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -71,6 +71,7 @@ class ColoredlineSeries extends LineSeries { */ constructor() { super(); + this.segments = []; this.singlePoints = []; this.graphPaths = []; this.areaPaths = []; @@ -175,19 +176,13 @@ class ColoredlineSeries extends LineSeries { } return true; } - drawTracker() { - var _a, _b, _c, _d, _e; - const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : - this.getPath(series.graphPaths), trackerPathLength = trackerPath.length, chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, singlePoints = series.singlePoints, trackerFill = 'rgba(192,192,192,0.002)'; + formatTrackerPath(trackerPath) { + var _a, _b, _c, _d; + const series = this, options = series.options, trackerPathLength = trackerPath.length, singlePoints = series.singlePoints, snap = (_b = (_a = series.chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0; let singlePoint, i; - const onMouseOver = () => { - if (chart.hoverSeries !== series) { - series.onMouseOver(); - } - }; // Extend end points. A better way would be to use round linecaps, // but those are not clickable in VML. - if (trackerPathLength && !trackByArea) { + if (trackerPathLength && !options.trackByArea) { i = trackerPathLength + 1; while (i--) { if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // Extend left side @@ -212,20 +207,31 @@ class ColoredlineSeries extends LineSeries { const singlePointPlotX = Number(singlePoint.plotX); trackerPath.push('M', singlePointPlotX - snap, singlePoint.plotY, 'L', singlePointPlotX + snap, singlePoint.plotY); } + return trackerPath; + } + drawTracker() { + var _a, _b, _c; + const series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = trackByArea ? series.areaPaths : + this.getPath(series.graphPaths), chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = (_b = (_a = chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0, tracker = series.tracker, cursor = options.cursor, css = cursor && { cursor }, trackerFill = 'rgba(192,192,192,0.002)'; + const onMouseOver = () => { + if (chart.hoverSeries !== series) { + series.onMouseOver(); + } + }; + const formattedTrackerPath = this.formatTrackerPath(trackerPath); // Draw the tracker - if (isSVGPathSegment(trackerPath)) { - console.info('1:', trackerPath); + if (isSVGPathSegment(formattedTrackerPath)) { if (tracker) { - tracker.attr({ d: trackerPath }); + tracker.attr({ d: formattedTrackerPath }); } else { // Create a tracker - series.tracker = renderer.path(trackerPath) + series.tracker = renderer.path(formattedTrackerPath) .attr({ 'stroke-linejoin': 'round', visibility: series.visible ? 'visible' : 'hidden', stroke: trackerFill, fill: trackByArea ? trackerFill : 'none', - 'stroke-width': (_e = options.lineWidth) !== null && _e !== void 0 ? _e : 0 + + 'stroke-width': (_c = options.lineWidth) !== null && _c !== void 0 ? _c : 0 + (trackByArea ? 0 : 2 * snap), zIndex: 2 }) @@ -424,7 +430,6 @@ class ColoredlineSeries extends LineSeries { attribs.stroke = segment[1]; } if (isSVGPathSegment(segment[0])) { - console.info('2:', segment[0]); item = series.chart.renderer.path(segment[0]) .attr(attribs) .add(series.group); @@ -441,7 +446,6 @@ class ColoredlineSeries extends LineSeries { graphPaths.forEach((segment, j) => { // Update color and path if (series.graphs[j] && isSVGPathSegment(segment[0])) { - console.info('3:', segment[0]); series.graphs[j].attr({ d: segment[0], stroke: segment[1] diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index 6443b3b..89797f6 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -88,6 +88,7 @@ class ColoredlineSeries extends LineSeries { constructor () { super(); + this.segments = []; this.singlePoints = []; this.graphPaths = []; this.areaPaths = []; @@ -102,11 +103,11 @@ class ColoredlineSeries extends LineSeries { public pointRange: number | undefined; - public singlePoints!: SeriesColoredLinePoint[]; + public singlePoints: SeriesColoredLinePoint[]; public points!: SeriesColoredLinePoint[]; - public segments!: SeriesColoredLineSegment[]; + public segments: SeriesColoredLineSegment[]; // Overrides graphPath property from Series type public graphPaths: SeriesColoredGraphPath[] | undefined; @@ -274,36 +275,21 @@ class ColoredlineSeries extends LineSeries { return true; } - public drawTracker (): void { + public formatTrackerPath ( + trackerPath: SeriesColoredSegmentPath[] + ): SeriesColoredSegmentPath[] { const series = this, options = series.options, - trackByArea = options.trackByArea, - trackerPath: SeriesColoredSegmentPath[] = - trackByArea ? series.areaPaths : - this.getPath(series.graphPaths), trackerPathLength = trackerPath.length, - chart = series.chart, - pointer = chart.pointer, - renderer = chart.renderer, - snap = chart.options.tooltip?.snap ?? 0, - tracker = series.tracker, - cursor = options.cursor, - css = cursor && { cursor }, singlePoints = series.singlePoints, - trackerFill = 'rgba(192,192,192,0.002)'; + snap = series.chart.options.tooltip?.snap ?? 0; let singlePoint, i; - const onMouseOver = (): void => { - if (chart.hoverSeries !== series) { - series.onMouseOver(); - } - }; - // Extend end points. A better way would be to use round linecaps, // but those are not clickable in VML. - if (trackerPathLength && !trackByArea) { + if (trackerPathLength && !options.trackByArea) { i = trackerPathLength + 1; while (i--) { @@ -358,12 +344,39 @@ class ColoredlineSeries extends LineSeries { ); } + return trackerPath; + } + + public drawTracker (): void { + const series = this, + options = series.options, + trackByArea = options.trackByArea, + trackerPath: SeriesColoredSegmentPath[] = + trackByArea ? series.areaPaths : + this.getPath(series.graphPaths), + chart = series.chart, + pointer = chart.pointer, + renderer = chart.renderer, + snap = chart.options.tooltip?.snap ?? 0, + tracker = series.tracker, + cursor = options.cursor, + css = cursor && { cursor }, + trackerFill = 'rgba(192,192,192,0.002)'; + + const onMouseOver = (): void => { + if (chart.hoverSeries !== series) { + series.onMouseOver(); + } + }; + + const formattedTrackerPath = this.formatTrackerPath(trackerPath); + // Draw the tracker - if (isSVGPathSegment(trackerPath)) { + if (isSVGPathSegment(formattedTrackerPath)) { if (tracker) { - tracker.attr({ d: trackerPath }); + tracker.attr({ d: formattedTrackerPath }); } else { // Create a tracker - series.tracker = renderer.path(trackerPath) + series.tracker = renderer.path(formattedTrackerPath) .attr({ 'stroke-linejoin': 'round', // #1225 visibility: series.visible ? 'visible' : 'hidden', From 73d85182a79e17d465eb1a62ff460ea204e71091 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 29 Nov 2023 17:29:33 +0100 Subject: [PATCH 18/66] Added code review refactor. --- dist/multicolor-series.js | 38 ++--- pnpm-lock.yaml | 350 +++++++++++++++++++------------------- ts/MulticolorSeries.ts | 118 ++++++------- 3 files changed, 240 insertions(+), 266 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 1030660..ebde25f 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -99,30 +99,24 @@ class ColoredlineSeries extends LineSeries { segment.forEach((point, i) => { const plotX = Number(point.plotX), plotY = Number(point.plotY); let lastPoint; - if (series.getPointSpline) { - // Generate the spline as defined in the SplineSeries object - segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i)); - } - else { - // Declarations: moveTo or lineTo - segmentPath.push(i ? 'L' : 'M'); - // Step line? - if (step && i) { - lastPoint = segment[i - 1]; - const lastPointPlotX = Number(lastPoint.plotX); - if (step === 'right') { - segmentPath.push(lastPoint.plotX, plotY, 'L'); - } - else if (step === 'center') { - segmentPath.push((lastPointPlotX + plotX) / 2, lastPoint.plotY, 'L', (lastPointPlotX + plotX) / 2, plotY, 'L'); - } - else { - segmentPath.push(plotX, lastPoint.plotY, 'L'); - } + // Declarations: moveTo or lineTo + segmentPath.push(i ? 'L' : 'M'); + // Step line? + if (step && i) { + lastPoint = segment[i - 1]; + const lastPointPlotX = Number(lastPoint.plotX); + if (step === 'right') { + segmentPath.push(lastPoint.plotX, plotY, 'L'); + } + else if (step === 'center') { + segmentPath.push((lastPointPlotX + plotX) / 2, lastPoint.plotY, 'L', (lastPointPlotX + plotX) / 2, plotY, 'L'); + } + else { + segmentPath.push(plotX, lastPoint.plotY, 'L'); } - // Normal line to next point - segmentPath.push(plotX, plotY); } + // Normal line to next point + segmentPath.push(plotX, plotY); }); return segmentPath; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c495e5..a9a25d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ dependencies: version: 11.2.0 highcharts-github: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/011afc26054380975fd18629faec3cd342dfdc30 + version: github.com/highcharts/highcharts/310d23d3ff26f6d7a04c7e1019676b64ce038505 devDependencies: '@types/jest': @@ -66,7 +66,7 @@ devDependencies: version: 8.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -75,10 +75,10 @@ devDependencies: version: 4.0.2 ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.9.3)(typescript@5.2.2) + version: 10.9.1(@types/node@20.10.0)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -101,33 +101,33 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@babel/code-frame@7.23.4: - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + /@babel/core@7.23.5: + resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.4 - '@babel/parser': 7.23.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helpers': 7.23.5 + '@babel/parser': 7.23.5 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -137,11 +137,11 @@ packages: - supports-color dev: true - /@babel/generator@7.23.4: - resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -151,8 +151,8 @@ packages: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -168,30 +168,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -208,14 +208,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-string-parser@7.23.4: @@ -228,18 +228,18 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.4: - resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} + /@babel/helpers@7.23.5: + resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 transitivePeerDependencies: - supports-color dev: true @@ -253,140 +253,140 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.4: - resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -394,31 +394,31 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true - /@babel/traverse@7.23.4: - resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} + /@babel/traverse@7.23.5: + resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.4: - resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -505,7 +505,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -526,14 +526,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -561,7 +561,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-mock: 29.7.0 dev: true @@ -588,7 +588,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -621,7 +621,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -638,7 +638,7 @@ packages: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.1.3 + v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color dev: true @@ -683,7 +683,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -709,7 +709,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.9.3 + '@types/node': 20.10.0 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -812,8 +812,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.4 @@ -822,20 +822,20 @@ packages: /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@types/expect@1.20.4: @@ -845,7 +845,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.9.3 + '@types/node': 20.10.0 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -874,13 +874,13 @@ packages: /@types/jquery@3.5.6: resolution: {integrity: sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==} dependencies: - '@types/sizzle': 2.3.7 + '@types/sizzle': 2.3.8 dev: true /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.9.3 + '@types/node': 20.10.0 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -889,8 +889,8 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.9.3: - resolution: {integrity: sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==} + /@types/node@20.10.0: + resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} dependencies: undici-types: 5.26.5 dev: true @@ -899,8 +899,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@types/sizzle@2.3.7: - resolution: {integrity: sha512-sU5MNKvSFdbT97qLSabU6jxceY9BfYQe9uF+b8E1rdTecpq9ROkkKoiHlblUlhgfaz9bdCByWjAI40Y3mHf1iQ==} + /@types/sizzle@2.3.8: + resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} dev: true /@types/stack-utils@2.0.3: @@ -919,7 +919,7 @@ packages: resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.9.3 + '@types/node': 20.10.0 dev: true /@types/yargs-parser@21.0.3: @@ -1065,6 +1065,7 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead dev: true /acorn-globals@7.0.1: @@ -1414,17 +1415,17 @@ packages: hasBin: true dev: true - /babel-jest@29.7.0(@babel/core@7.23.3): + /babel-jest@29.7.0(@babel/core@7.23.5): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.3) + babel-preset-jest: 29.6.3(@babel/core@7.23.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -1450,40 +1451,40 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.4 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.5): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.3): + '@babel/core': 7.23.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.5): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) dev: true /bach@1.2.0: @@ -1586,8 +1587,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001563 - electron-to-chromium: 1.4.589 + caniuse-lite: 1.0.30001565 + electron-to-chromium: 1.4.596 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -1678,8 +1679,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001563: - resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==} + /caniuse-lite@1.0.30001565: + resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} dev: true /chalk@1.1.3: @@ -1925,7 +1926,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /create-jest@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1934,7 +1935,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2167,6 +2168,7 @@ packages: /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 dev: true @@ -2193,8 +2195,8 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.589: - resolution: {integrity: sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==} + /electron-to-chromium@1.4.596: + resolution: {integrity: sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg==} dev: true /emittery@0.13.1: @@ -2354,7 +2356,7 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} hasBin: true dependencies: - '@babel/code-frame': 7.23.4 + '@babel/code-frame': 7.23.5 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 @@ -3226,7 +3228,7 @@ packages: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.9.3 + '@types/node': 20.10.0 '@types/vinyl': 2.0.11 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -3808,8 +3810,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.3 - '@babel/parser': 7.23.4 + '@babel/core': 7.23.5 + '@babel/parser': 7.23.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -3821,8 +3823,8 @@ packages: resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.3 - '@babel/parser': 7.23.4 + '@babel/core': 7.23.5 + '@babel/parser': 7.23.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 @@ -3883,7 +3885,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3904,7 +3906,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3918,10 +3920,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3932,7 +3934,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3944,11 +3946,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 - babel-jest: 29.7.0(@babel/core@7.23.3) + '@types/node': 20.10.0 + babel-jest: 29.7.0(@babel/core@7.23.5) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -3967,7 +3969,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.9.3)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.10.0)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4014,7 +4016,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4031,7 +4033,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4047,7 +4049,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.9.3 + '@types/node': 20.10.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4082,7 +4084,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.23.4 + '@babel/code-frame': 7.23.5 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -4098,7 +4100,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-util: 29.7.0 dev: true @@ -4153,7 +4155,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4184,7 +4186,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4207,15 +4209,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.3 - '@babel/generator': 7.23.4 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/types': 7.23.4 + '@babel/core': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/types': 7.23.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -4236,7 +4238,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4261,7 +4263,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.9.3 + '@types/node': 20.10.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4273,13 +4275,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.9.3 + '@types/node': 20.10.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.9.3)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4292,7 +4294,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5153,7 +5155,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.4 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -6331,7 +6333,7 @@ packages: typescript: 5.2.2 dev: true - /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -6352,10 +6354,10 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.9.3)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -6365,7 +6367,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.9.3)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.10.0)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6384,7 +6386,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.3 + '@types/node': 20.10.0 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -6563,8 +6565,8 @@ packages: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 @@ -6921,8 +6923,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/011afc26054380975fd18629faec3cd342dfdc30: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/011afc26054380975fd18629faec3cd342dfdc30} + github.com/highcharts/highcharts/310d23d3ff26f6d7a04c7e1019676b64ce038505: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/310d23d3ff26f6d7a04c7e1019676b64ce038505} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index 89797f6..e1d61cc 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -85,7 +85,7 @@ class ColoredlineSeries extends LineSeries { * */ - constructor () { + constructor() { super(); this.segments = []; @@ -109,13 +109,13 @@ class ColoredlineSeries extends LineSeries { public segments: SeriesColoredLineSegment[]; - // Overrides graphPath property from Series type + // Overrides graphPath property from the Series type. public graphPaths: SeriesColoredGraphPath[] | undefined; - // Overrides areaPath property from Series type + // Overrides areaPath property from the Series type. public areaPaths: SeriesColoredSegmentPath[]; - // Overrides graph property from Series type + // Overrides graph property from Series type. public graphs: SVGElement[] | []; /** @@ -154,50 +154,43 @@ class ColoredlineSeries extends LineSeries { let lastPoint; - if (series.getPointSpline) { - // Generate the spline as defined in the SplineSeries object - segmentPath.push.apply( - segmentPath, series.getPointSpline(segment, point, i) - ); - } else { - // Declarations: moveTo or lineTo - segmentPath.push(i ? 'L' : 'M'); - - // Step line? - if (step && i) { - lastPoint = segment[i - 1]; - const lastPointPlotX = Number(lastPoint.plotX); - - if (step === 'right') { - segmentPath.push( - lastPoint.plotX, - plotY, - 'L' - ); - } else if (step === 'center') { - segmentPath.push( - (lastPointPlotX + plotX) / 2, - lastPoint.plotY, - 'L', - (lastPointPlotX + plotX) / 2, - plotY, - 'L' - ); - } else { - segmentPath.push( - plotX, - lastPoint.plotY, - 'L' - ); - } + // Declarations: moveTo or lineTo + segmentPath.push(i ? 'L' : 'M'); + + // Step line? + if (step && i) { + lastPoint = segment[i - 1]; + const lastPointPlotX = Number(lastPoint.plotX); + + if (step === 'right') { + segmentPath.push( + lastPoint.plotX, + plotY, + 'L' + ); + } else if (step === 'center') { + segmentPath.push( + (lastPointPlotX + plotX) / 2, + lastPoint.plotY, + 'L', + (lastPointPlotX + plotX) / 2, + plotY, + 'L' + ); + } else { + segmentPath.push( + plotX, + lastPoint.plotY, + 'L' + ); } - - // Normal line to next point - segmentPath.push( - plotX, - plotY - ); } + + // Normal line to next point + segmentPath.push( + plotX, + plotY + ); }); return segmentPath; @@ -347,11 +340,11 @@ class ColoredlineSeries extends LineSeries { return trackerPath; } - public drawTracker (): void { + public drawTracker(): void { const series = this, options = series.options, trackByArea = options.trackByArea, - trackerPath: SeriesColoredSegmentPath[] = + trackerPath = trackByArea ? series.areaPaths : this.getPath(series.graphPaths), chart = series.chart, @@ -454,9 +447,9 @@ class ColoredlineSeries extends LineSeries { } } - public getSegments (): void { + public getSegments(): void { const series = this, - points: SeriesColoredLinePoint[] = series.points; + points = series.points; let segments: SeriesColoredLineSegment[] = [], lastColor = 0, @@ -588,7 +581,7 @@ class ColoredlineSeries extends LineSeries { series.segments = segments; } - public setSeriesGraphPathsAndSinglePoints (): SeriesColoredGraphPath[] { + public setSeriesGraphPathsAndSinglePoints(): SeriesColoredGraphPath[] { const series = this, graphPaths: SeriesColoredGraphPath[] = []; @@ -614,15 +607,14 @@ class ColoredlineSeries extends LineSeries { return graphPaths; } - public drawGraph (): void { + public drawGraph(): void { const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', - graphPaths: SeriesColoredGraphPath[] = - series.setSeriesGraphPathsAndSinglePoints(), + graphPaths = series.setSeriesGraphPathsAndSinglePoints(), graphPathLength = graphPaths.length; let graphSegmentsLength = 0; @@ -713,7 +705,7 @@ class ColoredlineSeries extends LineSeries { * */ - public translate (): void { + public translate(): void { super.translate.apply(this, arguments); if (this.getSegments) { @@ -722,20 +714,6 @@ class ColoredlineSeries extends LineSeries { } } -/** - * - * Class Prototype - * - */ - -interface ColoredlineSeries extends LineSeries { - getPointSpline: ( - segment: SeriesColoredLinePoint[], - point: SeriesColoredLinePoint, - i: number - ) => SeriesColoredSegmentPath[] -} - /** * * Registry @@ -753,7 +731,7 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); */ class ColoredAreaSeries extends AreaSeries { - drawGraph (): void { + drawGraph(): void { super.drawGraph.apply(this); console.info('Inside coloredarea drawGraph method!'); } From faa2a7d9ac9ba1f503b717a7e219878600ce8892 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 12 Dec 2023 12:53:00 +0100 Subject: [PATCH 19/66] Added coloredarea series refactor. --- README.md | 2 + custom-module-demo.html | 33 +- dist/multicolor-series.js | 318 +++++++----- index.html | 4 +- jest.config.ts | 4 +- package.json | 2 +- .../coloredarea-series.test.ts.snap | 6 +- .../coloredline-series.test.ts.snap | 14 +- .../jest-snapshot/coloredarea-series.test.ts | 19 +- .../jest-snapshot/coloredline-series.test.ts | 4 +- ts/MulticolorSeries.ts | 472 ++++++++++++------ typeguards.ts | 11 +- 12 files changed, 588 insertions(+), 301 deletions(-) diff --git a/README.md b/README.md index 5010112..6f29aa4 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,8 @@ Demos are available at project's github page: [http://blacklabel.github.io/multi ### Releases +- Versions v3.0.0: compatible with Highcharts v10.3.3+ + - Versions v2.4.0+: compatible with Highcharts v10.0.0+ - Version v2.3.0: compatible with Highcharts v9.2.0 - v9.3.3 diff --git a/custom-module-demo.html b/custom-module-demo.html index fd0e5db..cce8186 100644 --- a/custom-module-demo.html +++ b/custom-module-demo.html @@ -46,7 +46,7 @@ y: 70, segmentColor: 'pink' } - ] + ] } ] }); @@ -55,7 +55,36 @@ series: [ { type: "coloredarea", - data: [5, 2, 4, 3, 1], + data: [ + { + y: 40, + segmentColor: 'red' + }, + { + y: 60, + segmentColor: 'blue' + }, + { + y: 30, + segmentColor: 'yellow' + }, + { + y: 10, + segmentColor: 'green' + }, + { + y: 50, + segmentColor: 'green' + }, + { + y: 20, + segmentColor: 'brown' + }, + { + y: 70, + segmentColor: 'pink' + } + ] } ] }); diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index ebde25f..bf229cb 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -22,8 +22,8 @@ _registerModule( _modules, 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js'],_modules['Series/Area/AreaSeries.js']], - (SeriesRegistry,Utilities,LineSeries,AreaSeries) => { + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Core/Series/Series.js'],_modules['Series/Line/LineSeries.js']], + (SeriesRegistry,Utilities,Series,LineSeries) => { @@ -33,20 +33,20 @@ * Helpers * */ -const { isArray } = Utilities; +const { isArray, pick } = Utilities; const containsStringNumberNumberSequence = (sequenceValue) => { let isSequenceFound = false; - for (let i = 0; i < sequenceValue.length; i++) { - if (typeof sequenceValue[i] === 'string' && - typeof sequenceValue[i + 1] === 'number' && - typeof sequenceValue[i + 2] === 'number') { + for (let index = 0; index < sequenceValue.length; index++) { + if (typeof sequenceValue[index] === 'string' && + typeof sequenceValue[index + 1] === 'number' && + typeof sequenceValue[index + 2] === 'number') { isSequenceFound = true; } else { isSequenceFound = false; break; } - i += 2; + index += 2; } return isSequenceFound; }; @@ -55,7 +55,9 @@ const containsStringNumberNumberSequence = (sequenceValue) => { * Type guards * */ -const isSVGPathSegment = (value) => containsStringNumberNumberSequence(value); +const isSVGPathSegment = (value +// The tests problem lies here. +) => containsStringNumberNumberSequence(value); /** * * @private @@ -71,6 +73,34 @@ class ColoredlineSeries extends LineSeries { */ constructor() { super(); + this.getSegment = (segment, colorType) => { + const series = this, options = series.options, lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', attribs = { + stroke: colorType, + 'stroke-width': lineWidth, + fill: 'none', + zIndex: 1 // #1069 + }; + let item; + if (dashStyle) { + attribs.dashstyle = dashStyle; + } + else if (roundCap) { + attribs['stroke-linecap'] = + attribs['stroke-linejoin'] = 'round'; + } + if (segment[1]) { + attribs.stroke = segment[1]; + } + if (isSVGPathSegment(segment[0])) { + item = series.chart.renderer.path(segment[0]) + .attr(attribs) + .add(series.group); + } + if (item === null || item === void 0 ? void 0 : item.shadow) { + item.shadow(!!options.shadow); + } + return item; + }; this.segments = []; this.singlePoints = []; this.graphPaths = []; @@ -85,9 +115,9 @@ class ColoredlineSeries extends LineSeries { getPath(graphPaths) { let segmentPath = []; if (graphPaths) { - graphPaths.forEach((el) => { - if (isArray(el[0])) { - segmentPath = segmentPath.concat(el[0]); + graphPaths.forEach((graphPath) => { + if (isArray(graphPath[0])) { + segmentPath = segmentPath.concat(graphPath[0]); } }); } @@ -96,14 +126,14 @@ class ColoredlineSeries extends LineSeries { getSegmentPath(segment) { const series = this, segmentPath = [], step = series.options.step; // Build the segment line - segment.forEach((point, i) => { + segment.forEach((point, index) => { const plotX = Number(point.plotX), plotY = Number(point.plotY); let lastPoint; // Declarations: moveTo or lineTo - segmentPath.push(i ? 'L' : 'M'); + segmentPath.push(index ? 'L' : 'M'); // Step line? - if (step && i) { - lastPoint = segment[i - 1]; + if (step && index) { + lastPoint = segment[index - 1]; const lastPointPlotX = Number(lastPoint.plotX); if (step === 'right') { segmentPath.push(lastPoint.plotX, plotY, 'L'); @@ -145,8 +175,8 @@ class ColoredlineSeries extends LineSeries { } if (processedXData && processedYData) { // Find the closest distance between processed points - for (let i = processedXData.length - 1; i >= 0; i--) { - distance = processedXData[i] - processedXData[i - 1]; + for (let index = processedXData.length - 1; index >= 0; index--) { + distance = processedXData[index] - processedXData[index - 1]; if (distance > 0 && (typeof closestPointRange === 'undefined' || distance < closestPointRange)) { @@ -173,31 +203,31 @@ class ColoredlineSeries extends LineSeries { formatTrackerPath(trackerPath) { var _a, _b, _c, _d; const series = this, options = series.options, trackerPathLength = trackerPath.length, singlePoints = series.singlePoints, snap = (_b = (_a = series.chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0; - let singlePoint, i; + let singlePoint, index; // Extend end points. A better way would be to use round linecaps, // but those are not clickable in VML. if (trackerPathLength && !options.trackByArea) { - i = trackerPathLength + 1; - while (i--) { - if (((_c = trackerPath[i]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // Extend left side - const nextTrackerPath = trackerPath[i + 1]; + index = trackerPathLength + 1; + while (index--) { + if (((_c = trackerPath[index]) === null || _c === void 0 ? void 0 : _c.toString()) === 'M') { // Extend left side + const nextTrackerPath = trackerPath[index + 1]; if (typeof nextTrackerPath === 'number') { - trackerPath.splice(i + 1, 0, nextTrackerPath - snap, trackerPath[i + 2], 'L'); + trackerPath.splice(index + 1, 0, nextTrackerPath - snap, trackerPath[index + 2], 'L'); } } - if ((i && - ((_d = trackerPath[i]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || - i === trackerPathLength) { // Extend right side - const subPreviousTrackerPath = trackerPath[i - 2]; + if ((index && + ((_d = trackerPath[index]) === null || _d === void 0 ? void 0 : _d.toString()) === 'M') || + index === trackerPathLength) { // Extend right side + const subPreviousTrackerPath = trackerPath[index - 2]; if (typeof subPreviousTrackerPath === 'number') { - trackerPath.splice(i, 0, 'L', subPreviousTrackerPath + snap, trackerPath[i - 1]); + trackerPath.splice(index, 0, 'L', subPreviousTrackerPath + snap, trackerPath[index - 1]); } } } } // Handle single points - for (i = 0; i < singlePoints.length; i++) { - singlePoint = singlePoints[i]; + for (index = 0; index < singlePoints.length; index++) { + singlePoint = singlePoints[index]; const singlePointPlotX = Number(singlePoint.plotX); trackerPath.push('M', singlePointPlotX - snap, singlePoint.plotY, 'L', singlePointPlotX + snap, singlePoint.plotY); } @@ -237,8 +267,8 @@ class ColoredlineSeries extends LineSeries { if (track) { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) - .on('mouseout', (e) => { - pointer.onTrackerMouseOut(e); + .on('mouseout', (event) => { + pointer.onTrackerMouseOut(event); }); if (css) { track.css(css); @@ -270,9 +300,9 @@ class ColoredlineSeries extends LineSeries { } if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop - graphs.forEach((seg) => { - if (!seg.dashstyle) { - seg.attr({ 'stroke-width': lineWidth }); + graphs.forEach((graph) => { + if (!graph.dashstyle) { + graph.attr({ 'stroke-width': lineWidth }); } }); } @@ -281,26 +311,27 @@ class ColoredlineSeries extends LineSeries { getSegments() { var _a, _b; const series = this, points = series.points; - let segments = [], lastColor = 0, pointsLength = points.length, i; + let segments = [], lastColor = 0, pointsLength = points.length; if (pointsLength) { // No action required for [] // if connect nulls, just remove null points if (series.options.connectNulls) { // Iterate backwars for secure point removal - for (i = pointsLength - 1; i >= 0; --i) { - if (points[i].y === null) { - points.splice(i, 1); + for (let index = pointsLength - 1; index >= 0; --index) { + if (points[index].y === null) { + points.splice(index, 1); } } pointsLength = points.length; - points.forEach((_point, j) => { + points.forEach((_point, pointIndex) => { var _a; - if (j > 0 && - points[j].segmentColor !== points[j - 1].segmentColor) { + if (pointIndex > 0 && + points[pointIndex].segmentColor !== + points[pointIndex - 1].segmentColor) { segments.push({ - points: points.slice(lastColor, j + 1), - color: (_a = points[j - 1].segmentColor) !== null && _a !== void 0 ? _a : '' + points: points.slice(lastColor, pointIndex + 1), + color: (_a = points[pointIndex - 1].segmentColor) !== null && _a !== void 0 ? _a : '' }); - lastColor = j; + lastColor = pointIndex; } }); if (pointsLength) { @@ -324,52 +355,55 @@ class ColoredlineSeries extends LineSeries { } else { let previousColor = null; - points.forEach((point, j) => { + points.forEach((point, pointIndex) => { var _a, _b, _c, _d; - const colorChanged = j > 0 && (point.y === null || - points[j - 1].y === null || + const colorChanged = pointIndex > 0 && (point.y === null || + points[pointIndex - 1].y === null || (point.segmentColor !== - points[j - 1].segmentColor && - points[j].segmentColor !== previousColor)), colorExists = !!(((_a = points[j - 1]) === null || _a === void 0 ? void 0 : _a.segmentColor) && - points[j - 1].y !== null); - let p = points.slice(lastColor, j + 1); + points[pointIndex - 1].segmentColor && + points[pointIndex].segmentColor !== + previousColor)), colorExists = !!(((_a = points[pointIndex - 1]) === null || _a === void 0 ? void 0 : _a.segmentColor) && + points[pointIndex - 1].y !== null); + let formattedPoints = points.slice(lastColor, pointIndex + 1); if (colorChanged) { - if (p.length > 0) { + if (formattedPoints.length > 0) { // Do not create segments with null ponits - p.forEach((pointObject, k) => { + formattedPoints.forEach((pointObject, k) => { if (pointObject.y === null) { // Remove null points (might be on edges) - p.splice(k, 1); + formattedPoints.splice(k, 1); } }); segments.push({ - points: p, - color: (_b = (colorExists ? points[j - 1].segmentColor : + points: formattedPoints, + color: (_b = (colorExists ? + points[pointIndex - 1].segmentColor : previousColor)) !== null && _b !== void 0 ? _b : '' }); - lastColor = j; + lastColor = pointIndex; } } - else if (j === pointsLength - 1) { - let next = j + 1; + else if (pointIndex === pointsLength - 1) { + let next = pointIndex + 1; if (point.y === null) { next--; } - p = points.slice(lastColor, next); - if (p.length > 0) { + formattedPoints = points.slice(lastColor, next); + if (formattedPoints.length > 0) { // Do not create segments with null ponits - p.forEach((pointObject, k) => { - if (pointObject.y === null) { + formattedPoints.forEach((formattedPoint, formattedPointIndex) => { + if (formattedPoint.y === null) { // Remove null points (might be on edges) - p.splice(k, 1); + formattedPoints.splice(formattedPointIndex, 1); } }); segments.push({ - points: p, - color: (_c = (colorExists ? points[j - 1].segmentColor : + points: formattedPoints, + color: (_c = (colorExists ? + points[pointIndex - 1].segmentColor : previousColor)) !== null && _c !== void 0 ? _c : '' }); - lastColor = j; + lastColor = pointIndex; } } // Store previous color @@ -403,72 +437,44 @@ class ColoredlineSeries extends LineSeries { return graphPaths; } drawGraph() { - const series = this, options = series.options, colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', graphPaths = series.setSeriesGraphPathsAndSinglePoints(), graphPathLength = graphPaths.length; + const series = this, options = series.options, colorType = options.lineColor || series.color || '', graphPaths = series.setSeriesGraphPathsAndSinglePoints(), graphPathLength = graphPaths.length; let graphSegmentsLength = 0; - const getSegment = (segment, colorType) => { - const attribs = { - stroke: colorType, - 'stroke-width': lineWidth, - fill: 'none', - zIndex: 1 // #1069 - }; - let item; - if (dashStyle) { - attribs.dashstyle = dashStyle; - } - else if (roundCap) { - attribs['stroke-linecap'] = - attribs['stroke-linejoin'] = 'round'; - } - if (segment[1]) { - attribs.stroke = segment[1]; - } - if (isSVGPathSegment(segment[0])) { - item = series.chart.renderer.path(segment[0]) - .attr(attribs) - .add(series.group); - } - if (item === null || item === void 0 ? void 0 : item.shadow) { - item.shadow(!!options.shadow); - } - return item; - }; // Draw the graphs let graphs = series.graphs; if (graphs) { // Cancel running animations, #459 // do we have animation - graphPaths.forEach((segment, j) => { + graphPaths.forEach((segment, segmentIndex) => { // Update color and path - if (series.graphs[j] && isSVGPathSegment(segment[0])) { - series.graphs[j].attr({ + if (series.graphs[segmentIndex] && isSVGPathSegment(segment[0])) { + series.graphs[segmentIndex].attr({ d: segment[0], stroke: segment[1] }); } else { - const formattedSegment = getSegment(segment, colorType); + const formattedSegment = this.getSegment(segment, colorType); if (formattedSegment) { - series.graphs[j] = formattedSegment; + series.graphs[segmentIndex] = formattedSegment; } } }); } else if (graphPaths.length > 0) { // #1487 graphs = []; - graphPaths.forEach((segment, j) => { - const formattedSegment = getSegment(segment, colorType); + graphPaths.forEach((segment, segmentIndex) => { + const formattedSegment = this.getSegment(segment, colorType); if (formattedSegment) { - graphs[j] = formattedSegment; + graphs[segmentIndex] = formattedSegment; } }); series.graphs = graphs; } // Checks if series.graphs exists. #3 graphSegmentsLength = (series.graphs && series.graphs.length) || -1; - for (let j = graphSegmentsLength; j >= graphPathLength; j--) { - if (series.graphs && series.graphs[j]) { - series.graphs[j].destroy(); - series.graphs.splice(j, 1); + for (let index = graphSegmentsLength; index >= graphPathLength; index--) { + if (series.graphs && series.graphs[index]) { + series.graphs[index].destroy(); + series.graphs.splice(index, 1); } } } @@ -497,13 +503,97 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); * @name Highcharts.seriesTypes.coloredarea * */ -class ColoredAreaSeries extends AreaSeries { +class ColoredareaSeries extends ColoredlineSeries { + /** + * + * Constructor + * + */ + constructor() { + super(); + this.segments = []; + this.singlePoints = []; + } + /** + * + * Functions + * + */ + init(chart, options) { + options.threshold = options.threshold || null; + Series.prototype.init.call(this, chart, options); + } + closeSegment(path, segment, translatedThreshold) { + path.push('L', segment[segment.length - 1].plotX, translatedThreshold, 'L', segment[0].plotX, translatedThreshold); + } drawGraph() { - super.drawGraph.apply(this); - console.info('Inside coloredarea drawGraph method!'); + var _a; + ColoredlineSeries.prototype.drawGraph.call(this); + const series = this, graphs = series.graphs; + if (graphs) { // Cancel running animations, #459 + // do we have animation + (_a = series === null || series === void 0 ? void 0 : series.graphPaths) === null || _a === void 0 ? void 0 : _a.forEach((segment, index) => { + // Update color and path + if (series.graphs[index]) { + series.graphs[index].attr({ fill: segment[1] }); + } + }); + } + } + getSegmentPath(segment) { + var _a; + const segmentPath = ColoredlineSeries.prototype.getSegmentPath.call(this, segment), // Call base method + areaSegmentPath = [...segmentPath], // Work on a copy for the area path + options = this.options, segLength = segmentPath.length, + // TO DO: Test the below ?? 0. + translatedThreshold = this.yAxis.getThreshold((_a = options.threshold) !== null && _a !== void 0 ? _a : 0); // #2181 + let yBottom; + if (segLength === 3) { // For animation from 1 to two points + areaSegmentPath.push('L', segmentPath[1], segmentPath[2]); + } + if (options.stacking) { + for (let index = segment.length - 1; index >= 0; index--) { + yBottom = pick(segment[index].yBottom, translatedThreshold); + // Step line? + if (index < segment.length - 1 && options.step) { + areaSegmentPath.push(segment[index + 1].plotX, yBottom); + } + areaSegmentPath.push(segment[index].plotX, yBottom); + } + } + else { // Follow zero line back + this.closeSegment(areaSegmentPath, segment, translatedThreshold); + } + return areaSegmentPath; + } + setSeriesGraphPathsAndSinglePoints() { + const series = this, graphPaths = []; + let singlePoints = [], // Used in drawTracker + segmentPaths; + // Divide into segments and build graph and area paths + this.areaPaths = []; + series.segments.forEach((segment) => { + segmentPaths = series.getSegmentPath(segment.points); + // Add the segment to the graph, or a single point for tracking + if (segment.points.length > 1) { + graphPaths.push([segmentPaths, segment.color]); + } + else { + singlePoints = [...singlePoints, ...segment.points]; + } + }); + // Record it for use in drawGraph and drawTracker, and return graphPaths + series.singlePoints = singlePoints; + series.graphPaths = graphPaths; + return graphPaths; } } -SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); +/** + * + * Registry + * + */ +SeriesRegistry.registerSeriesType('coloredarea', ColoredareaSeries); } diff --git a/index.html b/index.html index 8cd4128..7bf9be1 100644 --- a/index.html +++ b/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/jest.config.ts b/jest.config.ts index dc59f6f..3510c7f 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -4,9 +4,7 @@ const config: Config = { preset: "ts-jest", clearMocks: true, testEnvironment: "jest-environment-jsdom", - modulePaths: ["."], - // TO DO: remove once refactored the coloredarea series. - testPathIgnorePatterns: ["tests/jest-snapshot/coloredarea-series.test.ts"] + modulePaths: ["."] }; export default config; diff --git a/package.json b/package.json index f929049..31f012e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "highcharts-multicolor-series", "version": "2.4.1", "description": "Highcharts plugin that adds new series: multicolor-series, where you can define color for each part of a path, between two points.", - "main": "ts/multicolor_series.ts", + "main": "dist/multicolor-series.js", "repository": { "type": "git", "url": "git+https://github.com/blacklabel/multicolor_series.git" diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap index 23d051c..569f097 100644 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Refactoring regression tests - series coloredarea. Graph element tests. The graph paths should match the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredarea. Graphs element tests. The graphs paths should match the snapshot. 1`] = ` [ "", "", @@ -134,7 +134,7 @@ exports[`Refactoring regression tests - series coloredarea. The series data shou "y": 70, }, ], - "seriesType": "line", + "seriesType": "coloredarea", } `; @@ -146,7 +146,7 @@ exports[`Refactoring regression tests - series coloredarea. The tracker element fill="none" stroke="rgba(192,192,192,0.002)" stroke-linejoin="round" - stroke-width="22" + stroke-width="2" visibility="visible" /> `; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index 923e996..26a1494 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,16 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://goo.gl/fbAQLP d -exports[`Refactoring regression tests - series coloredline. Graph element tests. The graph paths should match the snapshot. 1`] = ` -[ - "", - "", - "", - "", - "", -] -`; - -exports[`Refactoring regression tests - series coloredline. Graph element tests. The graphs paths should match the snapshot. 1`] = ` +exports[`Refactoring regression tests - series coloredline. Graphs element tests. The graphs paths should match the snapshot. 1`] = ` [ "", "", diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts index 5a35be1..081b240 100644 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ b/tests/jest-snapshot/coloredarea-series.test.ts @@ -1,5 +1,5 @@ import Highcharts from 'highcharts'; -import multicolorModule from '../../js/multicolor_series'; +import multicolorModule from '../../dist/multicolor-series'; import { isSeriesColored } from './../../typeguards'; import { generateFormattedSegments, generateFormattedSeries } from './helper'; @@ -65,25 +65,22 @@ describe('Refactoring regression tests - series coloredarea.', (): void => { throw Error('Series should be defined.'); } - if (!isSeriesColored(series, 'coloredarea')) { + if (!isSeriesColored(series)) { throw Error('Series type should be coloredarea.'); } - // TO DO: change to graphs once refactored the coloredarea series. - const graph = series.graph; + const graphs = series.graphs; - describe('Graph element tests.', (): void => { + describe('Graphs element tests.', (): void => { test( - 'The graph element should be an five elements array.', + 'The graphs element should be an five elements array.', (): void => { - // TO DO: check not needed once refactored the coloredarea series. - expect(graph?.length).toEqual(5); + expect(graphs.length).toEqual(5); } ); - test('The graph paths should match the snapshot.', (): void => { - // TO DO: check not needed once refactored the coloredarea series. - const paths = graph?.map((graph): string => + test('The graphs paths should match the snapshot.', (): void => { + const paths = graphs.map((graph): string => graph.element.outerHTML ); expect(paths).toMatchSnapshot(); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts index debf8a4..df16530 100644 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ b/tests/jest-snapshot/coloredline-series.test.ts @@ -65,13 +65,13 @@ describe('Refactoring regression tests - series coloredline.', (): void => { throw Error('Series should be defined.'); } - if (!isSeriesColored(series, 'coloredline')) { + if (!isSeriesColored(series)) { throw Error('Series type should be coloredline.'); } const graphs = series.graphs; - describe('Graph element tests.', (): void => { + describe('Graphs element tests.', (): void => { test( 'The graphs element should be an five elements array.', (): void => { diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index e1d61cc..ffbd1a3 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -1,8 +1,9 @@ import SeriesRegistry from 'highcharts-github/ts/Core/Series/SeriesRegistry'; import Utilities from 'highcharts-github/ts/Core/Utilities'; +import Series from 'highcharts-github/ts/Core/Series/Series'; import LineSeries from 'highcharts-github/ts/Series/Line/LineSeries'; -import AreaSeries from 'highcharts-github/ts/Series/Area/AreaSeries'; import type LinePoint from 'highcharts-github/ts/Series/Line/LinePoint'; +import type AreaPoint from 'highcharts-github/ts/Series/Area/AreaPoint'; import type PointerEvent from 'highcharts-github/ts/Core/PointerEvent'; import type SVGElement from 'highcharts-github/ts/Core/Renderer/SVG/SVGElement'; import type SVGAttributes from @@ -11,6 +12,9 @@ import type ColorType from 'highcharts-github/ts/Core/Color/ColorType'; import type SVGPath from 'highcharts-github/ts/Core/Renderer/SVG/SVGPath'; import { type StatesOptionsKey } from 'highcharts-github/ts/Core/Series/StatesOptions'; +import type { SeriesTypeOptions } from + 'highcharts-github/ts/Core/Series/SeriesType'; +import type Chart from 'highcharts-github/ts/Core/Chart/Chart'; import { type SeriesColoredPoint, type SeriesColoredSegment, @@ -24,18 +28,18 @@ import { * */ -const { isArray } = Utilities; +const { isArray, pick } = Utilities; const containsStringNumberNumberSequence = ( sequenceValue: SeriesColoredSegmentPath[] ): boolean => { let isSequenceFound = false; - - for (let i = 0; i < sequenceValue.length; i++) { + + for (let index = 0; index < sequenceValue.length; index++) { if ( - typeof sequenceValue[i] === 'string' && - typeof sequenceValue[i + 1] === 'number' && - typeof sequenceValue[i + 2] === 'number' + typeof sequenceValue[index] === 'string' && + typeof sequenceValue[index + 1] === 'number' && + typeof sequenceValue[index + 2] === 'number' ) { isSequenceFound = true; } else { @@ -43,31 +47,37 @@ const containsStringNumberNumberSequence = ( break; } - i += 2; + index += 2; } - + return isSequenceFound; }; /** * - * Declarations + * Type guards * */ -type SeriesColoredLinePoint = SeriesColoredPoint; +const isSVGPathSegment = ( + value: SeriesColoredSegmentPath[] +): value is SVGPath.Segment[] => containsStringNumberNumberSequence(value); -type SeriesColoredLineSegment = SeriesColoredSegment; +/** + * + * Coloredline series + * + */ /** * - * Type guards + * Declarations * */ -const isSVGPathSegment = ( - value: SeriesColoredSegmentPath[] -): value is SVGPath.Segment[] => containsStringNumberNumberSequence(value); +type SeriesColoredlinePoint = SeriesColoredPoint; + +type SeriesColoredlineSegment = SeriesColoredSegment; /** * @@ -78,7 +88,7 @@ const isSVGPathSegment = ( */ class ColoredlineSeries extends LineSeries { - + /** * * Constructor @@ -103,11 +113,11 @@ class ColoredlineSeries extends LineSeries { public pointRange: number | undefined; - public singlePoints: SeriesColoredLinePoint[]; + public singlePoints: SeriesColoredlinePoint[]; - public points!: SeriesColoredLinePoint[]; + public points!: SeriesColoredlinePoint[]; - public segments: SeriesColoredLineSegment[]; + public segments: SeriesColoredlineSegment[]; // Overrides graphPath property from the Series type. public graphPaths: SeriesColoredGraphPath[] | undefined; @@ -128,38 +138,38 @@ class ColoredlineSeries extends LineSeries { graphPaths: SeriesColoredGraphPath[] | undefined ): SeriesColoredSegmentPath[] { let segmentPath: SeriesColoredSegmentPath[] = []; - + if (graphPaths) { - graphPaths.forEach((el): void => { - if (isArray(el[0])) { - segmentPath = segmentPath.concat(el[0]); + graphPaths.forEach((graphPath): void => { + if (isArray(graphPath[0])) { + segmentPath = segmentPath.concat(graphPath[0]); } }); } - + return segmentPath; } public getSegmentPath ( - segment: SeriesColoredLinePoint[] + segment: SeriesColoredlinePoint[] ): SeriesColoredSegmentPath[] { const series = this, segmentPath: SeriesColoredSegmentPath[] = [], step = series.options.step; // Build the segment line - segment.forEach((point, i: number): void => { + segment.forEach((point, index: number): void => { const plotX = Number(point.plotX), plotY = Number(point.plotY); let lastPoint; // Declarations: moveTo or lineTo - segmentPath.push(i ? 'L' : 'M'); + segmentPath.push(index ? 'L' : 'M'); // Step line? - if (step && i) { - lastPoint = segment[i - 1]; + if (step && index) { + lastPoint = segment[index - 1]; const lastPointPlotX = Number(lastPoint.plotX); if (step === 'right') { @@ -235,8 +245,8 @@ class ColoredlineSeries extends LineSeries { if (processedXData && processedYData) { // Find the closest distance between processed points - for (let i = processedXData.length - 1; i >= 0; i--) { - distance = processedXData[i] - processedXData[i - 1]; + for (let index = processedXData.length - 1; index >= 0; index--) { + distance = processedXData[index] - processedXData[index - 1]; if ( distance > 0 && @@ -278,44 +288,44 @@ class ColoredlineSeries extends LineSeries { snap = series.chart.options.tooltip?.snap ?? 0; let singlePoint, - i; + index; // Extend end points. A better way would be to use round linecaps, // but those are not clickable in VML. if (trackerPathLength && !options.trackByArea) { - i = trackerPathLength + 1; + index = trackerPathLength + 1; - while (i--) { - if (trackerPath[i]?.toString() === 'M') { // Extend left side - const nextTrackerPath = trackerPath[i + 1]; + while (index--) { + if (trackerPath[index]?.toString() === 'M') { // Extend left side + const nextTrackerPath = trackerPath[index + 1]; if (typeof nextTrackerPath === 'number') { trackerPath.splice( - i + 1, + index + 1, 0, nextTrackerPath - snap, - trackerPath[i + 2], + trackerPath[index + 2], 'L' ); } } - + if ( ( - i && - trackerPath[i]?.toString() === 'M' + index && + trackerPath[index]?.toString() === 'M' ) || - i === trackerPathLength + index === trackerPathLength ) { // Extend right side - const subPreviousTrackerPath = trackerPath[i - 2]; + const subPreviousTrackerPath = trackerPath[index - 2]; if (typeof subPreviousTrackerPath === 'number') { trackerPath.splice( - i, + index, 0, 'L', subPreviousTrackerPath + snap, - trackerPath[i - 1] + trackerPath[index - 1] ); } } @@ -323,8 +333,8 @@ class ColoredlineSeries extends LineSeries { } // Handle single points - for (i = 0; i < singlePoints.length; i++) { - singlePoint = singlePoints[i]; + for (index = 0; index < singlePoints.length; index++) { + singlePoint = singlePoints[index]; const singlePointPlotX = Number(singlePoint.plotX); trackerPath.push( @@ -344,7 +354,7 @@ class ColoredlineSeries extends LineSeries { const series = this, options = series.options, trackByArea = options.trackByArea, - trackerPath = + trackerPath = trackByArea ? series.areaPaths : this.getPath(series.graphPaths), chart = series.chart, @@ -361,7 +371,7 @@ class ColoredlineSeries extends LineSeries { series.onMouseOver(); } }; - + const formattedTrackerPath = this.formatTrackerPath(trackerPath); // Draw the tracker @@ -376,7 +386,7 @@ class ColoredlineSeries extends LineSeries { stroke: trackerFill, fill: trackByArea ? trackerFill : 'none', 'stroke-width': options.lineWidth ?? 0 + - (trackByArea ? 0 : 2 * snap), + (trackByArea ? 0 : 2 * snap), zIndex: 2 }) .add(series.group); @@ -388,8 +398,8 @@ class ColoredlineSeries extends LineSeries { if (track) { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) - .on('mouseout', (e: PointerEvent): void => { - pointer.onTrackerMouseOut(e); + .on('mouseout', (event: PointerEvent): void => { + pointer.onTrackerMouseOut(event); }); if (css) { @@ -398,7 +408,7 @@ class ColoredlineSeries extends LineSeries { if ( typeof document.documentElement.ontouchstart !== - 'undefined' + 'undefined' ) { track.on('touchstart', onMouseOver); } @@ -438,9 +448,9 @@ class ColoredlineSeries extends LineSeries { if (graphs) { // Hover is turned off for dashed lines in VML // use attr because animate will cause any other animation on the graph to stop - graphs.forEach((seg: SVGElement): void => { - if (!seg.dashstyle) { - seg.attr({ 'stroke-width': lineWidth }); + graphs.forEach((graph: SVGElement): void => { + if (!graph.dashstyle) { + graph.attr({ 'stroke-width': lineWidth }); } }); } @@ -451,33 +461,33 @@ class ColoredlineSeries extends LineSeries { const series = this, points = series.points; - let segments: SeriesColoredLineSegment[] = [], + let segments: SeriesColoredlineSegment[] = [], lastColor = 0, - pointsLength = points.length, - i; + pointsLength = points.length; if (pointsLength) { // No action required for [] // if connect nulls, just remove null points if (series.options.connectNulls) { // Iterate backwars for secure point removal - for (i = pointsLength - 1; i >= 0; --i) { - if (points[i].y === null) { - points.splice(i, 1); + for (let index = pointsLength - 1; index >= 0; --index) { + if (points[index].y === null) { + points.splice(index, 1); } } pointsLength = points.length; - points.forEach((_point, j): void => { + points.forEach((_point, pointIndex): void => { if ( - j > 0 && - points[j].segmentColor !== points[j - 1].segmentColor + pointIndex > 0 && + points[pointIndex].segmentColor !== + points[pointIndex - 1].segmentColor ) { segments.push({ - points: points.slice(lastColor, j + 1), - color: points[j - 1].segmentColor ?? '' + points: points.slice(lastColor, pointIndex + 1), + color: points[pointIndex - 1].segmentColor ?? '' }); - lastColor = j; + lastColor = pointIndex; } }); @@ -504,68 +514,76 @@ class ColoredlineSeries extends LineSeries { } else { let previousColor: string | null = null; - points.forEach((point, j): void => { - const colorChanged = j > 0 && ( + points.forEach((point, pointIndex): void => { + const colorChanged = pointIndex > 0 && ( point.y === null || - points[j - 1].y === null || + points[pointIndex - 1].y === null || ( point.segmentColor !== - points[j - 1].segmentColor && - points[j].segmentColor !== previousColor + points[pointIndex - 1].segmentColor && + points[pointIndex].segmentColor !== + previousColor ) ), - colorExists = !!(points[j - 1]?.segmentColor && - points[j - 1].y !== null); + colorExists = !!(points[pointIndex - 1]?.segmentColor && + points[pointIndex - 1].y !== null); - let p = points.slice(lastColor, j + 1); + let formattedPoints = + points.slice(lastColor, pointIndex + 1); if (colorChanged) { - if (p.length > 0) { + if (formattedPoints.length > 0) { // Do not create segments with null ponits - p.forEach((pointObject, k): void => { + formattedPoints.forEach((pointObject, k): void => { if (pointObject.y === null) { // Remove null points (might be on edges) - p.splice(k, 1); + formattedPoints.splice(k, 1); } }); segments.push({ - points: p, + points: formattedPoints, color: ( - colorExists ? points[j - 1].segmentColor : + colorExists ? + points[pointIndex - 1].segmentColor : previousColor ) ?? '' }); - - lastColor = j; + + lastColor = pointIndex; } - } else if (j === pointsLength - 1) { - let next = j + 1; + } else if (pointIndex === pointsLength - 1) { + let next = pointIndex + 1; if (point.y === null) { next--; } - p = points.slice(lastColor, next); - - if (p.length > 0) { + formattedPoints = points.slice(lastColor, next); + + if (formattedPoints.length > 0) { // Do not create segments with null ponits - p.forEach((pointObject, k): void => { - if (pointObject.y === null) { + formattedPoints.forEach(( + formattedPoint, formattedPointIndex + ): void => { + if (formattedPoint.y === null) { // Remove null points (might be on edges) - p.splice(k, 1); + formattedPoints.splice( + formattedPointIndex, 1 + ); } }); segments.push({ - points: p, + points: formattedPoints, color: ( - colorExists ? points[j - 1].segmentColor : + colorExists ? + points[pointIndex - 1].segmentColor : previousColor ) ?? '' }); - - lastColor = j; + + lastColor = pointIndex; } } @@ -585,7 +603,7 @@ class ColoredlineSeries extends LineSeries { const series = this, graphPaths: SeriesColoredGraphPath[] = []; - let singlePoints: SeriesColoredLinePoint[] = [], // Used in drawTracker + let singlePoints: SeriesColoredlinePoint[] = [], // Used in drawTracker segmentPath; // Divide into segments and build graph and area paths @@ -607,82 +625,87 @@ class ColoredlineSeries extends LineSeries { return graphPaths; } - public drawGraph(): void { + public getSegment = ( + segment: SeriesColoredGraphPath, + colorType: ColorType + ): SVGElement | undefined => { const series = this, options = series.options, - colorType = options.lineColor || series.color || '', lineWidth = options.lineWidth, dashStyle = options.dashStyle, roundCap = options.linecap !== 'square', - graphPaths = series.setSeriesGraphPathsAndSinglePoints(), - graphPathLength = graphPaths.length; - - let graphSegmentsLength = 0; - - const getSegment = ( - segment: SeriesColoredGraphPath, - colorType: ColorType - ): SVGElement | undefined => { - const attribs: SVGAttributes = { + attribs: SVGAttributes = { stroke: colorType, 'stroke-width': lineWidth, fill: 'none', zIndex: 1 // #1069 }; - let item; + let item; - if (dashStyle) { - attribs.dashstyle = dashStyle; - } else if (roundCap) { - attribs['stroke-linecap'] = - attribs['stroke-linejoin'] = 'round'; - } + if (dashStyle) { + attribs.dashstyle = dashStyle; + } else if (roundCap) { + attribs['stroke-linecap'] = + attribs['stroke-linejoin'] = 'round'; + } - if (segment[1]) { - attribs.stroke = segment[1]; - } + if (segment[1]) { + attribs.stroke = segment[1]; + } - if (isSVGPathSegment(segment[0])) { - item = series.chart.renderer.path(segment[0]) - .attr(attribs) - .add(series.group); - } + if (isSVGPathSegment(segment[0])) { + item = series.chart.renderer.path(segment[0]) + .attr(attribs) + .add(series.group); + } - if (item?.shadow) { - item.shadow(!!options.shadow); - } + if (item?.shadow) { + item.shadow(!!options.shadow); + } - return item; - }; + return item; + }; + + public drawGraph(): void { + const series = this, + options = series.options, + colorType = options.lineColor || series.color || '', + graphPaths = series.setSeriesGraphPathsAndSinglePoints(), + graphPathLength = graphPaths.length; + + let graphSegmentsLength = 0; // Draw the graphs let graphs = series.graphs; if (graphs) { // Cancel running animations, #459 // do we have animation - graphPaths.forEach((segment, j): void => { + graphPaths.forEach((segment, segmentIndex): void => { // Update color and path - if (series.graphs[j] && isSVGPathSegment(segment[0])) { - series.graphs[j].attr({ + if ( + series.graphs[segmentIndex] && isSVGPathSegment(segment[0]) + ) { + series.graphs[segmentIndex].attr({ d: segment[0], stroke: segment[1] }); } else { - const formattedSegment = getSegment(segment, colorType); + const formattedSegment = + this.getSegment(segment, colorType); if (formattedSegment) { - series.graphs[j] = formattedSegment; + series.graphs[segmentIndex] = formattedSegment; } } }); } else if (graphPaths.length > 0) { // #1487 graphs = []; - graphPaths.forEach((segment, j): void => { - const formattedSegment = getSegment(segment, colorType); + graphPaths.forEach((segment, segmentIndex): void => { + const formattedSegment = this.getSegment(segment, colorType); if (formattedSegment) { - graphs[j] = formattedSegment; + graphs[segmentIndex] = formattedSegment; } }); @@ -691,10 +714,14 @@ class ColoredlineSeries extends LineSeries { // Checks if series.graphs exists. #3 graphSegmentsLength = (series.graphs && series.graphs.length) || -1; - for (let j = graphSegmentsLength; j >= graphPathLength; j--) { - if (series.graphs && series.graphs[j]) { - series.graphs[j].destroy(); - series.graphs.splice(j, 1); + for ( + let index = graphSegmentsLength; + index >= graphPathLength; + index-- + ) { + if (series.graphs && series.graphs[index]) { + series.graphs[index].destroy(); + series.graphs.splice(index, 1); } } } @@ -722,6 +749,22 @@ class ColoredlineSeries extends LineSeries { SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); +/** + * + * Coloredarea series + * + */ + +/** + * + * Declarations + * + */ + +type SeriesColoredareaPoint = SeriesColoredPoint; + +type SeriesColoredareaSegment = SeriesColoredSegment; + /** * * @private @@ -730,13 +773,148 @@ SeriesRegistry.registerSeriesType('coloredline', ColoredlineSeries); * */ -class ColoredAreaSeries extends AreaSeries { - drawGraph(): void { - super.drawGraph.apply(this); - console.info('Inside coloredarea drawGraph method!'); +class ColoredareaSeries extends ColoredlineSeries { + + /** + * + * Constructor + * + */ + + constructor() { + super(); + + this.segments = []; + this.singlePoints = []; + } + + /** + * + * Properties + * + */ + + public singlePoints: SeriesColoredareaPoint[]; + + public points!: SeriesColoredareaPoint[]; + + public segments: SeriesColoredareaSegment[]; + + /** + * + * Functions + * + */ + + public init(chart: Chart, options: DeepPartial): void { + options.threshold = options.threshold || null; + Series.prototype.init.call(this, chart, options); + } + + public closeSegment( + path: SeriesColoredSegmentPath[], + segment: SeriesColoredareaPoint[], + translatedThreshold: number + ): void { + path.push( + 'L', + segment[segment.length - 1].plotX, + translatedThreshold, + 'L', + segment[0].plotX, + translatedThreshold + ); + } + + public drawGraph(): void { + ColoredlineSeries.prototype.drawGraph.call(this); + + const series = this, + graphs = series.graphs; + + if (graphs) { // Cancel running animations, #459 + // do we have animation + series?.graphPaths?.forEach((segment, index): void => { + + // Update color and path + if (series.graphs[index]) { + series.graphs[index].attr({ fill: segment[1] }); + } + }); + } + } + + public getSegmentPath( + segment: SeriesColoredareaPoint[] + ): SeriesColoredSegmentPath[] { + const segmentPath = + ColoredlineSeries.prototype.getSegmentPath.call(this, segment), // Call base method + areaSegmentPath = [...segmentPath], // Work on a copy for the area path + options = this.options, + segLength = segmentPath.length, + // TO DO: Test the below ?? 0. + translatedThreshold = + this.yAxis.getThreshold(options.threshold ?? 0); // #2181 + + let yBottom; + + if (segLength === 3) { // For animation from 1 to two points + areaSegmentPath.push('L', segmentPath[1], segmentPath[2]); + } + + if (options.stacking) { + for (let index = segment.length - 1; index >= 0; index--) { + yBottom = pick(segment[index].yBottom, translatedThreshold); + + // Step line? + if (index < segment.length - 1 && options.step) { + areaSegmentPath.push(segment[index + 1].plotX, yBottom); + } + + areaSegmentPath.push(segment[index].plotX, yBottom); + } + } else { // Follow zero line back + this.closeSegment(areaSegmentPath, segment, translatedThreshold); + } + + return areaSegmentPath; + } + + public setSeriesGraphPathsAndSinglePoints(): SeriesColoredGraphPath[] { + const series = this, + graphPaths: SeriesColoredGraphPath[] = []; + + let singlePoints: SeriesColoredareaPoint[] = [], // Used in drawTracker + segmentPaths; + + // Divide into segments and build graph and area paths + this.areaPaths = []; + series.segments.forEach((segment): void => { + segmentPaths = series.getSegmentPath(segment.points); + + // Add the segment to the graph, or a single point for tracking + if (segment.points.length > 1) { + graphPaths.push([segmentPaths, segment.color]); + } else { + singlePoints = [...singlePoints, ...segment.points]; + } + }); + + // Record it for use in drawGraph and drawTracker, and return graphPaths + series.singlePoints = singlePoints; + series.graphPaths = graphPaths; + + return graphPaths; + } } -SeriesRegistry.registerSeriesType('coloredarea', ColoredAreaSeries); +/** + * + * Registry + * + */ + +SeriesRegistry.registerSeriesType('coloredarea', ColoredareaSeries); -export { ColoredlineSeries, ColoredAreaSeries }; +export { ColoredlineSeries, ColoredareaSeries }; diff --git a/typeguards.ts b/typeguards.ts index 382a58f..cc2a632 100644 --- a/typeguards.ts +++ b/typeguards.ts @@ -1,12 +1,15 @@ import { Series, Point } from 'highcharts'; -import { ColoredlineSeries } from './ts/MulticolorSeries'; +import { ColoredlineSeries, ColoredareaSeries } from './ts/MulticolorSeries'; import { SeriesColoredPoint, SeriesColoredSegment } from './types'; type ExtendedColoredlineSeries = ColoredlineSeries & { segments: SeriesColoredSegment>[]; }; +type ExtendedColoredareaSeries = ColoredareaSeries & { + segments: SeriesColoredSegment>[]; +}; + export const isSeriesColored = ( - series: Series | ExtendedColoredlineSeries, - type: 'coloredline' | 'coloredarea' -): series is ExtendedColoredlineSeries => true; + series: Series | ExtendedColoredlineSeries | ExtendedColoredareaSeries +): series is ExtendedColoredlineSeries | ExtendedColoredareaSeries => true; From 1ccead570b287cbd274ddf5ac1c3d5141bf449e2 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 12 Dec 2023 12:58:12 +0100 Subject: [PATCH 20/66] Refactored MulticolorSeries.ts file. --- .../jest-snapshot/__snapshots__/coloredline-series.test.ts.snap | 2 +- ts/MulticolorSeries.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap index 26a1494..a392ff7 100644 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP d +// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Refactoring regression tests - series coloredline. Graphs element tests. The graphs paths should match the snapshot. 1`] = ` [ diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index ffbd1a3..b3b58f2 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -852,7 +852,6 @@ class ColoredareaSeries extends ColoredlineSeries { areaSegmentPath = [...segmentPath], // Work on a copy for the area path options = this.options, segLength = segmentPath.length, - // TO DO: Test the below ?? 0. translatedThreshold = this.yAxis.getThreshold(options.threshold ?? 0); // #2181 From 0d0f2eb90dcf8b4d70bdb161ad91dc5d739c9fa7 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 12 Dec 2023 13:02:57 +0100 Subject: [PATCH 21/66] Added MulticolorSeries.ts file formatting. --- ts/MulticolorSeries.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index b3b58f2..c706f8f 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -386,7 +386,7 @@ class ColoredlineSeries extends LineSeries { stroke: trackerFill, fill: trackByArea ? trackerFill : 'none', 'stroke-width': options.lineWidth ?? 0 + - (trackByArea ? 0 : 2 * snap), + (trackByArea ? 0 : 2 * snap), zIndex: 2 }) .add(series.group); @@ -408,7 +408,7 @@ class ColoredlineSeries extends LineSeries { if ( typeof document.documentElement.ontouchstart !== - 'undefined' + 'undefined' ) { track.on('touchstart', onMouseOver); } From 6ba817c93c69786d04f272a24b62f25a89402921 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 19 Dec 2023 12:11:49 +0100 Subject: [PATCH 22/66] Wojtek --- package.json | 3 +- testem.json | 10 +++++++ tests/unit-tests/coloredarea.test.js | 41 ++++++++++++++++++++++++++++ tests/unit-tests/coloredline.test.js | 41 ++++++++++++++++++++++++++++ tests/unit-tests/index.html | 28 +++++++++++++++++++ 5 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 testem.json create mode 100644 tests/unit-tests/coloredarea.test.js create mode 100644 tests/unit-tests/coloredline.test.js create mode 100644 tests/unit-tests/index.html diff --git a/package.json b/package.json index 31f012e..c322025 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "homepage": "https://github.com/blacklabel/multicolor_series#readme", "types": "types.d.ts", "scripts": { - "test": "jest", + "test": "testem", "build": "gulp build", "lint": "gulp lint", "prepare": "husky install" @@ -45,6 +45,7 @@ "husky": "^8.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "testem": "^3.11.0", "through2": "^4.0.2", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", diff --git a/testem.json b/testem.json new file mode 100644 index 0000000..8ae833c --- /dev/null +++ b/testem.json @@ -0,0 +1,10 @@ +{ + "framework": "qunit", + "test_page": "./tests/unit-tests/index.html", + "launch_in_ci": [ + "Chrome" + ], + "launch_in_dev": [ + "Chrome" + ] +} diff --git a/tests/unit-tests/coloredarea.test.js b/tests/unit-tests/coloredarea.test.js new file mode 100644 index 0000000..de6a08b --- /dev/null +++ b/tests/unit-tests/coloredarea.test.js @@ -0,0 +1,41 @@ +const chartColoredarea = Highcharts.chart('coloredarea-container', { + series: [ + { + type: 'coloredarea', + data: [ + { + y: 40, + segmentColor: 'red' + }, + { + y: 60, + segmentColor: 'blue' + }, + { + y: 30, + segmentColor: 'yellow' + }, + { + y: 10, + segmentColor: 'green' + }, + { + y: 50, + segmentColor: 'green' + }, + { + y: 20, + segmentColor: 'brown' + }, + { + y: 70, + segmentColor: 'pink' + } + ] + } + ] +}); + +QUnit.test('Should be coloredarea series.', (assert) => { + assert.equal(chartColoredarea.series[0].type, 'coloredarea', 'Coloredarea series rendered properly!'); +}); diff --git a/tests/unit-tests/coloredline.test.js b/tests/unit-tests/coloredline.test.js new file mode 100644 index 0000000..9709ac1 --- /dev/null +++ b/tests/unit-tests/coloredline.test.js @@ -0,0 +1,41 @@ +const chartColoredline = Highcharts.chart('coloredline-container', { + series: [ + { + type: 'coloredline', + data: [ + { + y: 40, + segmentColor: 'red' + }, + { + y: 60, + segmentColor: 'blue' + }, + { + y: 30, + segmentColor: 'yellow' + }, + { + y: 10, + segmentColor: 'green' + }, + { + y: 50, + segmentColor: 'green' + }, + { + y: 20, + segmentColor: 'brown' + }, + { + y: 70, + segmentColor: 'pink' + } + ] + } + ] +}); + +QUnit.test('Should be coloredline series.', (assert) => { + assert.equal(chartColoredline.series[0].type, 'coloredline', 'Coloredline series rendered properly!'); +}); diff --git a/tests/unit-tests/index.html b/tests/unit-tests/index.html new file mode 100644 index 0000000..27a5552 --- /dev/null +++ b/tests/unit-tests/index.html @@ -0,0 +1,28 @@ + + + + +Test multicolor series + + + + + +
+
+ + +
+
+ + + + + + + + + + + + From 513d9ba67c709933cd6cde3e8ac95870978e892a Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 11:32:24 +0100 Subject: [PATCH 23/66] Added a QUnit package. --- .husky/pre-commit | 2 +- package.json | 4 +- pnpm-lock.yaml | 1458 ++++++++++++++++++++++++++++++----- testem.json | 3 +- tests/unit-tests/index.html | 3 +- 5 files changed, 1265 insertions(+), 205 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 75fac8e..d4a43dd 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm run lint +npm run pre-commit diff --git a/package.json b/package.json index c322025..5dfea7c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "test": "testem", "build": "gulp build", "lint": "gulp lint", - "prepare": "husky install" + "prepare": "husky install", + "pre-commit": "testem ci -R dot" }, "devDependencies": { "@types/jest": "^29.5.6", @@ -45,6 +46,7 @@ "husky": "^8.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "qunit": "^2.20.0", "testem": "^3.11.0", "through2": "^4.0.2", "ts-jest": "^29.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9a25d7..2387285 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ dependencies: version: 11.2.0 highcharts-github: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/310d23d3ff26f6d7a04c7e1019676b64ce038505 + version: github.com/highcharts/highcharts/d0f396a15e6d7a937a6f90f32951f48deb4d1423 devDependencies: '@types/jest': @@ -66,19 +66,25 @@ devDependencies: version: 8.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 + qunit: + specifier: ^2.20.0 + version: 2.20.0 + testem: + specifier: ^3.11.0 + version: 3.11.0 through2: specifier: ^4.0.2 version: 4.0.2 ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.10.0)(typescript@5.2.2) + version: 10.9.1(@types/node@20.10.6)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -114,20 +120,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.5: - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 + '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -137,23 +143,23 @@ packages: - supports-color dev: true - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.1 + browserslist: 4.22.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -168,30 +174,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -208,14 +214,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-string-parser@7.23.4: @@ -233,13 +239,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.5: - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -253,140 +259,140 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -395,30 +401,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 dev: true - /@babel/traverse@7.23.5: - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -459,7 +465,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.23.0 + globals: 13.24.0 ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -505,7 +511,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -526,14 +532,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -561,7 +567,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-mock: 29.7.0 dev: true @@ -588,7 +594,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -621,7 +627,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -683,7 +689,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -709,7 +715,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.0 + '@types/node': 20.10.6 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -769,7 +775,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 dev: true /@sinclair/typebox@0.27.8: @@ -788,6 +794,10 @@ packages: '@sinonjs/commons': 3.0.0 dev: true + /@socket.io/component-emitter@3.1.0: + resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -812,30 +822,40 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 - '@types/babel__generator': 7.6.7 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true - /@types/babel__generator@7.6.7: - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true - /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@babel/types': 7.23.5 + '@types/node': 20.10.6 dev: true /@types/expect@1.20.4: @@ -845,7 +865,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.10.6 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -880,7 +900,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.10.6 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -889,8 +909,8 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.10.0: - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} dependencies: undici-types: 5.26.5 dev: true @@ -919,7 +939,7 @@ packages: resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.10.0 + '@types/node': 20.10.6 dev: true /@types/yargs-parser@21.0.3: @@ -1063,16 +1083,29 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: true + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead dev: true + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn: 8.11.3 + acorn-walk: 8.3.1 dev: true /acorn-jsx@5.3.2(acorn@7.4.1): @@ -1083,16 +1116,16 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.2 + acorn: 8.11.3 dev: true - /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} dev: true @@ -1102,8 +1135,8 @@ packages: hasBin: true dev: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1238,10 +1271,22 @@ packages: buffer-equal: 1.0.1 dev: true + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + /archy@1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} dev: true + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: true + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true @@ -1320,6 +1365,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + /array-initial@1.1.0: resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==} engines: {node: '>=0.10.0'} @@ -1405,6 +1454,10 @@ packages: async-done: 1.3.2 dev: true + /async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + dev: true + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -1415,17 +1468,17 @@ packages: hasBin: true dev: true - /babel-jest@29.7.0(@babel/core@7.23.5): + /babel-jest@29.7.0(@babel/core@7.23.7): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.5) + babel-preset-jest: 29.6.3(@babel/core@7.23.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -1451,40 +1504,40 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.5): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.5): + '@babel/core': 7.23.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.7): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) dev: true /bach@1.2.0: @@ -1502,10 +1555,21 @@ packages: now-and-later: 2.0.1 dev: true + /backbone@1.5.0: + resolution: {integrity: sha512-RPKlstw5NW+rD2X4PnEnvgLhslRnXOugXw2iBloHkPMgOxvakP1/A+tZIGM3qCm8uvZeEf8zMm0uvcK1JwL+IA==} + dependencies: + underscore: 1.13.6 + dev: true + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: true + /base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} @@ -1541,6 +1605,30 @@ packages: dev: true optional: true + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1582,15 +1670,15 @@ packages: fill-range: 7.0.1 dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001565 - electron-to-chromium: 1.4.596 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001572 + electron-to-chromium: 1.4.617 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true /bs-logger@0.2.6: @@ -1623,6 +1711,16 @@ packages: xtend: 4.0.2 dev: true + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + /cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} @@ -1679,8 +1777,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001565: - resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} dev: true /chalk@1.1.3: @@ -1720,6 +1818,12 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /charm@1.0.2: + resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + dependencies: + inherits: 2.0.4 + dev: true + /chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies @@ -1884,10 +1988,41 @@ packages: delayed-stream: 1.0.0 dev: true + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + /component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1902,6 +2037,192 @@ packages: typedarray: 0.0.6 dev: true + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /consolidate@0.16.0(mustache@4.2.0): + resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==} + engines: {node: '>= 0.10.0'} + deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog + peerDependencies: + arc-templates: ^0.5.3 + atpl: '>=0.7.6' + babel-core: ^6.26.3 + bracket-template: ^1.1.5 + coffee-script: ^1.12.7 + dot: ^1.1.3 + dust: ^0.3.0 + dustjs-helpers: ^1.7.4 + dustjs-linkedin: ^2.7.5 + eco: ^1.1.0-rc-3 + ect: ^0.5.9 + ejs: ^3.1.5 + haml-coffee: ^1.14.1 + hamlet: ^0.3.3 + hamljs: ^0.6.2 + handlebars: ^4.7.6 + hogan.js: ^3.0.2 + htmling: ^0.0.8 + jade: ^1.11.0 + jazz: ^0.0.18 + jqtpl: ~1.1.0 + just: ^0.1.8 + liquid-node: ^3.0.1 + liquor: ^0.0.5 + lodash: ^4.17.20 + marko: ^3.14.4 + mote: ^0.2.0 + mustache: ^4.0.1 + nunjucks: ^3.2.2 + plates: ~0.4.11 + pug: ^3.0.0 + qejs: ^3.0.5 + ractive: ^1.3.12 + razor-tmpl: ^1.3.1 + react: ^16.13.1 + react-dom: ^16.13.1 + slm: ^2.0.0 + squirrelly: ^5.1.0 + swig: ^1.4.2 + swig-templates: ^2.0.3 + teacup: ^2.0.0 + templayed: '>=0.2.3' + then-jade: '*' + then-pug: '*' + tinyliquid: ^0.2.34 + toffee: ^0.3.6 + twig: ^1.15.2 + twing: ^5.0.2 + underscore: ^1.11.0 + vash: ^0.13.0 + velocityjs: ^2.0.1 + walrus: ^0.10.1 + whiskers: ^0.4.0 + peerDependenciesMeta: + arc-templates: + optional: true + atpl: + optional: true + babel-core: + optional: true + bracket-template: + optional: true + coffee-script: + optional: true + dot: + optional: true + dust: + optional: true + dustjs-helpers: + optional: true + dustjs-linkedin: + optional: true + eco: + optional: true + ect: + optional: true + ejs: + optional: true + haml-coffee: + optional: true + hamlet: + optional: true + hamljs: + optional: true + handlebars: + optional: true + hogan.js: + optional: true + htmling: + optional: true + jade: + optional: true + jazz: + optional: true + jqtpl: + optional: true + just: + optional: true + liquid-node: + optional: true + liquor: + optional: true + lodash: + optional: true + marko: + optional: true + mote: + optional: true + mustache: + optional: true + nunjucks: + optional: true + plates: + optional: true + pug: + optional: true + qejs: + optional: true + ractive: + optional: true + razor-tmpl: + optional: true + react: + optional: true + react-dom: + optional: true + slm: + optional: true + squirrelly: + optional: true + swig: + optional: true + swig-templates: + optional: true + teacup: + optional: true + templayed: + optional: true + then-jade: + optional: true + then-pug: + optional: true + tinyliquid: + optional: true + toffee: + optional: true + twig: + optional: true + twing: + optional: true + underscore: + optional: true + vash: + optional: true + velocityjs: + optional: true + walrus: + optional: true + whiskers: + optional: true + dependencies: + bluebird: 3.7.2 + mustache: 4.2.0 + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true @@ -1910,6 +2231,20 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + /copy-descriptor@0.1.1: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} @@ -1926,7 +2261,15 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /create-jest@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /create-jest@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1935,7 +2278,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2131,6 +2474,20 @@ packages: engines: {node: '>=0.4.0'} dev: true + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + /detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -2195,8 +2552,12 @@ packages: object.defaults: 1.1.0 dev: true - /electron-to-chromium@1.4.596: - resolution: {integrity: sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg==} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.617: + resolution: {integrity: sha512-sYNE3QxcDS4ANW1k4S/wWYMXjCVcFSOX3Bg8jpuMFaXt/x8JCmp0R1Xe1ZXDX4WXnSRBf+GJ/3eGWicUuQq5cg==} dev: true /emittery@0.13.1: @@ -2212,12 +2573,42 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true + /engine.io-parser@5.2.1: + resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} + engines: {node: '>=10.0.0'} + dev: true + + /engine.io@6.5.4: + resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 20.10.6 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.4 + engine.io-parser: 5.2.1 + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -2276,6 +2667,10 @@ packages: engines: {node: '>=6'} dev: true + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2421,7 +2816,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -2457,8 +2852,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 dev: true @@ -2497,6 +2892,32 @@ packages: engines: {node: '>=0.10.0'} dev: true + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events-to-array@1.1.2: + resolution: {integrity: sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==} + dev: true + + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2564,6 +2985,45 @@ packages: jest-util: 29.7.0 dev: true + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: @@ -2665,8 +3125,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 dev: true @@ -2736,6 +3196,21 @@ packages: to-regex-range: 5.0.1 dev: true + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /find-up@1.1.2: resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} engines: {node: '>=0.10.0'} @@ -2787,6 +3262,16 @@ packages: parse-filepath: 1.0.2 dev: true + /fireworm@0.7.2: + resolution: {integrity: sha512-GjebTzq+NKKhfmDxjKq3RXwQcN9xRmZWhnnuC9L+/x5wBQtR0aaQM50HsjrzJ2wc28v1vSdfOpELok0TKR4ddg==} + dependencies: + async: 0.2.10 + is-type: 0.0.1 + lodash.debounce: 3.1.1 + lodash.flatten: 3.0.2 + minimatch: 3.1.2 + dev: true + /first-chunk-stream@1.0.0: resolution: {integrity: sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==} engines: {node: '>=0.10.0'} @@ -2837,6 +3322,16 @@ packages: readable-stream: 2.3.8 dev: true + /follow-redirects@1.15.4: + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + /for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} @@ -2869,6 +3364,11 @@ packages: mime-types: 2.1.35 dev: true + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + /fragment-cache@0.2.1: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} @@ -2876,6 +3376,11 @@ packages: map-cache: 0.2.2 dev: true + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + /fs-mkdirp-stream@1.0.0: resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} engines: {node: '>= 0.10'} @@ -2916,6 +3421,20 @@ packages: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2949,6 +3468,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3092,13 +3618,17 @@ packages: type-fest: 0.8.1 dev: true - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3111,6 +3641,10 @@ packages: slash: 3.0.0 dev: true + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + /glogg@1.0.2: resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} engines: {node: '>= 0.10'} @@ -3142,6 +3676,10 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true + /growly@1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true + /gulp-bump@2.1.0: resolution: {integrity: sha512-NPF2dDFiW1n0htapKFtxhTbnA8MgqJGJbWLgn+IJCqV4o+m6wccleZC67CONbdWsY44j7M6utX9jH64v4PSpAQ==} engines: {node: '>= 0.9.0'} @@ -3228,7 +3766,7 @@ packages: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.10.6 '@types/vinyl': 2.0.11 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -3345,6 +3883,10 @@ packages: engines: {node: '>= 0.4'} dev: true + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + /has-value@0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} @@ -3409,6 +3951,17 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -3420,6 +3973,17 @@ packages: - supports-color dev: true + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.4 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -3538,6 +4102,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + /is-absolute@1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -3597,6 +4166,12 @@ packages: is-data-descriptor: 1.0.1 dev: true + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + /is-dotfile@1.0.3: resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} engines: {node: '>=0.10.0'} @@ -3751,6 +4326,12 @@ packages: engines: {node: '>=8'} dev: true + /is-type@0.0.1: + resolution: {integrity: sha512-YwJh/zBVrcJ90aAnPBM0CbHvm7lG9ao7lIFeqTZ1UQj4iFLpM5CikdaU+dGGesrMJwxLqPGmjjrUrQ6Kn3Zh+w==} + dependencies: + core-util-is: 1.0.3 + dev: true + /is-unc-path@1.0.0: resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} engines: {node: '>=0.10.0'} @@ -3777,6 +4358,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -3810,8 +4398,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -3823,8 +4411,8 @@ packages: resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 @@ -3885,7 +4473,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3906,7 +4494,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3920,10 +4508,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3934,7 +4522,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3946,11 +4534,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 - babel-jest: 29.7.0(@babel/core@7.23.5) + '@types/node': 20.10.6 + babel-jest: 29.7.0(@babel/core@7.23.7) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -3969,7 +4557,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.10.0)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.10.6)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4016,7 +4604,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4033,7 +4621,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4049,7 +4637,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.0 + '@types/node': 20.10.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4100,7 +4688,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-util: 29.7.0 dev: true @@ -4155,7 +4743,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4186,7 +4774,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4209,15 +4797,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.5 + '@babel/core': 7.23.7 + '@babel/generator': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/types': 7.23.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -4238,7 +4826,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4263,7 +4851,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.0 + '@types/node': 20.10.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4275,13 +4863,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.10.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.10.0)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4294,7 +4882,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -4331,7 +4919,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.2 + acorn: 8.11.3 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -4354,7 +4942,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.14.2 + ws: 8.16.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -4526,6 +5114,13 @@ packages: resolution: {integrity: sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==} dev: true + /lodash._baseflatten@3.1.4: + resolution: {integrity: sha512-fESngZd+X4k+GbTxdMutf8ohQa0s3sJEHIcwtu4/LsIQ2JTDzdRxDCMQjW+ezzwRitLmHnacVVmosCbxifefbw==} + dependencies: + lodash.isarguments: 3.1.0 + lodash.isarray: 3.0.4 + dev: true + /lodash._basetostring@3.0.1: resolution: {integrity: sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==} dev: true @@ -4562,12 +5157,41 @@ packages: resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} dev: true + /lodash.assignin@4.2.0: + resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==} + dev: true + + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: true + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: true + + /lodash.debounce@3.1.1: + resolution: {integrity: sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==} + dependencies: + lodash._getnative: 3.9.1 + dev: true + /lodash.escape@3.2.0: resolution: {integrity: sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==} dependencies: lodash._root: 3.0.1 dev: true + /lodash.find@4.6.0: + resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} + dev: true + + /lodash.flatten@3.0.2: + resolution: {integrity: sha512-jCXLoNcqQRbnT/KWZq2fIREHWeczrzpTR0vsycm96l/pu5hGeAntVBG0t7GuM/2wFqmnZs3d1eGptnAH2E8+xQ==} + dependencies: + lodash._baseflatten: 3.1.4 + lodash._isiterateecall: 3.0.9 + dev: true + /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} dev: true @@ -4634,6 +5258,10 @@ packages: lodash._reinterpolate: 3.0.0 dev: true + /lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + dev: true + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -4716,6 +5344,11 @@ packages: resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} dev: true + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + /meow@3.7.0: resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} engines: {node: '>=0.10.0'} @@ -4732,6 +5365,10 @@ packages: trim-newlines: 1.0.0 dev: true + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + /merge-stream@1.0.1: resolution: {integrity: sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==} dependencies: @@ -4747,6 +5384,11 @@ packages: engines: {node: '>= 8'} dev: true + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + /micromatch@2.3.11: resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} engines: {node: '>=0.10.0'} @@ -4807,6 +5449,12 @@ packages: mime-db: 1.52.0 dev: true + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4822,6 +5470,13 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: true + /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} @@ -4837,6 +5492,12 @@ packages: minimist: 1.2.8 dev: true + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true @@ -4845,12 +5506,21 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + /multipipe@0.1.2: resolution: {integrity: sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==} dependencies: duplexer2: 0.0.2 dev: true + /mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + dev: true + /mute-stdout@1.0.1: resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} engines: {node: '>= 0.10'} @@ -4888,6 +5558,11 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true @@ -4900,8 +5575,24 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-notifier@10.0.1: + resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.5.4 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /node-watch@0.7.3: + resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} + engines: {node: '>=6'} dev: true /normalize-package-data@2.5.0: @@ -4932,6 +5623,13 @@ packages: once: 1.4.0 dev: true + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -4939,6 +5637,16 @@ packages: path-key: 3.1.1 dev: true + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + /number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} @@ -4967,6 +5675,10 @@ packages: kind-of: 3.2.2 dev: true + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4979,8 +5691,8 @@ packages: isobject: 3.0.1 dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -5030,6 +5742,18 @@ packages: make-iterator: 1.0.1 dev: true + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -5092,6 +5816,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5177,6 +5906,11 @@ packages: entities: 4.5.0 dev: true + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} @@ -5229,6 +5963,10 @@ packages: path-root-regex: 0.1.2 dev: true + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + /path-type@1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} engines: {node: '>=0.10.0'} @@ -5355,6 +6093,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /printf@0.6.1: + resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==} + engines: {node: '>= 0.9.0'} + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -5372,6 +6115,14 @@ packages: sisteransi: 1.0.5 dev: true + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true @@ -5383,6 +6134,13 @@ packages: once: 1.4.0 dev: true + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} dependencies: @@ -5400,6 +6158,13 @@ packages: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} dev: true + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true @@ -5408,6 +6173,16 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /qunit@2.20.0: + resolution: {integrity: sha512-N8Fp1J55waE+QG1KwX2LOyqulZUToRrrPBqDOfYfuAMkEglFL15uwvmH1P4Tq/omQ/mGbBI8PEB3PhIfvUb+jg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + commander: 7.2.0 + node-watch: 0.7.3 + tiny-glob: 0.2.9 + dev: true + /randomatic@3.1.1: resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} engines: {node: '>= 0.10.0'} @@ -5417,6 +6192,21 @@ packages: math-random: 1.0.4 dev: true + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -5761,6 +6551,39 @@ packages: lru-cache: 6.0.0 dev: true + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true @@ -5785,6 +6608,10 @@ packages: split-string: 3.1.0 dev: true + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + /shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -5809,6 +6636,18 @@ packages: engines: {node: '>=8'} dev: true + /shellwords@0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -5863,6 +6702,42 @@ packages: - supports-color dev: true + /socket.io-adapter@2.5.2: + resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} + dependencies: + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + dependencies: + '@socket.io/component-emitter': 3.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /socket.io@4.7.2: + resolution: {integrity: sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.4 + engine.io: 6.5.4 + socket.io-adapter: 2.5.2 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -5906,6 +6781,10 @@ packages: engines: {node: '>= 0.10'} dev: true + /spawn-args@0.2.0: + resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} + dev: true + /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: @@ -5958,6 +6837,11 @@ packages: object-copy: 0.1.0 dev: true + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + /stream-exhaust@1.0.2: resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} dev: true @@ -6073,6 +6957,11 @@ packages: engines: {node: '>=8'} dev: true + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -6091,6 +6980,10 @@ packages: engines: {node: '>=8'} dev: true + /styled_string@0.0.1: + resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} + dev: true + /supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -6147,6 +7040,15 @@ packages: string-width: 3.1.0 dev: true + /tap-parser@7.0.0: + resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} + hasBin: true + dependencies: + events-to-array: 1.1.2 + js-yaml: 3.14.1 + minipass: 2.9.0 + dev: true + /ternary-stream@2.1.1: resolution: {integrity: sha512-j6ei9hxSoyGlqTmoMjOm+QNvUKDOIY6bNl4Uh1lhBvl6yjPW2iLqxDUYyfDPZknQ4KdRziFl+ec99iT4l7g0cw==} engines: {node: '>= 0.10.0'} @@ -6166,6 +7068,99 @@ packages: minimatch: 3.1.2 dev: true + /testem@3.11.0: + resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==} + engines: {node: '>= 7.*'} + hasBin: true + dependencies: + '@xmldom/xmldom': 0.8.10 + backbone: 1.5.0 + bluebird: 3.7.2 + charm: 1.0.2 + commander: 2.20.3 + compression: 1.7.4 + consolidate: 0.16.0(mustache@4.2.0) + execa: 1.0.0 + express: 4.18.2 + fireworm: 0.7.2 + glob: 7.2.3 + http-proxy: 1.18.1 + js-yaml: 3.14.1 + lodash.assignin: 4.2.0 + lodash.castarray: 4.4.0 + lodash.clonedeep: 4.5.0 + lodash.find: 4.6.0 + lodash.uniqby: 4.7.0 + mkdirp: 3.0.1 + mustache: 4.2.0 + node-notifier: 10.0.1 + npmlog: 6.0.2 + printf: 0.6.1 + rimraf: 3.0.2 + socket.io: 4.7.2 + spawn-args: 0.2.0 + styled_string: 0.0.1 + tap-parser: 7.0.0 + tmp: 0.0.33 + transitivePeerDependencies: + - arc-templates + - atpl + - babel-core + - bracket-template + - bufferutil + - coffee-script + - debug + - dot + - dust + - dustjs-helpers + - dustjs-linkedin + - eco + - ect + - ejs + - haml-coffee + - hamlet + - hamljs + - handlebars + - hogan.js + - htmling + - jade + - jazz + - jqtpl + - just + - liquid-node + - liquor + - lodash + - marko + - mote + - nunjucks + - plates + - pug + - qejs + - ractive + - razor-tmpl + - react + - react-dom + - slm + - squirrelly + - supports-color + - swig + - swig-templates + - teacup + - templayed + - then-jade + - then-pug + - tinyliquid + - toffee + - twig + - twing + - underscore + - utf-8-validate + - vash + - velocityjs + - walrus + - whiskers + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -6232,6 +7227,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -6302,6 +7304,11 @@ packages: through2: 2.0.5 dev: true + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} @@ -6333,7 +7340,7 @@ packages: typescript: 5.2.2 dev: true - /ts-jest@29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -6354,10 +7361,10 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.7 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.10.0)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -6367,7 +7374,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.10.0)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.10.6)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6386,9 +7393,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.0 - acorn: 8.11.2 - acorn-walk: 8.3.0 + '@types/node': 20.10.6 + acorn: 8.11.3 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -6436,6 +7443,14 @@ packages: engines: {node: '>=8'} dev: true + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + /type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} dev: true @@ -6459,6 +7474,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + dev: true + /undertaker-registry@1.0.1: resolution: {integrity: sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==} engines: {node: '>= 0.10'} @@ -6506,6 +7525,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + /unset-value@1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} @@ -6519,13 +7543,13 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -6557,6 +7581,16 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -6598,6 +7632,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + /vinyl-fs@2.4.4: resolution: {integrity: sha512-lxMlQW/Wxk/pwhooY3Ut0Q11OH5ZvZfV0Gg1c306fBNWznQ6ZeQaCdE7XX0O/PpGSqgAsHMBxwFgcGxiYW3hZg==} engines: {node: '>=0.10'} @@ -6631,7 +7670,7 @@ packages: is-valid-glob: 1.0.0 lazystream: 1.0.1 lead: 1.0.0 - object.assign: 4.1.4 + object.assign: 4.1.5 pumpify: 1.5.1 readable-stream: 2.3.8 remove-bom-buffer: 3.0.0 @@ -6750,6 +7789,12 @@ packages: isexe: 2.0.0 dev: true + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: true + /window-size@0.2.0: resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} engines: {node: '>= 0.10.0'} @@ -6797,8 +7842,21 @@ packages: mkdirp: 0.5.6 dev: true - /ws@8.14.2: - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + /ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + 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 + dev: true + + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -6862,7 +7920,7 @@ packages: resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} dependencies: camelcase: 3.0.0 - object.assign: 4.1.4 + object.assign: 4.1.5 dev: true /yargs@17.7.2: @@ -6923,8 +7981,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/310d23d3ff26f6d7a04c7e1019676b64ce038505: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/310d23d3ff26f6d7a04c7e1019676b64ce038505} + github.com/highcharts/highcharts/d0f396a15e6d7a937a6f90f32951f48deb4d1423: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/d0f396a15e6d7a937a6f90f32951f48deb4d1423} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/testem.json b/testem.json index 8ae833c..3db4ec3 100644 --- a/testem.json +++ b/testem.json @@ -1,6 +1,7 @@ { "framework": "qunit", - "test_page": "./tests/unit-tests/index.html", + "test_page": "tests/unit-tests/index.html", + "disable_watching": true, "launch_in_ci": [ "Chrome" ], diff --git a/tests/unit-tests/index.html b/tests/unit-tests/index.html index 27a5552..9128802 100644 --- a/tests/unit-tests/index.html +++ b/tests/unit-tests/index.html @@ -15,8 +15,6 @@
- - @@ -24,5 +22,6 @@ + From a57806171e63df22ed2ff9087c0e6349b16d432c Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 11:35:33 +0100 Subject: [PATCH 24/66] Changed test reporter (testing). --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5dfea7c..263bc85 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "build": "gulp build", "lint": "gulp lint", "prepare": "husky install", - "pre-commit": "testem ci -R dot" + "pre-commit": "testem ci -R xunit" }, "devDependencies": { "@types/jest": "^29.5.6", From a06662ee82923088c504ef24c923532540effd8f Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 11:38:38 +0100 Subject: [PATCH 25/66] Changed test reporter (testing). --- package.json | 2 +- testem.json | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 263bc85..be667f6 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "build": "gulp build", "lint": "gulp lint", "prepare": "husky install", - "pre-commit": "testem ci -R xunit" + "pre-commit": "testem ci -R teamcity" }, "devDependencies": { "@types/jest": "^29.5.6", diff --git a/testem.json b/testem.json index 3db4ec3..f6f8707 100644 --- a/testem.json +++ b/testem.json @@ -4,8 +4,5 @@ "disable_watching": true, "launch_in_ci": [ "Chrome" - ], - "launch_in_dev": [ - "Chrome" ] } From a50c1c8333a9c3bc22c0cfa3b6345af4b2172551 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 11:40:39 +0100 Subject: [PATCH 26/66] Changed test reporter (testing). --- testem.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/testem.json b/testem.json index f6f8707..3075abd 100644 --- a/testem.json +++ b/testem.json @@ -1,8 +1,10 @@ { "framework": "qunit", "test_page": "tests/unit-tests/index.html", - "disable_watching": true, "launch_in_ci": [ "Chrome" + ], + "launch_in_dev": [ + "Chrome" ] } From 856af11c5030403765d2923fa70bcaf9351dd84e Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 11:43:06 +0100 Subject: [PATCH 27/66] Changed pre-commit script. --- .husky/pre-commit | 3 ++- package.json | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index d4a43dd..fb29d69 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,5 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm run pre-commit +npm run lint +npm run test-dot \ No newline at end of file diff --git a/package.json b/package.json index be667f6..dd1bc8f 100644 --- a/package.json +++ b/package.json @@ -21,10 +21,10 @@ "types": "types.d.ts", "scripts": { "test": "testem", + "test-dot": "testem ci -R dot", "build": "gulp build", "lint": "gulp lint", - "prepare": "husky install", - "pre-commit": "testem ci -R teamcity" + "prepare": "husky install" }, "devDependencies": { "@types/jest": "^29.5.6", From aea04549c4eb0d48e12c75ab76e59d292dd10ed4 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 3 Jan 2024 12:00:33 +0100 Subject: [PATCH 28/66] Refactored unit-tests index.html file. --- .husky/pre-commit | 2 +- tests/unit-tests/index.html | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index fb29d69..58b91ab 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -2,4 +2,4 @@ . "$(dirname -- "$0")/_/husky.sh" npm run lint -npm run test-dot \ No newline at end of file +npm run test-dot diff --git a/tests/unit-tests/index.html b/tests/unit-tests/index.html index 9128802..db026f0 100644 --- a/tests/unit-tests/index.html +++ b/tests/unit-tests/index.html @@ -4,10 +4,12 @@ Test multicolor series + +
@@ -15,13 +17,16 @@
+ - + + + From 59a9ec5f0bfa93ff2a7e7dad822b62d1d3476a01 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Thu, 4 Jan 2024 15:24:38 +0100 Subject: [PATCH 29/66] Added coloredline snapshots data tests. --- tests/unit-tests/coloredarea.test.js | 8 +- tests/unit-tests/coloredline.test.js | 134 +++++-- tests/unit-tests/helper.js | 550 +++++++++++++++++++++++++++ tests/unit-tests/index.html | 7 +- 4 files changed, 657 insertions(+), 42 deletions(-) create mode 100644 tests/unit-tests/helper.js diff --git a/tests/unit-tests/coloredarea.test.js b/tests/unit-tests/coloredarea.test.js index de6a08b..a245766 100644 --- a/tests/unit-tests/coloredarea.test.js +++ b/tests/unit-tests/coloredarea.test.js @@ -36,6 +36,10 @@ const chartColoredarea = Highcharts.chart('coloredarea-container', { ] }); -QUnit.test('Should be coloredarea series.', (assert) => { - assert.equal(chartColoredarea.series[0].type, 'coloredarea', 'Coloredarea series rendered properly!'); +QUnit.test('Coloredarea series render.', (assert) => { + assert.equal( + chartColoredarea.series[0].type, + 'coloredarea', + 'Coloredarea series should render properly.' + ); }); diff --git a/tests/unit-tests/coloredline.test.js b/tests/unit-tests/coloredline.test.js index 9709ac1..b76870a 100644 --- a/tests/unit-tests/coloredline.test.js +++ b/tests/unit-tests/coloredline.test.js @@ -1,41 +1,99 @@ -const chartColoredline = Highcharts.chart('coloredline-container', { - series: [ - { - type: 'coloredline', - data: [ - { - y: 40, - segmentColor: 'red' - }, - { - y: 60, - segmentColor: 'blue' - }, - { - y: 30, - segmentColor: 'yellow' - }, - { - y: 10, - segmentColor: 'green' - }, - { - y: 50, - segmentColor: 'green' - }, - { - y: 20, - segmentColor: 'brown' - }, - { - y: 70, - segmentColor: 'pink' - } - ] - } - ] +const colors = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], + chartColoredline = Highcharts.chart('coloredline-container', { + chart: { + spacing: [0, 0, 0 ,0] + }, + series: [ + { + type: 'coloredline', + data: [ + { + y: 40, + segmentColor: colors[0] + }, + { + y: 60, + segmentColor: colors[1] + }, + { + y: 30, + segmentColor: colors[2] + }, + { + y: 10, + segmentColor: colors[3] + }, + { + y: 50, + segmentColor: colors[3] + }, + { + y: 20, + segmentColor: colors[4] + }, + { + y: 70, + segmentColor: colors[5] + } + ] + } + ] + }), + series = chartColoredline.series[0]; + +QUnit.test('Coloredline series render.', (assert) => { + assert.equal( + series.type, + 'coloredline', + 'Coloredline series should render properly.' + ); +}); + +QUnit.test('Coloredline series points.', (assert) => { + assert.deepEqual( + series.points.map((point) => ({ segmentColor: point.segmentColor })), + window.seriesPointsTestData, + "The series's points property should match the snapshot data." + ); +}); + +QUnit.test('Coloredline series tracker property.', (assert) => { + assert.deepEqual( + series.tracker.pathArray, + window.trackerPathArrayTestData, + "The tracker's pathArray property should match the snapshot data." + ); +}); + +QUnit.test('Coloredline series graphs property.', (assert) => { + assert.deepEqual( + series.graphs.map((graph) => ({ + stroke: graph.attr('stroke'), + "stroke-width": graph["stroke-width"], + pathArray: graph.pathArray + })), + window.graphsTestData, + 'The graphs property should match the snapshot data.' + ); +}); + +QUnit.test('Coloredline series segments property.', (assert) => { + assert.deepEqual( + series.segments.map((segment) => ({ + color: segment.color, + points: segment.points.map((point) => ({ + graphicPathArray: point.graphic.pathArray + })) + })), + window.segmentsTestData, + 'The segments property should match the snapshot data.' + ); }); -QUnit.test('Should be coloredline series.', (assert) => { - assert.equal(chartColoredline.series[0].type, 'coloredline', 'Coloredline series rendered properly!'); +QUnit.test('Coloredline series graphPaths property.', (assert) => { + assert.deepEqual( + series.graphPaths, + window.graphPathsTestData, + 'The graphPaths property should match the snapshot data.' + ); }); diff --git a/tests/unit-tests/helper.js b/tests/unit-tests/helper.js new file mode 100644 index 0000000..aace129 --- /dev/null +++ b/tests/unit-tests/helper.js @@ -0,0 +1,550 @@ +window.seriesPointsTestData = [ + { + segmentColor: "red" + }, + { + segmentColor: "blue" + }, + { + segmentColor: "yellow" + }, + { + segmentColor: "green" + }, + { + segmentColor: "green" + }, + { + segmentColor: "brown" + }, + { + segmentColor: "pink" + } +]; + +window.trackerPathArrayTestData = [ + [ + "M", + -4.2549019607843, + 145 + ], + [ + "L", + 5.7450980392157, + 145 + ], + [ + "L", + 101.49673202614, + 72.5 + ], + [ + "L", + 111.49673202614, + 72.5 + ], + [ + "M", + 91.49673202614, + 72.5 + ], + [ + "L", + 101.49673202614, + 72.5 + ], + [ + "L", + 197.24836601307, + 181.25 + ], + [ + "L", + 207.24836601307, + 181.25 + ], + [ + "M", + 187.24836601307, + 181.25 + ], + [ + "L", + 197.24836601307, + 181.25 + ], + [ + "L", + 293, + 253.75 + ], + [ + "L", + 303, + 253.75 + ], + [ + "M", + 283, + 253.75 + ], + [ + "L", + 293, + 253.75 + ], + [ + "L", + 388.75163398693, + 108.75 + ], + [ + "L", + 484.50326797386, + 217.5 + ], + [ + "L", + 494.50326797386, + 217.5 + ], + [ + "M", + 474.50326797386, + 217.5 + ], + [ + "L", + 484.50326797386, + 217.5 + ], + [ + "L", + 580.25490196078, + 36.25 + ], + [ + "L", + 590.25490196078, + 36.25 + ] +]; + +window.graphPathsTestData = [ + [ + [ + "M", + 5.7450980392157, + 145, + "L", + 101.49673202614, + 72.5 + ], + "red" + ], + [ + [ + "M", + 101.49673202614, + 72.5, + "L", + 197.24836601307, + 181.25 + ], + "blue" + ], + [ + [ + "M", + 197.24836601307, + 181.25, + "L", + 293, + 253.75 + ], + "yellow" + ], + [ + [ + "M", + 293, + 253.75, + "L", + 388.75163398693, + 108.75, + "L", + 484.50326797386, + 217.5 + ], + "green" + ], + [ + [ + "M", + 484.50326797386, + 217.5, + "L", + 580.25490196078, + 36.25 + ], + "brown" + ] +]; + +window.segmentsTestData = [ + { + color: "red", + points: [ + { + graphicPathArray: [ + [ + "M", + 5, + 149 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 5.0039999993333355, + 148.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 101, + 77 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 101.00399999933333, + 76.99999800000016 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "blue", + points: [ + { + graphicPathArray: [ + [ + "M", + 101, + 77 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 101.00399999933333, + 76.99999800000016 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 197, + 185 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 197.00399999933333, + 184.99999800000018 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "yellow", + points: [ + { + graphicPathArray: [ + [ + "M", + 197, + 185 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 197.00399999933333, + 184.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 293, + 258 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 293.00399999933336, + 257.9999980000002 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "green", + points: [ + { + graphicPathArray: [ + [ + "M", + 293, + 258 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 293.00399999933336, + 257.9999980000002 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 388, + 113 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 388.00399999933336, + 112.99999800000016 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 484, + 222 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 484.00399999933336, + 221.99999800000018 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "brown", + points: [ + { + graphicPathArray: [ + [ + "M", + 484, + 222 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 484.00399999933336, + 221.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 580, + 40 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 580.0039999993334, + 39.99999800000017 + ], + [ + "Z" + ] + ] + } + ] + } +]; + +window.graphsTestData = [ + { + stroke: "red", + "stroke-width": 2, + pathArray: [ + [ + "M", + 5.7450980392157, + 145 + ], + [ + "L", + 101.49673202614, + 72.5 + ] + ] + }, + { + stroke: "blue", + "stroke-width": 2, + pathArray: [ + [ + "M", + 101.49673202614, + 72.5 + ], + [ + "L", + 197.24836601307, + 181.25 + ] + ] + }, + { + stroke: "yellow", + "stroke-width": 2, + pathArray: [ + [ + "M", + 197.24836601307, + 181.25 + ], + [ + "L", + 293, + 253.75 + ] + ] + }, + { + stroke: "green", + "stroke-width": 2, + pathArray: [ + [ + "M", + 293, + 253.75 + ], + [ + "L", + 388.75163398693, + 108.75 + ], + [ + "L", + 484.50326797386, + 217.5 + ] + ] + }, + { + stroke: "brown", + "stroke-width": 2, + pathArray: [ + [ + "M", + 484.50326797386, + 217.5 + ], + [ + "L", + 580.25490196078, + 36.25 + ] + ] + } +]; diff --git a/tests/unit-tests/index.html b/tests/unit-tests/index.html index db026f0..bf8a665 100644 --- a/tests/unit-tests/index.html +++ b/tests/unit-tests/index.html @@ -14,14 +14,17 @@
-
-
+
+
+ + + From b9280d343bcd9afb041e3fd06bd9a4c1f521cd1c Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Mon, 8 Jan 2024 12:52:16 +0100 Subject: [PATCH 30/66] Refactored tests. --- dist/multicolor-series.js | 8 +- pnpm-lock.yaml | 104 +-- test/coloredarea-helper.js | 680 ++++++++++++++++++ test/coloredarea.test.js | 130 ++++ .../helper.js => test/coloredline-helper.js | 184 ++--- test/coloredline.test.js | 133 ++++ {tests/unit-tests => test}/index.html | 6 +- test/test-helper.js | 43 ++ testem.json | 2 +- .../coloredarea-series.test.ts.snap | 152 ---- .../coloredline-series.test.ts.snap | 152 ---- .../jest-snapshot/coloredarea-series.test.ts | 103 --- .../jest-snapshot/coloredline-series.test.ts | 103 --- tests/jest-snapshot/helper.ts | 44 -- tests/unit-tests/coloredarea.test.js | 45 -- tests/unit-tests/coloredline.test.js | 99 --- tsconfig.json | 2 +- 17 files changed, 1138 insertions(+), 852 deletions(-) create mode 100644 test/coloredarea-helper.js create mode 100644 test/coloredarea.test.js rename tests/unit-tests/helper.js => test/coloredline-helper.js (98%) create mode 100644 test/coloredline.test.js rename {tests/unit-tests => test}/index.html (84%) create mode 100644 test/test-helper.js delete mode 100644 tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap delete mode 100644 tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap delete mode 100644 tests/jest-snapshot/coloredarea-series.test.ts delete mode 100644 tests/jest-snapshot/coloredline-series.test.ts delete mode 100644 tests/jest-snapshot/helper.ts delete mode 100644 tests/unit-tests/coloredarea.test.js delete mode 100644 tests/unit-tests/coloredline.test.js diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index bf229cb..923e45a 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -55,9 +55,7 @@ const containsStringNumberNumberSequence = (sequenceValue) => { * Type guards * */ -const isSVGPathSegment = (value -// The tests problem lies here. -) => containsStringNumberNumberSequence(value); +const isSVGPathSegment = (value) => containsStringNumberNumberSequence(value); /** * * @private @@ -544,9 +542,7 @@ class ColoredareaSeries extends ColoredlineSeries { var _a; const segmentPath = ColoredlineSeries.prototype.getSegmentPath.call(this, segment), // Call base method areaSegmentPath = [...segmentPath], // Work on a copy for the area path - options = this.options, segLength = segmentPath.length, - // TO DO: Test the below ?? 0. - translatedThreshold = this.yAxis.getThreshold((_a = options.threshold) !== null && _a !== void 0 ? _a : 0); // #2181 + options = this.options, segLength = segmentPath.length, translatedThreshold = this.yAxis.getThreshold((_a = options.threshold) !== null && _a !== void 0 ? _a : 0); // #2181 let yBottom; if (segLength === 3) { // For animation from 1 to two points areaSegmentPath.push('L', segmentPath[1], segmentPath[2]); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2387285..98c74da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ dependencies: version: 11.2.0 highcharts-github: specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/d0f396a15e6d7a937a6f90f32951f48deb4d1423 + version: github.com/highcharts/highcharts/db37d463502f974f9a48f8454262a86deb96117b devDependencies: '@types/jest': @@ -66,7 +66,7 @@ devDependencies: version: 8.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -84,7 +84,7 @@ devDependencies: version: 29.1.1(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.10.6)(typescript@5.2.2) + version: 10.9.1(@types/node@20.10.7)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -511,7 +511,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -532,14 +532,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -567,7 +567,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-mock: 29.7.0 dev: true @@ -594,7 +594,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -627,7 +627,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -715,7 +715,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -855,7 +855,7 @@ packages: /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/expect@1.20.4: @@ -865,7 +865,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -900,7 +900,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -909,8 +909,8 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + /@types/node@20.10.7: + resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==} dependencies: undici-types: 5.26.5 dev: true @@ -939,7 +939,7 @@ packages: resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/yargs-parser@21.0.3: @@ -1675,8 +1675,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.617 + caniuse-lite: 1.0.30001576 + electron-to-chromium: 1.4.623 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true @@ -1777,8 +1777,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + /caniuse-lite@1.0.30001576: + resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} dev: true /chalk@1.1.3: @@ -2269,7 +2269,7 @@ packages: vary: 1.1.2 dev: true - /create-jest@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.10.7)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2278,7 +2278,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2556,8 +2556,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium@1.4.617: - resolution: {integrity: sha512-sYNE3QxcDS4ANW1k4S/wWYMXjCVcFSOX3Bg8jpuMFaXt/x8JCmp0R1Xe1ZXDX4WXnSRBf+GJ/3eGWicUuQq5cg==} + /electron-to-chromium@1.4.623: + resolution: {integrity: sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==} dev: true /emittery@0.13.1: @@ -2595,7 +2595,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.10.6 + '@types/node': 20.10.7 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -3766,7 +3766,7 @@ packages: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@types/vinyl': 2.0.11 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -4473,7 +4473,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -4494,7 +4494,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.10.7)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4508,10 +4508,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -4522,7 +4522,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.10.7)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4537,7 +4537,7 @@ packages: '@babel/core': 7.23.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 babel-jest: 29.7.0(@babel/core@7.23.7) chalk: 4.1.2 ci-info: 3.9.0 @@ -4557,7 +4557,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.10.6)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.10.7)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4604,7 +4604,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4621,7 +4621,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4637,7 +4637,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.6 + '@types/node': 20.10.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4688,7 +4688,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-util: 29.7.0 dev: true @@ -4743,7 +4743,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4774,7 +4774,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4826,7 +4826,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4851,7 +4851,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.10.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4863,13 +4863,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.10.6)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.10.7)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4882,7 +4882,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6721,8 +6721,8 @@ packages: - supports-color dev: true - /socket.io@4.7.2: - resolution: {integrity: sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==} + /socket.io@4.7.3: + resolution: {integrity: sha512-SE+UIQXBQE+GPG2oszWMlsEmWtHVqw/h1VrYJGK5/MC7CH5p58N448HwIrtREcvR4jfdOJAY4ieQfxMr55qbbw==} engines: {node: '>=10.2.0'} dependencies: accepts: 1.3.8 @@ -7097,7 +7097,7 @@ packages: npmlog: 6.0.2 printf: 0.6.1 rimraf: 3.0.2 - socket.io: 4.7.2 + socket.io: 4.7.3 spawn-args: 0.2.0 styled_string: 0.0.1 tap-parser: 7.0.0 @@ -7364,7 +7364,7 @@ packages: '@babel/core': 7.23.7 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.10.6)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -7374,7 +7374,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.10.6)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -7393,7 +7393,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 acorn: 8.11.3 acorn-walk: 8.3.1 arg: 4.1.3 @@ -7981,8 +7981,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/d0f396a15e6d7a937a6f90f32951f48deb4d1423: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/d0f396a15e6d7a937a6f90f32951f48deb4d1423} + github.com/highcharts/highcharts/db37d463502f974f9a48f8454262a86deb96117b: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/db37d463502f974f9a48f8454262a86deb96117b} name: highcharts version: 11.2.0 engines: {node: '>=14.14.0'} diff --git a/test/coloredarea-helper.js b/test/coloredarea-helper.js new file mode 100644 index 0000000..6c0f20a --- /dev/null +++ b/test/coloredarea-helper.js @@ -0,0 +1,680 @@ +const coloredareaSeriesPointsTestData = [ + { + segmentColor: "red" + }, + { + segmentColor: "blue" + }, + { + segmentColor: "yellow" + }, + { + segmentColor: "green" + }, + { + segmentColor: "green" + }, + { + segmentColor: "brown" + }, + { + segmentColor: "pink" + } +]; + +const coloredareaTrackerPathArrayTestData = [ + [ + "M", + -4.4509803921569, + 132.5 + ], + [ + "L", + 5.5490196078431, + 132.5 + ], + [ + "L", + 98.032679738562, + 66.25 + ], + [ + "L", + 98.032679738562, + 265 + ], + [ + "L", + 5.5490196078431, + 265 + ], + [ + "L", + 15.5490196078431, + 265 + ], + [ + "M", + 88.032679738562, + 66.25 + ], + [ + "L", + 98.032679738562, + 66.25 + ], + [ + "L", + 190.51633986928, + 165.625 + ], + [ + "L", + 190.51633986928, + 265 + ], + [ + "L", + 98.032679738562, + 265 + ], + [ + "L", + 108.032679738562, + 265 + ], + [ + "M", + 180.51633986928, + 165.625 + ], + [ + "L", + 190.51633986928, + 165.625 + ], + [ + "L", + 283, + 231.875 + ], + [ + "L", + 283, + 265 + ], + [ + "L", + 190.51633986928, + 265 + ], + [ + "L", + 200.51633986928, + 265 + ], + [ + "M", + 273, + 231.875 + ], + [ + "L", + 283, + 231.875 + ], + [ + "L", + 375.48366013072, + 99.375 + ], + [ + "L", + 467.96732026144, + 198.75 + ], + [ + "L", + 467.96732026144, + 265 + ], + [ + "L", + 283, + 265 + ], + [ + "L", + 293, + 265 + ], + [ + "M", + 457.96732026144, + 198.75 + ], + [ + "L", + 467.96732026144, + 198.75 + ], + [ + "L", + 560.45098039216, + 33.125 + ], + [ + "L", + 560.45098039216, + 265 + ], + [ + "L", + 467.96732026144, + 265 + ], + [ + "L", + 477.96732026144, + 265 + ] +]; + +const coloredareaGraphsTestData = [ + { + stroke: "red", + "stroke-width": 2, + pathArray: [ + [ + "M", + 5.5490196078431, + 132.5 + ], + [ + "L", + 98.032679738562, + 66.25 + ], + [ + "L", + 98.032679738562, + 265 + ], + [ + "L", + 5.5490196078431, + 265 + ] + ] + }, + { + stroke: "blue", + "stroke-width": 2, + pathArray: [ + [ + "M", + 98.032679738562, + 66.25 + ], + [ + "L", + 190.51633986928, + 165.625 + ], + [ + "L", + 190.51633986928, + 265 + ], + [ + "L", + 98.032679738562, + 265 + ] + ] + }, + { + stroke: "yellow", + "stroke-width": 2, + pathArray: [ + [ + "M", + 190.51633986928, + 165.625 + ], + [ + "L", + 283, + 231.875 + ], + [ + "L", + 283, + 265 + ], + [ + "L", + 190.51633986928, + 265 + ] + ] + }, + { + stroke: "green", + "stroke-width": 2, + pathArray: [ + [ + "M", + 283, + 231.875 + ], + [ + "L", + 375.48366013072, + 99.375 + ], + [ + "L", + 467.96732026144, + 198.75 + ], + [ + "L", + 467.96732026144, + 265 + ], + [ + "L", + 283, + 265 + ] + ] + }, + { + stroke: "brown", + "stroke-width": 2, + pathArray: [ + [ + "M", + 467.96732026144, + 198.75 + ], + [ + "L", + 560.45098039216, + 33.125 + ], + [ + "L", + 560.45098039216, + 265 + ], + [ + "L", + 467.96732026144, + 265 + ] + ] + } +]; + +const coloredareaGraphPathsTestData = [ + [ + [ + "M", + 5.5490196078431, + 132.5, + "L", + 98.032679738562, + 66.25, + "L", + 98.032679738562, + 265, + "L", + 5.5490196078431, + 265 + ], + "red" + ], + [ + [ + "M", + 98.032679738562, + 66.25, + "L", + 190.51633986928, + 165.625, + "L", + 190.51633986928, + 265, + "L", + 98.032679738562, + 265 + ], + "blue" + ], + [ + [ + "M", + 190.51633986928, + 165.625, + "L", + 283, + 231.875, + "L", + 283, + 265, + "L", + 190.51633986928, + 265 + ], + "yellow" + ], + [ + [ + "M", + 283, + 231.875, + "L", + 375.48366013072, + 99.375, + "L", + 467.96732026144, + 198.75, + "L", + 467.96732026144, + 265, + "L", + 283, + 265 + ], + "green" + ], + [ + [ + "M", + 467.96732026144, + 198.75, + "L", + 560.45098039216, + 33.125, + "L", + 560.45098039216, + 265, + "L", + 467.96732026144, + 265 + ], + "brown" + ] +]; + +const coloredareaSegmentsTestData = [ + { + color: "red", + points: [ + { + graphicPathArray: [ + [ + "M", + 5, + 137 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 5.0039999993333355, + 136.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 98, + 71 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 98.00399999933333, + 70.99999800000016 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "blue", + points: [ + { + graphicPathArray: [ + [ + "M", + 98, + 71 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 98.00399999933333, + 70.99999800000016 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 190, + 170 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 190.00399999933333, + 169.99999800000018 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "yellow", + points: [ + { + graphicPathArray: [ + [ + "M", + 190, + 170 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 190.00399999933333, + 169.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 283, + 237 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 283.00399999933336, + 236.99999800000018 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "green", + points: [ + { + graphicPathArray: [ + [ + "M", + 283, + 237 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 283.00399999933336, + 236.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 375, + 104 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 375.00399999933336, + 103.99999800000016 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 467, + 204 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 467.00399999933336, + 203.99999800000018 + ], + [ + "Z" + ] + ] + } + ] + }, + { + color: "brown", + points: [ + { + graphicPathArray: [ + [ + "M", + 467, + 204 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 467.00399999933336, + 203.99999800000018 + ], + [ + "Z" + ] + ] + }, + { + graphicPathArray: [ + [ + "M", + 560, + 37 + ], + [ + "A", + 4, + 4, + 0, + 1, + 1, + 560.0039999993334, + 36.99999800000017 + ], + [ + "Z" + ] + ] + } + ] + } +]; diff --git a/test/coloredarea.test.js b/test/coloredarea.test.js new file mode 100644 index 0000000..df89332 --- /dev/null +++ b/test/coloredarea.test.js @@ -0,0 +1,130 @@ +const colorsColoredarea = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], + chartColoredarea = Highcharts.chart('coloredarea-container', { + series: [ + { + type: 'coloredarea', + data: [ + { + y: 40, + segmentColor: colorsColoredarea[0] + }, + { + y: 60, + segmentColor: colorsColoredarea[1] + }, + { + y: 30, + segmentColor: colorsColoredarea[2] + }, + { + y: 10, + segmentColor: colorsColoredarea[3] + }, + { + y: 50, + segmentColor: colorsColoredarea[3] + }, + { + y: 20, + segmentColor: colorsColoredarea[4] + }, + { + y: 70, + segmentColor: colorsColoredarea[5] + } + ] + } + ] + }), + seriesColoredarea = chartColoredarea.series[0]; + +QUnit.test('Coloredarea series render.', (assert) => { + assert.equal( + seriesColoredarea.type, + 'coloredarea', + 'Coloredarea series should render properly.' + ); +}); + +QUnit.test('Coloredarea series points.', (assert) => { + assert.deepEqual( + seriesColoredarea.points.map((point) => + ({ segmentColor: point.segmentColor }) + ), + coloredareaSeriesPointsTestData, + "The series's points property should match the snapshot data." + ); +}); + +QUnit.test('Coloredarea series tracker property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredarea.tracker.pathArray, + coloredareaTrackerPathArrayTestData, + 1 + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The tracker's pathArray property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredarea series graphs property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredarea.graphs.map((graph) => ({ + stroke: graph.attr('stroke'), + "stroke-width": graph["stroke-width"], + pathArray: graph.pathArray + })), + coloredareaGraphsTestData, + 1 + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The graphs property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredarea series graphPaths property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredarea.graphPaths, + coloredareaGraphPathsTestData, + 1 + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The graphPaths property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredarea series segments property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredarea.segments.map((segment) => ({ + color: segment.color, + points: segment.points.map((point) => ({ + graphicPathArray: point.graphic.pathArray + })) + })), + coloredareaSegmentsTestData, + 1 + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The segments property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); diff --git a/tests/unit-tests/helper.js b/test/coloredline-helper.js similarity index 98% rename from tests/unit-tests/helper.js rename to test/coloredline-helper.js index aace129..7db7c8c 100644 --- a/tests/unit-tests/helper.js +++ b/test/coloredline-helper.js @@ -1,4 +1,4 @@ -window.seriesPointsTestData = [ +const coloredlineSeriesPointsTestData = [ { segmentColor: "red" }, @@ -22,7 +22,7 @@ window.seriesPointsTestData = [ } ]; -window.trackerPathArrayTestData = [ +const coloredlineTrackerPathArrayTestData = [ [ "M", -4.2549019607843, @@ -130,7 +130,95 @@ window.trackerPathArrayTestData = [ ] ]; -window.graphPathsTestData = [ +const coloredlineGraphsTestData = [ + { + stroke: "red", + "stroke-width": 2, + pathArray: [ + [ + "M", + 5.7450980392157, + 145 + ], + [ + "L", + 101.49673202614, + 72.5 + ] + ] + }, + { + stroke: "blue", + "stroke-width": 2, + pathArray: [ + [ + "M", + 101.49673202614, + 72.5 + ], + [ + "L", + 197.24836601307, + 181.25 + ] + ] + }, + { + stroke: "yellow", + "stroke-width": 2, + pathArray: [ + [ + "M", + 197.24836601307, + 181.25 + ], + [ + "L", + 293, + 253.75 + ] + ] + }, + { + stroke: "green", + "stroke-width": 2, + pathArray: [ + [ + "M", + 293, + 253.75 + ], + [ + "L", + 388.75163398693, + 108.75 + ], + [ + "L", + 484.50326797386, + 217.5 + ] + ] + }, + { + stroke: "brown", + "stroke-width": 2, + pathArray: [ + [ + "M", + 484.50326797386, + 217.5 + ], + [ + "L", + 580.25490196078, + 36.25 + ] + ] + } +]; + +const coloredlineGraphPathsTestData = [ [ [ "M", @@ -191,7 +279,7 @@ window.graphPathsTestData = [ ] ]; -window.segmentsTestData = [ +const coloredlineSegmentsTestData = [ { color: "red", points: [ @@ -460,91 +548,3 @@ window.segmentsTestData = [ ] } ]; - -window.graphsTestData = [ - { - stroke: "red", - "stroke-width": 2, - pathArray: [ - [ - "M", - 5.7450980392157, - 145 - ], - [ - "L", - 101.49673202614, - 72.5 - ] - ] - }, - { - stroke: "blue", - "stroke-width": 2, - pathArray: [ - [ - "M", - 101.49673202614, - 72.5 - ], - [ - "L", - 197.24836601307, - 181.25 - ] - ] - }, - { - stroke: "yellow", - "stroke-width": 2, - pathArray: [ - [ - "M", - 197.24836601307, - 181.25 - ], - [ - "L", - 293, - 253.75 - ] - ] - }, - { - stroke: "green", - "stroke-width": 2, - pathArray: [ - [ - "M", - 293, - 253.75 - ], - [ - "L", - 388.75163398693, - 108.75 - ], - [ - "L", - 484.50326797386, - 217.5 - ] - ] - }, - { - stroke: "brown", - "stroke-width": 2, - pathArray: [ - [ - "M", - 484.50326797386, - 217.5 - ], - [ - "L", - 580.25490196078, - 36.25 - ] - ] - } -]; diff --git a/test/coloredline.test.js b/test/coloredline.test.js new file mode 100644 index 0000000..0fcf9ca --- /dev/null +++ b/test/coloredline.test.js @@ -0,0 +1,133 @@ +const colorsColoredline = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], + chartColoredline = Highcharts.chart('coloredline-container', { + chart: { + spacing: [0, 0, 0 ,0] + }, + series: [ + { + type: 'coloredline', + data: [ + { + y: 40, + segmentColor: colorsColoredline[0] + }, + { + y: 60, + segmentColor: colorsColoredline[1] + }, + { + y: 30, + segmentColor: colorsColoredline[2] + }, + { + y: 10, + segmentColor: colorsColoredline[3] + }, + { + y: 50, + segmentColor: colorsColoredline[3] + }, + { + y: 20, + segmentColor: colorsColoredline[4] + }, + { + y: 70, + segmentColor: colorsColoredline[5] + } + ] + } + ] + }), + seriesColoredline = chartColoredline.series[0]; + +QUnit.test('Coloredline series render.', (assert) => { + assert.equal( + seriesColoredline.type, + 'coloredline', + 'Coloredline series should render properly.' + ); +}); + +QUnit.test('Coloredline series points.', (assert) => { + assert.deepEqual( + seriesColoredline.points.map((point) => + ({ segmentColor: point.segmentColor }) + ), + coloredlineSeriesPointsTestData, + "The series's points property should match the snapshot data." + ); +}); + +QUnit.test('Coloredline series tracker property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredline.tracker.pathArray, + coloredlineTrackerPathArrayTestData, + 1 + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The tracker's pathArray property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredline series graphs property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredline.graphs.map((graph) => ({ + stroke: graph.attr('stroke'), + "stroke-width": graph["stroke-width"], + pathArray: graph.pathArray + })), + coloredlineGraphsTestData, + 1, + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The graphs property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredline series graphPaths property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredline.graphPaths, + coloredlineGraphPathsTestData, + 1, + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The graphPaths property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); + +QUnit.test('Coloredline series segments property.', (assert) => { + const differences = objectsEqualWithBuffer( + seriesColoredline.segments.map((segment) => ({ + color: segment.color, + points: segment.points.map((point) => ({ + graphicPathArray: point.graphic.pathArray + })) + })), + coloredlineSegmentsTestData, + 1, + ); + const isError = differences.length > 0; + + assert.ok( + !isError, + `The segments property should match the snapshot data.${ + isError ? `Differences:\n${differences.join('\n')}` : '' + }` + ); +}); diff --git a/tests/unit-tests/index.html b/test/index.html similarity index 84% rename from tests/unit-tests/index.html rename to test/index.html index bf8a665..ebadc4b 100644 --- a/tests/unit-tests/index.html +++ b/test/index.html @@ -22,8 +22,10 @@ - - + + + + diff --git a/test/test-helper.js b/test/test-helper.js new file mode 100644 index 0000000..338d2d6 --- /dev/null +++ b/test/test-helper.js @@ -0,0 +1,43 @@ +const objectsEqualWithBuffer = (actual, expected, buffer, path = '') => { + const differences = []; + + const compareArrays = (actualArray, expectedArray, path) => { + actualArray.forEach((item, index) => { + const currentPath = `${path}[${index}]`; + + if (Array.isArray(expectedArray[index])) { + compareArrays(item, expectedArray[index], currentPath); + } else if (typeof expectedArray[index] === 'object' && expectedArray[index] !== null) { + differences.push( + ...objectsEqualWithBuffer(item, expectedArray[index], buffer, currentPath) + ); + } else { + const diff = Math.abs(item - expectedArray[index]); + + if (diff > buffer) { + differences.push(`${currentPath}: Actual: ${item}, Expected: ${expectedArray[index]}, Difference: ${diff}`); + } + } + }); + } + + for (const key in expected) { + const currentPath = path ? `${path}.${key}` : key; + + if (Array.isArray(expected[key])) { + compareArrays(actual[key], expected[key], currentPath); + } else if (typeof expected[key] === 'object' && expected[key] !== null) { + differences.push( + ...objectsEqualWithBuffer(actual[key], expected[key], buffer, currentPath) + ); + } else { + const diff = Math.abs(actual[key] - expected[key]); + + if (diff > buffer) { + differences.push(`${currentPath}: Actual: ${actual[key]}, Expected: ${expected[key]}, Difference: ${diff}`); + } + } + } + + return differences; +}; diff --git a/testem.json b/testem.json index 3075abd..f1d073a 100644 --- a/testem.json +++ b/testem.json @@ -1,6 +1,6 @@ { "framework": "qunit", - "test_page": "tests/unit-tests/index.html", + "test_page": "test/index.html", "launch_in_ci": [ "Chrome" ], diff --git a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap deleted file mode 100644 index 569f097..0000000 --- a/tests/jest-snapshot/__snapshots__/coloredarea-series.test.ts.snap +++ /dev/null @@ -1,152 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Refactoring regression tests - series coloredarea. Graphs element tests. The graphs paths should match the snapshot. 1`] = ` -[ - "", - "", - "", - "", - "", -] -`; - -exports[`Refactoring regression tests - series coloredarea. The segments data should match the snapshot. 1`] = ` -[ - { - "color": "red", - "points": [ - { - "segmentColor": "red", - "x": 0, - "y": 40, - }, - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - ], - }, - { - "color": "blue", - "points": [ - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - ], - }, - { - "color": "yellow", - "points": [ - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - ], - }, - { - "color": "green", - "points": [ - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - { - "segmentColor": "green", - "x": 4, - "y": 50, - }, - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - ], - }, - { - "color": "brown", - "points": [ - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - { - "segmentColor": "pink", - "x": 6, - "y": 70, - }, - ], - }, -] -`; - -exports[`Refactoring regression tests - series coloredarea. The series data should match the snapshot. 1`] = ` -{ - "data": [ - { - "segmentColor": "red", - "x": 0, - "y": 40, - }, - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - { - "segmentColor": "green", - "x": 4, - "y": 50, - }, - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - { - "segmentColor": "pink", - "x": 6, - "y": 70, - }, - ], - "seriesType": "coloredarea", -} -`; - -exports[`Refactoring regression tests - series coloredarea. The tracker element should match the snapshot. 1`] = ` - -`; diff --git a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap b/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap deleted file mode 100644 index a392ff7..0000000 --- a/tests/jest-snapshot/__snapshots__/coloredline-series.test.ts.snap +++ /dev/null @@ -1,152 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Refactoring regression tests - series coloredline. Graphs element tests. The graphs paths should match the snapshot. 1`] = ` -[ - "", - "", - "", - "", - "", -] -`; - -exports[`Refactoring regression tests - series coloredline. The segments data should match the snapshot. 1`] = ` -[ - { - "color": "red", - "points": [ - { - "segmentColor": "red", - "x": 0, - "y": 40, - }, - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - ], - }, - { - "color": "blue", - "points": [ - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - ], - }, - { - "color": "yellow", - "points": [ - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - ], - }, - { - "color": "green", - "points": [ - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - { - "segmentColor": "green", - "x": 4, - "y": 50, - }, - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - ], - }, - { - "color": "brown", - "points": [ - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - { - "segmentColor": "pink", - "x": 6, - "y": 70, - }, - ], - }, -] -`; - -exports[`Refactoring regression tests - series coloredline. The series data should match the snapshot. 1`] = ` -{ - "data": [ - { - "segmentColor": "red", - "x": 0, - "y": 40, - }, - { - "segmentColor": "blue", - "x": 1, - "y": 60, - }, - { - "segmentColor": "yellow", - "x": 2, - "y": 30, - }, - { - "segmentColor": "green", - "x": 3, - "y": 10, - }, - { - "segmentColor": "green", - "x": 4, - "y": 50, - }, - { - "segmentColor": "brown", - "x": 5, - "y": 20, - }, - { - "segmentColor": "pink", - "x": 6, - "y": 70, - }, - ], - "seriesType": "coloredline", -} -`; - -exports[`Refactoring regression tests - series coloredline. The tracker element should match the snapshot. 1`] = ` - -`; diff --git a/tests/jest-snapshot/coloredarea-series.test.ts b/tests/jest-snapshot/coloredarea-series.test.ts deleted file mode 100644 index 081b240..0000000 --- a/tests/jest-snapshot/coloredarea-series.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import Highcharts from 'highcharts'; -import multicolorModule from '../../dist/multicolor-series'; -import { isSeriesColored } from './../../typeguards'; -import { generateFormattedSegments, generateFormattedSeries } from './helper'; - -multicolorModule(Highcharts); - -describe('Refactoring regression tests - series coloredarea.', (): void => { - const containerElement = document.createElement('div'); - const chart = Highcharts.chart(containerElement, { - chart: { - animation: false - }, - - plotOptions: { - series: { - animation: false - } - }, - - accessibility: { - enabled: false - }, - - series: [ - { - type: 'coloredarea', - data: [ - { - y: 40, - segmentColor: 'red' - }, - { - y: 60, - segmentColor: 'blue' - }, - { - y: 30, - segmentColor: 'yellow' - }, - { - y: 10, - segmentColor: 'green' - }, - { - y: 50, - segmentColor: 'green' - }, - { - y: 20, - segmentColor: 'brown' - }, - { - y: 70, - segmentColor: 'pink' - } - ] - } - ] - }); - - const series = chart.series[0]; - - if (!series) { - throw Error('Series should be defined.'); - } - - if (!isSeriesColored(series)) { - throw Error('Series type should be coloredarea.'); - } - - const graphs = series.graphs; - - describe('Graphs element tests.', (): void => { - test( - 'The graphs element should be an five elements array.', - (): void => { - expect(graphs.length).toEqual(5); - } - ); - - test('The graphs paths should match the snapshot.', (): void => { - const paths = graphs.map((graph): string => - graph.element.outerHTML - ); - expect(paths).toMatchSnapshot(); - }); - }); - - test('The tracker element should match the snapshot.', (): void => { - expect(series?.tracker?.element).toMatchSnapshot(); - }); - - test('The series data should match the snapshot.', (): void => { - const formattedSeries = generateFormattedSeries(series, series.data); - expect(formattedSeries).toMatchSnapshot(); - }); - - test('The segments data should match the snapshot.', (): void => { - const formattedSegments = generateFormattedSegments(series.segments); - expect(formattedSegments).toMatchSnapshot(); - }); -}); diff --git a/tests/jest-snapshot/coloredline-series.test.ts b/tests/jest-snapshot/coloredline-series.test.ts deleted file mode 100644 index df16530..0000000 --- a/tests/jest-snapshot/coloredline-series.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import Highcharts from 'highcharts'; -import multicolorModule from '../../dist/multicolor-series'; -import { isSeriesColored } from './../../typeguards'; -import { generateFormattedSegments, generateFormattedSeries } from './helper'; - -multicolorModule(Highcharts); - -describe('Refactoring regression tests - series coloredline.', (): void => { - const containerElement = document.createElement('div'); - const chart = Highcharts.chart(containerElement, { - chart: { - animation: false - }, - - plotOptions: { - series: { - animation: false - } - }, - - accessibility: { - enabled: false - }, - - series: [ - { - type: 'coloredline', - data: [ - { - y: 40, - segmentColor: 'red' - }, - { - y: 60, - segmentColor: 'blue' - }, - { - y: 30, - segmentColor: 'yellow' - }, - { - y: 10, - segmentColor: 'green' - }, - { - y: 50, - segmentColor: 'green' - }, - { - y: 20, - segmentColor: 'brown' - }, - { - y: 70, - segmentColor: 'pink' - } - ] - } - ] - }); - - const series = chart.series[0]; - - if (!series) { - throw Error('Series should be defined.'); - } - - if (!isSeriesColored(series)) { - throw Error('Series type should be coloredline.'); - } - - const graphs = series.graphs; - - describe('Graphs element tests.', (): void => { - test( - 'The graphs element should be an five elements array.', - (): void => { - expect(graphs.length).toEqual(5); - } - ); - - test('The graphs paths should match the snapshot.', (): void => { - const paths = graphs.map((graph): string => - graph.element.outerHTML - ); - expect(paths).toMatchSnapshot(); - }); - }); - - test('The tracker element should match the snapshot.', (): void => { - expect(series?.tracker?.element).toMatchSnapshot(); - }); - - test('The series data should match the snapshot.', (): void => { - const formattedSeries = generateFormattedSeries(series, series.data); - expect(formattedSeries).toMatchSnapshot(); - }); - - test('The segments data should match the snapshot.', (): void => { - const formattedSegments = generateFormattedSegments(series.segments); - expect(formattedSegments).toMatchSnapshot(); - }); -}); diff --git a/tests/jest-snapshot/helper.ts b/tests/jest-snapshot/helper.ts deleted file mode 100644 index 213142a..0000000 --- a/tests/jest-snapshot/helper.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Point, Series } from "highcharts"; -import { SeriesColoredPoint, SeriesColoredSegment } from "../../types"; - -type SeriesColoredDefaultPoint = SeriesColoredPoint; - -type FormattedSeries = { - seriesType: string; - data: FormattedSeriesPoints[]; -}; - -type FormattedSegments = { - color: string; - points: FormattedSeriesPoints[]; -}; - -interface FormattedSeriesPoints { - segmentColor: string | undefined; - x: number; - y: number | undefined; -} - -export const generateFormattedSeries = ( - series: Series, - data: SeriesColoredDefaultPoint[] -): FormattedSeries => ({ - seriesType: series.type, - data: data.map((point): FormattedSeriesPoints => ({ - segmentColor: point?.segmentColor, - x: point.x, - y: point.y - })) -}); - -export const generateFormattedSegments = ( - segments: SeriesColoredSegment[] -): FormattedSegments[] => - segments.map((segment): FormattedSegments => ({ - color: segment.color, - points: segment.points.map((point): FormattedSeriesPoints => ({ - segmentColor: point?.segmentColor, - x: point.x, - y: point.y - })) - })); diff --git a/tests/unit-tests/coloredarea.test.js b/tests/unit-tests/coloredarea.test.js deleted file mode 100644 index a245766..0000000 --- a/tests/unit-tests/coloredarea.test.js +++ /dev/null @@ -1,45 +0,0 @@ -const chartColoredarea = Highcharts.chart('coloredarea-container', { - series: [ - { - type: 'coloredarea', - data: [ - { - y: 40, - segmentColor: 'red' - }, - { - y: 60, - segmentColor: 'blue' - }, - { - y: 30, - segmentColor: 'yellow' - }, - { - y: 10, - segmentColor: 'green' - }, - { - y: 50, - segmentColor: 'green' - }, - { - y: 20, - segmentColor: 'brown' - }, - { - y: 70, - segmentColor: 'pink' - } - ] - } - ] -}); - -QUnit.test('Coloredarea series render.', (assert) => { - assert.equal( - chartColoredarea.series[0].type, - 'coloredarea', - 'Coloredarea series should render properly.' - ); -}); diff --git a/tests/unit-tests/coloredline.test.js b/tests/unit-tests/coloredline.test.js deleted file mode 100644 index b76870a..0000000 --- a/tests/unit-tests/coloredline.test.js +++ /dev/null @@ -1,99 +0,0 @@ -const colors = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], - chartColoredline = Highcharts.chart('coloredline-container', { - chart: { - spacing: [0, 0, 0 ,0] - }, - series: [ - { - type: 'coloredline', - data: [ - { - y: 40, - segmentColor: colors[0] - }, - { - y: 60, - segmentColor: colors[1] - }, - { - y: 30, - segmentColor: colors[2] - }, - { - y: 10, - segmentColor: colors[3] - }, - { - y: 50, - segmentColor: colors[3] - }, - { - y: 20, - segmentColor: colors[4] - }, - { - y: 70, - segmentColor: colors[5] - } - ] - } - ] - }), - series = chartColoredline.series[0]; - -QUnit.test('Coloredline series render.', (assert) => { - assert.equal( - series.type, - 'coloredline', - 'Coloredline series should render properly.' - ); -}); - -QUnit.test('Coloredline series points.', (assert) => { - assert.deepEqual( - series.points.map((point) => ({ segmentColor: point.segmentColor })), - window.seriesPointsTestData, - "The series's points property should match the snapshot data." - ); -}); - -QUnit.test('Coloredline series tracker property.', (assert) => { - assert.deepEqual( - series.tracker.pathArray, - window.trackerPathArrayTestData, - "The tracker's pathArray property should match the snapshot data." - ); -}); - -QUnit.test('Coloredline series graphs property.', (assert) => { - assert.deepEqual( - series.graphs.map((graph) => ({ - stroke: graph.attr('stroke'), - "stroke-width": graph["stroke-width"], - pathArray: graph.pathArray - })), - window.graphsTestData, - 'The graphs property should match the snapshot data.' - ); -}); - -QUnit.test('Coloredline series segments property.', (assert) => { - assert.deepEqual( - series.segments.map((segment) => ({ - color: segment.color, - points: segment.points.map((point) => ({ - graphicPathArray: point.graphic.pathArray - })) - })), - window.segmentsTestData, - 'The segments property should match the snapshot data.' - ); -}); - -QUnit.test('Coloredline series graphPaths property.', (assert) => { - assert.deepEqual( - series.graphPaths, - window.graphPathsTestData, - 'The graphPaths property should match the snapshot data.' - ); -}); diff --git a/tsconfig.json b/tsconfig.json index 5cf076c..c26efb5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,5 +24,5 @@ "types": ["jquery", "trusted-types", "jest"] }, "include": ["ts/**/*"], - "exclude": ["tests/**/*"] + "exclude": ["test/**/*"] } From b501073b170c2cc64d84a61380fd985f547ef626 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 9 Jan 2024 08:42:31 +0100 Subject: [PATCH 31/66] Refactored core code --- test/coloredline.test.js | 2 +- test/test-helper.js | 52 ++++++++++++++++++++-------------------- typeguards.ts | 15 ------------ types.d.ts | 42 -------------------------------- 4 files changed, 27 insertions(+), 84 deletions(-) delete mode 100644 typeguards.ts diff --git a/test/coloredline.test.js b/test/coloredline.test.js index 0fcf9ca..81012fe 100644 --- a/test/coloredline.test.js +++ b/test/coloredline.test.js @@ -1,7 +1,7 @@ const colorsColoredline = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], chartColoredline = Highcharts.chart('coloredline-container', { chart: { - spacing: [0, 0, 0 ,0] + spacing: [0, 0, 0, 0] }, series: [ { diff --git a/test/test-helper.js b/test/test-helper.js index 338d2d6..d96e67d 100644 --- a/test/test-helper.js +++ b/test/test-helper.js @@ -2,41 +2,41 @@ const objectsEqualWithBuffer = (actual, expected, buffer, path = '') => { const differences = []; const compareArrays = (actualArray, expectedArray, path) => { - actualArray.forEach((item, index) => { - const currentPath = `${path}[${index}]`; + actualArray.forEach((item, index) => { + const currentPath = `${path}[${index}]`; - if (Array.isArray(expectedArray[index])) { - compareArrays(item, expectedArray[index], currentPath); - } else if (typeof expectedArray[index] === 'object' && expectedArray[index] !== null) { - differences.push( - ...objectsEqualWithBuffer(item, expectedArray[index], buffer, currentPath) - ); - } else { - const diff = Math.abs(item - expectedArray[index]); + if (Array.isArray(expectedArray[index])) { + compareArrays(item, expectedArray[index], currentPath); + } else if (typeof expectedArray[index] === 'object' && expectedArray[index] !== null) { + differences.push( + ...objectsEqualWithBuffer(item, expectedArray[index], buffer, currentPath) + ); + } else { + const diff = Math.abs(item - expectedArray[index]); - if (diff > buffer) { - differences.push(`${currentPath}: Actual: ${item}, Expected: ${expectedArray[index]}, Difference: ${diff}`); + if (diff > buffer) { + differences.push(`${currentPath}: Actual: ${item}, Expected: ${expectedArray[index]}, Difference: ${diff}`); + } } - } }); } for (const key in expected) { - const currentPath = path ? `${path}.${key}` : key; + const currentPath = path ? `${path}.${key}` : key; - if (Array.isArray(expected[key])) { - compareArrays(actual[key], expected[key], currentPath); - } else if (typeof expected[key] === 'object' && expected[key] !== null) { - differences.push( - ...objectsEqualWithBuffer(actual[key], expected[key], buffer, currentPath) - ); - } else { - const diff = Math.abs(actual[key] - expected[key]); + if (Array.isArray(expected[key])) { + compareArrays(actual[key], expected[key], currentPath); + } else if (typeof expected[key] === 'object' && expected[key] !== null) { + differences.push( + ...objectsEqualWithBuffer(actual[key], expected[key], buffer, currentPath) + ); + } else { + const diff = Math.abs(actual[key] - expected[key]); - if (diff > buffer) { - differences.push(`${currentPath}: Actual: ${actual[key]}, Expected: ${expected[key]}, Difference: ${diff}`); - } - } + if (diff > buffer) { + differences.push(`${currentPath}: Actual: ${actual[key]}, Expected: ${expected[key]}, Difference: ${diff}`); + } + } } return differences; diff --git a/typeguards.ts b/typeguards.ts deleted file mode 100644 index cc2a632..0000000 --- a/typeguards.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Series, Point } from 'highcharts'; -import { ColoredlineSeries, ColoredareaSeries } from './ts/MulticolorSeries'; -import { SeriesColoredPoint, SeriesColoredSegment } from './types'; - -type ExtendedColoredlineSeries = ColoredlineSeries & { - segments: SeriesColoredSegment>[]; -}; - -type ExtendedColoredareaSeries = ColoredareaSeries & { - segments: SeriesColoredSegment>[]; -}; - -export const isSeriesColored = ( - series: Series | ExtendedColoredlineSeries | ExtendedColoredareaSeries -): series is ExtendedColoredlineSeries | ExtendedColoredareaSeries => true; diff --git a/types.d.ts b/types.d.ts index 306d971..4091a9b 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,12 +1,5 @@ import type SVGPath from "highcharts-github/ts/Core/Renderer/SVG/SVGPath"; import type ColorType from "highcharts-github/ts/Core/Color/ColorType"; -import type { - SeriesOptions, - PointOptionsObject, - Point, - Series, - SVGElement -} from 'highcharts'; /** * @@ -23,45 +16,10 @@ type SeriesColoredSegment = { points: SeriesColoredPoint[]; }; -/** - * - * Core code types - * - */ - type SeriesColoredSegmentPath = SVGPath.Segment | string | number | undefined; type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], ColorType]; -/** - * - * Extended Highcharts module types - * - */ - -interface SeriesColoredPointOptions extends PointOptionsObject { - segmentColor?: string; -} - -type SeriesColoredType = 'coloredline' | 'coloredarea'; - -interface SeriesColoredOptions< - Type extends SeriesColoredType -> extends SeriesOptions { - type: Type; - data?: SeriesColoredPointOptions[]; -} - -type SeriesColoredlineOptions = SeriesColoredOptions<'coloredline'>; -type SeriesColoredareaOptions = SeriesColoredOptions<'coloredarea'>; - -declare module "highcharts" { - interface SeriesOptionsRegistry { - SeriesColoredlineOptions?: SeriesColoredlineOptions; - SeriesColoredareaOptions?: SeriesColoredareaOptions; - } -} - export { SeriesColoredPoint, SeriesColoredSegment, From f811c2e8143e523ff2779c611b219df270a67f25 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 9 Jan 2024 09:26:50 +0100 Subject: [PATCH 32/66] Refactored coloredarea series tests. --- test/coloredarea-helper.js | 376 ++++++++++++++++++------------------- test/coloredarea.test.js | 3 + 2 files changed, 191 insertions(+), 188 deletions(-) diff --git a/test/coloredarea-helper.js b/test/coloredarea-helper.js index 6c0f20a..6703630 100644 --- a/test/coloredarea-helper.js +++ b/test/coloredarea-helper.js @@ -25,158 +25,158 @@ const coloredareaSeriesPointsTestData = [ const coloredareaTrackerPathArrayTestData = [ [ "M", - -4.4509803921569, - 132.5 + -4.2549019607843, + 145.5 ], [ "L", - 5.5490196078431, - 132.5 + 5.7450980392157, + 145.5 ], [ "L", - 98.032679738562, - 66.25 + 101.49673202614, + 72.75 ], [ "L", - 98.032679738562, - 265 + 101.49673202614, + 291 ], [ "L", - 5.5490196078431, - 265 + 5.7450980392157, + 291 ], [ "L", - 15.5490196078431, - 265 + 15.7450980392157, + 291 ], [ "M", - 88.032679738562, - 66.25 + 91.49673202614, + 72.75 ], [ "L", - 98.032679738562, - 66.25 + 101.49673202614, + 72.75 ], [ "L", - 190.51633986928, - 165.625 + 197.24836601307, + 181.875 ], [ "L", - 190.51633986928, - 265 + 197.24836601307, + 291 ], [ "L", - 98.032679738562, - 265 + 101.49673202614, + 291 ], [ "L", - 108.032679738562, - 265 + 111.49673202614, + 291 ], [ "M", - 180.51633986928, - 165.625 + 187.24836601307, + 181.875 ], [ "L", - 190.51633986928, - 165.625 + 197.24836601307, + 181.875 ], [ "L", - 283, - 231.875 + 293, + 254.625 ], [ "L", - 283, - 265 + 293, + 291 ], [ "L", - 190.51633986928, - 265 + 197.24836601307, + 291 ], [ "L", - 200.51633986928, - 265 + 207.24836601307, + 291 ], [ "M", - 273, - 231.875 + 283, + 254.625 ], [ "L", - 283, - 231.875 + 293, + 254.625 ], [ "L", - 375.48366013072, - 99.375 + 388.75163398693, + 109.125 ], [ "L", - 467.96732026144, - 198.75 + 484.50326797386, + 218.25 ], [ "L", - 467.96732026144, - 265 + 484.50326797386, + 291 ], [ "L", - 283, - 265 + 293, + 291 ], [ "L", - 293, - 265 + 303, + 291 ], [ "M", - 457.96732026144, - 198.75 + 474.50326797386, + 218.25 ], [ "L", - 467.96732026144, - 198.75 + 484.50326797386, + 218.25 ], [ "L", - 560.45098039216, - 33.125 + 580.25490196078, + 36.375 ], [ "L", - 560.45098039216, - 265 + 580.25490196078, + 291 ], [ "L", - 467.96732026144, - 265 + 484.50326797386, + 291 ], [ "L", - 477.96732026144, - 265 + 494.50326797386, + 291 ] ]; @@ -187,23 +187,23 @@ const coloredareaGraphsTestData = [ pathArray: [ [ "M", - 5.5490196078431, - 132.5 + 5.7450980392157, + 145.5 ], [ "L", - 98.032679738562, - 66.25 + 101.49673202614, + 72.75 ], [ "L", - 98.032679738562, - 265 + 101.49673202614, + 291 ], [ "L", - 5.5490196078431, - 265 + 5.7450980392157, + 291 ] ] }, @@ -213,23 +213,23 @@ const coloredareaGraphsTestData = [ pathArray: [ [ "M", - 98.032679738562, - 66.25 + 101.49673202614, + 72.75 ], [ "L", - 190.51633986928, - 165.625 + 197.24836601307, + 181.875 ], [ "L", - 190.51633986928, - 265 + 197.24836601307, + 291 ], [ "L", - 98.032679738562, - 265 + 101.49673202614, + 291 ] ] }, @@ -239,23 +239,23 @@ const coloredareaGraphsTestData = [ pathArray: [ [ "M", - 190.51633986928, - 165.625 + 197.24836601307, + 181.875 ], [ "L", - 283, - 231.875 + 293, + 254.625 ], [ "L", - 283, - 265 + 293, + 291 ], [ "L", - 190.51633986928, - 265 + 197.24836601307, + 291 ] ] }, @@ -265,28 +265,28 @@ const coloredareaGraphsTestData = [ pathArray: [ [ "M", - 283, - 231.875 + 293, + 254.625 ], [ "L", - 375.48366013072, - 99.375 + 388.75163398693, + 109.125 ], [ "L", - 467.96732026144, - 198.75 + 484.50326797386, + 218.25 ], [ "L", - 467.96732026144, - 265 + 484.50326797386, + 291 ], [ "L", - 283, - 265 + 293, + 291 ] ] }, @@ -296,23 +296,23 @@ const coloredareaGraphsTestData = [ pathArray: [ [ "M", - 467.96732026144, - 198.75 + 484.50326797386, + 218.25 ], [ "L", - 560.45098039216, - 33.125 + 580.25490196078, + 36.375 ], [ "L", - 560.45098039216, - 265 + 580.25490196078, + 291 ], [ "L", - 467.96732026144, - 265 + 484.50326797386, + 291 ] ] } @@ -322,88 +322,88 @@ const coloredareaGraphPathsTestData = [ [ [ "M", - 5.5490196078431, - 132.5, + 5.7450980392157, + 145.5, "L", - 98.032679738562, - 66.25, + 101.49673202614, + 72.75, "L", - 98.032679738562, - 265, + 101.49673202614, + 291, "L", - 5.5490196078431, - 265 + 5.7450980392157, + 291 ], "red" ], [ [ "M", - 98.032679738562, - 66.25, + 101.49673202614, + 72.75, "L", - 190.51633986928, - 165.625, + 197.24836601307, + 181.875, "L", - 190.51633986928, - 265, + 197.24836601307, + 291, "L", - 98.032679738562, - 265 + 101.49673202614, + 291 ], "blue" ], [ [ "M", - 190.51633986928, - 165.625, + 197.24836601307, + 181.875, "L", - 283, - 231.875, + 293, + 254.625, "L", - 283, - 265, + 293, + 291, "L", - 190.51633986928, - 265 + 197.24836601307, + 291 ], "yellow" ], [ [ "M", - 283, - 231.875, + 293, + 254.625, "L", - 375.48366013072, - 99.375, + 388.75163398693, + 109.125, "L", - 467.96732026144, - 198.75, + 484.50326797386, + 218.25, "L", - 467.96732026144, - 265, + 484.50326797386, + 291, "L", - 283, - 265 + 293, + 291 ], "green" ], [ [ "M", - 467.96732026144, - 198.75, + 484.50326797386, + 218.25, "L", - 560.45098039216, - 33.125, + 580.25490196078, + 36.375, "L", - 560.45098039216, - 265, + 580.25490196078, + 291, "L", - 467.96732026144, - 265 + 484.50326797386, + 291 ], "brown" ] @@ -418,7 +418,7 @@ const coloredareaSegmentsTestData = [ [ "M", 5, - 137 + 150 ], [ "A", @@ -428,7 +428,7 @@ const coloredareaSegmentsTestData = [ 1, 1, 5.0039999993333355, - 136.99999800000018 + 149.99999800000018 ], [ "Z" @@ -439,8 +439,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 98, - 71 + 101, + 77 ], [ "A", @@ -449,8 +449,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 98.00399999933333, - 70.99999800000016 + 101.00399999933333, + 76.99999800000016 ], [ "Z" @@ -466,8 +466,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 98, - 71 + 101, + 77 ], [ "A", @@ -476,8 +476,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 98.00399999933333, - 70.99999800000016 + 101.00399999933333, + 76.99999800000016 ], [ "Z" @@ -488,8 +488,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 190, - 170 + 197, + 186 ], [ "A", @@ -498,8 +498,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 190.00399999933333, - 169.99999800000018 + 197.00399999933333, + 185.99999800000018 ], [ "Z" @@ -515,8 +515,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 190, - 170 + 197, + 186 ], [ "A", @@ -525,8 +525,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 190.00399999933333, - 169.99999800000018 + 197.00399999933333, + 185.99999800000018 ], [ "Z" @@ -537,8 +537,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 283, - 237 + 293, + 259 ], [ "A", @@ -547,8 +547,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 283.00399999933336, - 236.99999800000018 + 293.00399999933336, + 258.9999980000002 ], [ "Z" @@ -564,8 +564,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 283, - 237 + 293, + 259 ], [ "A", @@ -574,8 +574,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 283.00399999933336, - 236.99999800000018 + 293.00399999933336, + 258.9999980000002 ], [ "Z" @@ -586,8 +586,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 375, - 104 + 388, + 113 ], [ "A", @@ -596,8 +596,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 375.00399999933336, - 103.99999800000016 + 388.00399999933336, + 112.99999800000016 ], [ "Z" @@ -608,8 +608,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 467, - 204 + 484, + 222 ], [ "A", @@ -618,8 +618,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 467.00399999933336, - 203.99999800000018 + 484.00399999933336, + 221.99999800000018 ], [ "Z" @@ -635,8 +635,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 467, - 204 + 484, + 222 ], [ "A", @@ -645,8 +645,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 467.00399999933336, - 203.99999800000018 + 484.00399999933336, + 221.99999800000018 ], [ "Z" @@ -657,8 +657,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 560, - 37 + 580, + 40 ], [ "A", @@ -667,8 +667,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 560.0039999993334, - 36.99999800000017 + 580.0039999993334, + 39.99999800000017 ], [ "Z" diff --git a/test/coloredarea.test.js b/test/coloredarea.test.js index df89332..10bc402 100644 --- a/test/coloredarea.test.js +++ b/test/coloredarea.test.js @@ -1,5 +1,8 @@ const colorsColoredarea = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], chartColoredarea = Highcharts.chart('coloredarea-container', { + chart: { + spacing: [0, 0, 0, 0] + }, series: [ { type: 'coloredarea', From 5ef48cdfe6df3be9e5a2da36f9b5b30cd3f51f61 Mon Sep 17 00:00:00 2001 From: mfilipiec Date: Mon, 9 Sep 2024 10:44:35 +0200 Subject: [PATCH 33/66] Added new design to showcase page --- .vscode/settings.json | 3 + css/styles.css | 302 +++++++++++++++++++++++++++--------- index.html | 339 ++++++++++++++++++++++++++++++---------- js/demo.js | 349 ++++++++++++++++++++++++++++++++++-------- 4 files changed, 778 insertions(+), 215 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6b665aa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} diff --git a/css/styles.css b/css/styles.css index 56231bb..eb64438 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1,97 +1,257 @@ -@import 'https://code.highcharts.com/css/highcharts.css'; +@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap'); -/* content wrapper */ -#main-content { max-width:900px; margin:0px auto; font-size: 1.3em; } -#main-content ul li { margin-bottom:10px; } +:root { + --main-color: #157af2; + --second-color: #5ba2f6; + --light-color: #157af226; +} -/* Highcharts */ +*, +*::before, +*::after { + box-sizing: inherit; +} -.highcharts-title { width: calc(100% - 30px)!important; } +html { + box-sizing: border-box; + scroll-behavior: smooth; +} -.highcharts-background { fill: #f7f7f7; stroke: #e8eaeb; stroke-width: 5;} -.highcharts-navigator-mask-outside { fill-opacity: 0; } -.highcharts-plot-line { stroke-width: 10px; stroke: #a4c08e; } -.highcharts-plot-band { fill: #FCFFC5; fill-opacity: 1; } +body { + font-family: 'Montserrat', sans-serif; + margin: 0; + padding: 0; +} -/* Custom */ +.container { + max-width: 1200px; + width: 100%; + margin: 0 auto; + padding: 0 16px; +} -.btn { float: left; background-color: #d4d4d4; border: none; color: #000; cursor: pointer; } +header { + background-color: #1b1534; + color: white; + position: relative; + background: linear-gradient(91deg, #1b1534 39.41%, #3f1956 99.35%); + overflow: hidden; +} -#flash { color: #000000; background-color: rgb(90, 200, 90); display: none; height: 30px; width: calc(100% + 10px); } -#report { padding: 7px 0px 7px 10px; } +header .logo { + height: 64px; +} -.chart-title { background-color: #3d3d3d; color: #fff; float: left; font-size: 0.756em; padding: 10px; width: calc(100% - 1px); } -.chart-subtitle { line-height: 1.7em; font-size: 0.8em; padding-right: 10px; color: rgba(255, 0, 0, 0.8); float: right; } +header .columns { + display: flex; + align-items: center; + justify-content: space-between; + padding: 48px 0; + gap: 32px; +} -.chart-href, .chart-href a, .chart-href a:hover { float: right; color: red; text-decoration: none } +header .details { + max-width: 454px; +} -h1, h2, h3, h4, h5, h6, p, blockquote { margin: 0; padding: 0; } +header .chart { + flex: 1; +} -body { background-color: #fff; color: #737373; font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; font-size: 0.6em; margin: 10px 13px 10px 13px; line-height: 1.2em; } -table { margin: 10px 0 15px 0; border-collapse: collapse; } -td, th { border: 1px solid #ddd; padding: 3px 10px; } -th { padding: 5px 10px; } -a { color: #0069d6; } -a:hover { color: #0050a3; text-decoration: none; } -a img { border: none; } -p { margin-bottom: 9px; } -h1, h2, h3, h4, h5, h6 { color: #404040; line-height: 36px; } -h1 { margin-bottom: 18px; font-size: 30px; } -h2 { font-size: 24px; } -h3 { font-size: 18px; } -h4 { font-size: 16px; } -h5 {font-size: 14px; } -h6 { font-size: 13px; } -hr { margin: 0 0 19px; border: 0; border-bottom: 1px solid #ccc; } +header h1 { + font-size: 40px; + line-height: 56px; + font-weight: 300; +} -blockquote {padding: 13px 13px 21px 15px;margin-bottom: 18px;font-family: georgia, serif;font-style: italic; } -blockquote:before {content: "\201C";font-size: 40px;margin-left: -10px;font-family: georgia, serif;color: #eee; } -blockquote p {font-size: 14px;font-weight: 300;line-height: 18px;margin-bottom: 0;font-style: italic; } -code, pre {font-family: Monaco, Andale Mono, Courier New, monospace; } -code {background-color: #fee9cc;color: rgba(0, 0, 0, 0.75);padding: 1px 3px;font-size: 12px;-webkit-border-radius: 3px;-moz-border-radius: 3px;border-radius: 3px; } -pre {display: block;padding: 14px;margin: 0 0 18px;line-height: 16px;font-size: 11px;border: 1px solid #d9d9d9;white-space: pre-wrap;word-wrap: break-word; } -pre code {background-color: #fff;color: #737373;font-size: 11px;padding: 0; } -sup {font-size: 0.83em;vertical-align: super;line-height: 0; } +header p { + font-size: 20px; + line-height: 24px; +} -* {-webkit-print-color-adjust: exact; } +nav { + background-color: var(--second-color); + position: sticky; + top: 0; + z-index: 2; + overflow-x: auto; +} -@media screen and (min-width: 914px) { - body { width: 100%; margin: 10px auto;} +nav ul { + height: 60px; + margin: 0; + padding: 0; + display: flex; + list-style: none; } -@media print { - body,code,pre code,h1,h2,h3,h4,h5,h6 { color: black;}table,pre { page-break-inside: avoid;} +nav ul li a { + color: white; + height: 100%; + text-decoration: none; + display: flex; + align-items: center; + justify-content: center; + padding: 1.25rem; +} +nav ul li a:hover { + background-color: var(--main-color); } -#chart, #chart-advanced, #chart-3d {height: 500px;width: 100%;position: relative; } +main.container { + padding: 1px 16px 48px 16px; +} +section { + margin: 32px 0; +} -/* Annotations UI */ +h2 { + padding-top: 60px; + margin: -60px 0 8px 0; +} -.form {margin-right: 10px;width: 160px;height: 330px;padding: 0px;background-color: #e8eaeb;padding: 5px;float: left;font-size: 1.4em; } -.form .form-header {font-size: 1em;padding: 10px;background: #3d3d3d;color: #fff;line-height: 1.45em; } -.form > p {padding: 5px 10px;margin: 0px; } -.form > p:nth-child(2n) { background: #f7f7f7; } -.form label {width: 140px;float: left;margin-top: 5px;padding-bottom: 3px; } -.form input {width: 140px; } -.form input[type="radio"] {width: auto;margin-left: 55px;margin-bottom: 3px; } -.form .short {width: 60px;float: right;margin: 2px 0px 0px 0px; } +h3 { + margin: 16px 0 8px 0; +} + +p { + margin: 8px 0; +} + +pre { + margin: 10px 0 16px 0; +} + +ul { + margin: 8px 0; +} + +code { + border-radius: 4px; +} + +pre { + position: relative; +} -.highcharts-indicators { fill: none; } -#chart-advanced .highcharts-yaxis .highcharts-axis-line { stroke-width: 2px; } -#chart-advanced .highcharts-plot-line { stroke-width: 1px; stroke: orange; } +pre .hljs-copy { + position: absolute; + top: 5px; + right: 5px; + background-color: #282c34; + color: white; + border-radius: 4px; + border: none; + display: flex; + align-items: center; + height: 32px; + font-weight: 100; +} +pre .hljs-copy path { + transition: all ease-in-out 0.2s; +} -/* ==== 3d ==== */ +pre .hljs-copy:hover path { + stroke: var(--second-color); +} -#chart-3d .highcharts-background { fill: #000;} -#chart-3d .highcharts-series.highcharts-series-0 path { stroke-width: 0; } -#chart-3d .highcharts-grid-line { stroke-width: 1px; stroke: #d8d8d8;} -#chart-3d .chart-title { width: calc(100% + 4px); } +pre .hljs-copy + code.hljs { + padding-right: 72px; +} -/* custom gradients */ -#chart-3d .moon { fill-opacity: 1; fill: url(#gradient-2); stroke-width:0; } -#chart-3d .sun { fill-opacity: 1; fill: url(#gradient-1); stroke-width:0; } -#chart-3d .planet { fill-opacity: 1; fill: url(#gradient-0); stroke-width:0; } -#chart-3d .magneticFieldPink { fill-opacity: 1; fill: url(#magneticFieldPink); stroke-width:0; } -#chart-3d .magneticFieldBlue { fill-opacity: 1; fill: url(#magneticFieldBlue); stroke-width:0; } \ No newline at end of file +.table-container { + overflow-x: auto; +} +table { + border-radius: 4px; + color: #abb2bf; + background: #282c34; + width: 100%; + min-width: 710px; + overflow: hidden; +} + +table, +table th, +table td { + border: 1px solid white; + border-collapse: collapse; +} + +table th, +table td { + text-align: left; + padding: 12px; +} + +table code.hljs { + background-color: #6e768166; + color: white; +} + +table tbody tr:nth-of-type(odd) { + background-color: #373b42; +} + +footer { + background-color: #1b1534; + color: white; + padding: 24px 0; +} + +footer .links { + display: flex; + align-items: center; + justify-content: center; + gap: 64px; +} + +footer .links a { + text-decoration: none; +} + +footer .logo { + height: 48px; +} + +footer .social { + display: flex; + gap: 16px; +} + +footer .social-link { + height: 32px; +} + +footer .social-img { + height: 100%; +} + +@media screen and (max-width: 1279px) { + .container { + padding: 0 2.5rem; + } +} + +@media screen and (max-width: 1023px) { +} + +@media screen and (max-width: 767px) { + .container { + padding: 0 1.5rem; + } + + footer .links { + flex-direction: column; + gap: 32px; + } +} + +// Retina +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { + .container { + max-width: 1100px; + } +} diff --git a/index.html b/index.html index 7bf9be1..08f31f7 100644 --- a/index.html +++ b/index.html @@ -1,97 +1,272 @@ + Multicolor series - - - - - - - - - - -
-

Multicolor series - Highcharts module

- -

Go to project page to see this module in action: http://blacklabel.github.io/multicolor_series/.

- -

Requirements

- -

Plugin requires the latest Highcharts (4+)

- -

Installation

- -

Like any other Highcharts module (e.g. exporting), add <script> tag pointing to multicolor_series.js below Highcharts script tag.

-

For NPM users:

-
var Highcharts = require('highcharts');
-require('multicolor_series')(Highcharts);
+ + + -

Code

+ + + + + -

Releases

+ -
    -
  • Versions 2.x.y: compatible with Highcharts >= 4.2.2
  • -
  • Versions 1.x.y: compatible with Highcharts < 4.2.2
  • -
-
+ +
+
+
+
+ + + +

Multicolor Series Highcharts Module

+

Highcharts plugin that adds new multicolor series, where you can define color for each part of a path, + between + two points.

+
+
+
+
+
+ +
+
+

+ The latest code is available on GitHub: + + https://github.com/blacklabel/multicolor_series/ + +

+
+
+

General prerequisites

+

This module requires highcharts package with the following versions installed in your project:

+
    +
  • For version 3.0.0 - Highcharts v11.4.0+
  • +
  • For version 2.4.0 - 3.0.0 - Highcharts v10.0.0 - v11.4.0
  • +
  • For version 2.3.0 - Highcharts v9.2.0 - v9.3.3
  • +
  • For version 2.x.x - Highcharts v4.2.2 - v9.2.0
  • +
  • For version 1.x.x - Highcharts v4.0.0 - v4.2.2
  • +
+
+
+

Installation

+

NPM:

+

+ Get the package from NPM in your app: +

npm install highcharts-multicolor-series
+

+

+ If Highcharts is not already installed, get the package with Highcharts: +

npm install highcharts highcharts-multicolor-series
+

+

CDN

+

+ Like any other Highcharts module (e.g. exporting), add <script> + tag pointing to + multicolor_series.js below Highcharts script tag: +

+
<script src="https://cdn.jsdelivr.net/npm/highcharts-multicolor-series"></script>
+
+
+

Usage

+

Basic usage example:

+
Highcharts.chart('container', {
+  series: [{
+    type: 'coloredline',
+    data: [{
+      y: 200,
+      segmentColor: 'red'
+    },{
+      y: 210,
+      segmentColor: 'red'
+    },{
+      y: 210,
+      segmentColor: 'red'
+    },{
+      y: 100,
+      segmentColor: 'green'
+    }, {
+      y: 100,
+      segmentColor: 'red'
+    }]
+  }]
+});
+

Basic usage example with Typescript:

+

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quaerat, nemo veniam. Iste, nesciunt quae? Beatae nam + odio excepturi vero itaque tempora tempore natus minima odit. Beatae nesciunt perspiciatis hic a.

+

Multicolor series typing:

+

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ut blanditiis fugit possimus adipisci. Culpa nostrum, + perferendis tempora obcaecati recusandae debitis fugit, provident dolore id repudiandae consequatur ipsam ut + dolorum dolores.

+
+
+

Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeRequiredDefaultsDescription
series.typeStringYes-Must be set to coloredline or coloredarea to use the module.
point.segmentColorStringYes-Controls line/area color between n and n+1 point.
+
+
+
+

Demos

+
+
+
+
+

Changelog

+
    +
  • Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus repellendus labore dignissimos + asperiores ut, dolore inventore voluptate voluptatum provident odio culpa ea explicabo voluptates accusamus + commodi aspernatur molestiae dolorem ipsa?
  • +
  • Nemo incidunt aliquid atque, id iure odio fuga molestias accusantium corrupti provident eius necessitatibus + rem aliquam repellat quo quod dolorum consectetur rerum dolorem possimus odit eveniet. Asperiores, quasi? + Dolor, eos?
  • +
  • Adipisci aliquam tempora cupiditate pariatur maxime quae, recusandae, iusto ullam veritatis ipsam possimus + sapiente eveniet dolorem necessitatibus corporis. Nobis quisquam dolorum excepturi ea temporibus consectetur, + velit corporis pariatur accusamus deserunt?
  • +
  • Atque error quidem maiores incidunt soluta ea quod id, praesentium magni cupiditate doloremque quasi + reprehenderit illo temporibus labore adipisci distinctio dolorum harum magnam impedit, optio perspiciatis + obcaecati? Veniam, recusandae explicabo.
  • +
  • Eius, quisquam facilis. Ratione impedit soluta reprehenderit aut, quos earum aliquid omnis quasi velit. + Laborum excepturi, molestiae praesentium adipisci magni rerum obcaecati similique et deleniti at hic id natus + minima.
  • +
+
+
+

FAQ

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Reprehenderit facilis id totam quaerat expedita + labore quibusdam voluptatibus laudantium tempora. Voluptas neque velit asperiores quasi tenetur culpa dicta ea? + Error, quasi?

+

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Veniam quos unde et numquam quisquam dicta nam + voluptatibus. Omnis dolore dolorem pariatur autem quas! Laborum quod esse modi corporis quis ea.

+

Deserunt ex corporis facere non ut natus sit, ipsa soluta. Doloremque consectetur illo fuga repellat est + voluptate ab? Blanditiis sequi sint eos amet soluta nulla et illo voluptatibus libero sunt!

+

Numquam perferendis laborum porro commodi, similique qui ullam excepturi, laudantium in accusamus possimus + quisquam placeat omnis eum. Debitis esse similique facilis laboriosam rem ipsam, ad distinctio. Praesentium + tempora nemo eveniet!

+

Dignissimos ea reiciendis quibusdam sint provident doloribus nostrum, ducimus dolores unde at deleniti + temporibus sunt cumque fuga facilis. Laborum consectetur neque voluptatem vel iste deserunt minima obcaecati + aspernatur quibusdam excepturi!

+

Dolorum quam eaque tempore est ullam consequatur accusamus aliquam illum repellendus, corporis veniam ea + blanditiis cumque architecto delectus temporibus incidunt assumenda! Enim expedita laboriosam repellendus? Eius + illo iusto quae corrupti.

+
+
+ - + + \ No newline at end of file diff --git a/js/demo.js b/js/demo.js index 8eeefab..1da9071 100644 --- a/js/demo.js +++ b/js/demo.js @@ -1,65 +1,290 @@ -/* global Highcharts $:true */ -$(function () { - var colors = Highcharts.getOptions().colors || [ - '#7cb5ec', '#434348', '#90ed7d', '#f7a35c', '#8085e9', - '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1' - ]; - - function color(i) { - var ret; - if (i < colors.length) { - ret = colors[i]; - } else { - ret = colors[i % colors.length]; - } - return ret; - } +Highcharts.chart('showcase-demo', { + chart: { + spacing: [30, 30, 20, 30] + }, + title: { + text: 'Multicolor Series' + }, + subtitle: { + useHTML: true, + align: 'right', + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + ` + }, + credits: { + position: { + x: -35, + y: -30 + } + }, + plotOptions: { + series: { + marker: { + enabled: false + } + } + }, + yAxis: { + title: { + text: '' + }, + labels: { + enabled: false + } + }, + series: [ + { + type: 'coloredline', + name: 'Line series', + data: [ + { + y: 12, + segmentColor: '#7cb5ec' + }, + { + y: 15, + segmentColor: '#7cb5ec' + }, + { + y: 18, + segmentColor: '#90ed7d' + }, + { + y: 23, + segmentColor: '#90ed7d' + }, + { + y: 29, + segmentColor: '#90ed7d' + }, + { + y: 24, + segmentColor: '#f7a35c' + }, + { + y: 11, + segmentColor: '#f7a35c' + }, + { + y: 8, + segmentColor: '#8085e9' + }, + { + y: 9, + segmentColor: '#8085e9' + } + ] + }, + { + type: 'coloredarea', + name: 'Area series', + pointStart: 9, + data: [ + { + y: 10, + segmentColor: '#f15c80' + }, + { + y: 13, + segmentColor: '#e4d354' + }, + { + y: 19, + segmentColor: '#e4d354' + }, + { + y: 22, + segmentColor: '#2b908f' + }, + { + y: 20, + segmentColor: '#91e8e1' + }, + { + y: 18, + segmentColor: '#91e8e1' + }, + { + y: 17, + segmentColor: '#91e8e1' + }, + { + y: 14, + segmentColor: '#f45b5b' + }, + { + y: 15, + segmentColor: '#f45b5b' + } + ] + } + ] +}); - function genData(n) { - var d = [], - i = 0; - while (i < n) { - var v = Math.round(i / 16); - d.push({ - y: Math.random() * 100, - segmentColor: color(v) - }); - i++; - } - return d; - } +Highcharts.chart('coloredline', { + title: { + text: 'Colored line series' + }, + subtitle: { + useHTML: true, + align: 'right', + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + ` + }, + plotOptions: { + series: { + marker: { + enabled: false + } + } + }, + series: [ + { + type: 'coloredline', + name: 'Line series', + data: [ + { + y: 12, + segmentColor: '#7cb5ec' + }, + { + y: 15, + segmentColor: '#7cb5ec' + }, + { + y: 18, + segmentColor: '#90ed7d' + }, + { + y: 23, + segmentColor: '#90ed7d' + }, + { + y: 29, + segmentColor: '#90ed7d' + }, + { + y: 24, + segmentColor: '#f7a35c' + }, + { + y: 11, + segmentColor: '#f7a35c' + }, + { + y: 8, + segmentColor: '#8085e9' + }, + { + y: 9, + segmentColor: '#8085e9' + } + ] + } + ] +}); - Highcharts.chart('container-line', { - chart: { - type: 'coloredline', - zoomType: 'xy' - }, - title: { - useHTML: true, - x: -10, - y: 8, - text: 'Multicolor (line) series Black Label plugin by ' - }, - series: [{ - data: genData(256) - }] - }); - Highcharts.chart('container-area', { - chart: { - type: 'coloredarea', - zoomType: 'xy' - }, - title: { - style: { - 'fontSize': '1em' - }, - useHTML: true, - x: -10, - y: 8, - text: 'Multicolor (area) series Black Label plugin by ' - }, - series: [{ - data: genData(256) - }] - }); +Highcharts.chart('coloredarea', { + title: { + text: 'Colored area series' + }, + subtitle: { + useHTML: true, + align: 'right', + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + ` + }, + plotOptions: { + series: { + marker: { + enabled: false + } + } + }, + series: [ + { + type: 'coloredarea', + name: 'Area series', + data: [ + { + y: 10, + segmentColor: '#f15c80' + }, + { + y: 13, + segmentColor: '#e4d354' + }, + { + y: 19, + segmentColor: '#e4d354' + }, + { + y: 22, + segmentColor: '#2b908f' + }, + { + y: 20, + segmentColor: '#91e8e1' + }, + { + y: 18, + segmentColor: '#91e8e1' + }, + { + y: 17, + segmentColor: '#91e8e1' + }, + { + y: 14, + segmentColor: '#f45b5b' + }, + { + y: 15, + segmentColor: '#f45b5b' + } + ] + } + ] }); From 16308003600a36e78b44243364afe5e22bd33a8b Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 10 Sep 2024 09:40:39 +0200 Subject: [PATCH 34/66] Updated dependencies/fixed ts errors and tests to match the newest HC version. --- custom-module-demo.html | 72 +- dist/multicolor-series.js | 4 +- package.json | 15 +- pnpm-lock.yaml | 1554 +++++++++++++----------------------- test/coloredarea-helper.js | 88 +- test/coloredarea.test.js | 2 + test/coloredline.test.js | 2 + ts/MulticolorSeries.ts | 4 +- tsconfig.json | 3 +- 9 files changed, 670 insertions(+), 1074 deletions(-) diff --git a/custom-module-demo.html b/custom-module-demo.html index cce8186..e9a4c0c 100644 --- a/custom-module-demo.html +++ b/custom-module-demo.html @@ -8,85 +8,97 @@ -
-
+
+
diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 923e45a..eccf632 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -266,7 +266,9 @@ class ColoredlineSeries extends LineSeries { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) .on('mouseout', (event) => { - pointer.onTrackerMouseOut(event); + if (pointer) { + pointer.onTrackerMouseOut(event); + } }); if (css) { track.css(css); diff --git a/package.json b/package.json index dd1bc8f..8505843 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "prepare": "husky install" }, "devDependencies": { + "highcharts-github": "github:highcharts/highcharts", "@types/jest": "^29.5.6", "@types/jquery": "^3.5.6", "@types/trusted-types": "^2.0.2", @@ -34,14 +35,14 @@ "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.0.1", "google-closure-compiler": "^20160517.1.0", - "gulp": "^4.0.0", - "gulp-bump": "^2.1.0", + "gulp": "^5.0.0", + "gulp-bump": "^3.2.0", "gulp-eslint": "^6.0.0", - "gulp-git": "^2.10.0", - "gulp-if": "^2.0.0", + "gulp-git": "^2.11.0", + "gulp-if": "3.0.0", "gulp-rename": "^2.0.0", "gulp-replace": "^1.1.4", - "gulp-sourcemaps": "1.6.0", + "gulp-sourcemaps": "3.0.0", "gulp-typescript": "^6.0.0-alpha.1", "husky": "^8.0.0", "jest": "^29.7.0", @@ -53,9 +54,5 @@ "ts-node": "^10.9.1", "typescript": "^5.2.2", "yargs": "^4.7.0" - }, - "dependencies": { - "highcharts": "^11.2.0", - "highcharts-github": "github:highcharts/highcharts" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98c74da..df45802 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - highcharts: - specifier: ^11.2.0 - version: 11.2.0 - highcharts-github: - specifier: github:highcharts/highcharts - version: github.com/highcharts/highcharts/db37d463502f974f9a48f8454262a86deb96117b - devDependencies: '@types/jest': specifier: ^29.5.6 @@ -35,20 +27,20 @@ devDependencies: specifier: ^20160517.1.0 version: 20160517.1.0 gulp: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^5.0.0 + version: 5.0.0 gulp-bump: - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^3.2.0 + version: 3.2.0 gulp-eslint: specifier: ^6.0.0 version: 6.0.0 gulp-git: - specifier: ^2.10.0 - version: 2.10.0 + specifier: ^2.11.0 + version: 2.11.0 gulp-if: - specifier: ^2.0.0 - version: 2.0.0 + specifier: 3.0.0 + version: 3.0.0 gulp-rename: specifier: ^2.0.0 version: 2.0.0 @@ -56,11 +48,14 @@ devDependencies: specifier: ^1.1.4 version: 1.1.4 gulp-sourcemaps: - specifier: 1.6.0 - version: 1.6.0 + specifier: 3.0.0 + version: 3.0.0 gulp-typescript: specifier: ^6.0.0-alpha.1 version: 6.0.0-alpha.1(typescript@5.2.2) + highcharts-github: + specifier: github:highcharts/highcharts + version: github.com/highcharts/highcharts/60944b0fe2c13c465457dae29beaf68c46aab8e9 husky: specifier: ^8.0.0 version: 8.0.0 @@ -475,6 +470,37 @@ packages: - supports-color dev: true + /@gulp-sourcemaps/identity-map@2.0.1: + resolution: {integrity: sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==} + engines: {node: '>= 0.10'} + dependencies: + acorn: 6.4.2 + normalize-path: 3.0.0 + postcss: 7.0.39 + source-map: 0.6.1 + through2: 3.0.2 + dev: true + + /@gulp-sourcemaps/map-sources@1.0.0: + resolution: {integrity: sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==} + engines: {node: '>= 0.10'} + dependencies: + normalize-path: 2.1.1 + through2: 2.0.5 + dev: true + + /@gulpjs/messages@1.1.0: + resolution: {integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==} + engines: {node: '>=10.13.0'} + dev: true + + /@gulpjs/to-absolute-glob@4.0.0: + resolution: {integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==} + engines: {node: '>=10.13.0'} + dependencies: + is-negated-glob: 1.0.0 + dev: true + /@humanwhocodes/config-array@0.6.0: resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} engines: {node: '>=10.10.0'} @@ -1129,6 +1155,12 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} @@ -1171,13 +1203,6 @@ packages: engines: {node: '>=6'} dev: true - /ansi-cyan@0.1.1: - resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: true - /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1192,13 +1217,6 @@ packages: ansi-wrap: 0.1.0 dev: true - /ansi-red@0.1.1: - resolution: {integrity: sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: true - /ansi-regex@2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} @@ -1247,15 +1265,6 @@ packages: resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} dev: true - /anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1275,10 +1284,6 @@ packages: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: true - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: true - /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -1301,14 +1306,6 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /arr-diff@1.1.0: - resolution: {integrity: sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-slice: 0.2.3 - dev: true - /arr-diff@2.0.0: resolution: {integrity: sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==} engines: {node: '>=0.10.0'} @@ -1321,30 +1318,11 @@ packages: engines: {node: '>=0.10.0'} dev: true - /arr-filter@1.1.2: - resolution: {integrity: sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==} - engines: {node: '>=0.10.0'} - dependencies: - make-iterator: 1.0.1 - dev: true - /arr-flatten@1.1.0: resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} engines: {node: '>=0.10.0'} dev: true - /arr-map@2.0.2: - resolution: {integrity: sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==} - engines: {node: '>=0.10.0'} - dependencies: - make-iterator: 1.0.1 - dev: true - - /arr-union@2.1.0: - resolution: {integrity: sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==} - engines: {node: '>=0.10.0'} - dev: true - /arr-union@3.1.0: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} @@ -1369,40 +1347,11 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - /array-initial@1.1.0: - resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==} - engines: {node: '>=0.10.0'} - dependencies: - array-slice: 1.1.0 - is-number: 4.0.0 - dev: true - - /array-last@1.3.0: - resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 4.0.0 - dev: true - - /array-slice@0.2.3: - resolution: {integrity: sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==} - engines: {node: '>=0.10.0'} - dev: true - /array-slice@1.1.0: resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} engines: {node: '>=0.10.0'} dev: true - /array-sort@1.0.0: - resolution: {integrity: sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==} - engines: {node: '>=0.10.0'} - dependencies: - default-compare: 1.0.0 - get-value: 2.0.6 - kind-of: 5.1.0 - dev: true - /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1418,11 +1367,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -1433,25 +1377,20 @@ packages: engines: {node: '>=4'} dev: true - /async-done@1.3.2: - resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} - engines: {node: '>= 0.10'} + /async-done@2.0.0: + resolution: {integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==} + engines: {node: '>= 10.13.0'} dependencies: end-of-stream: 1.4.4 once: 1.4.0 - process-nextick-args: 2.0.1 stream-exhaust: 1.0.2 dev: true - /async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - dev: true - - /async-settle@1.0.0: - resolution: {integrity: sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==} - engines: {node: '>= 0.10'} + /async-settle@2.0.0: + resolution: {integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==} + engines: {node: '>= 10.13.0'} dependencies: - async-done: 1.3.2 + async-done: 2.0.0 dev: true /async@0.2.10: @@ -1468,6 +1407,10 @@ packages: hasBin: true dev: true + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + dev: true + /babel-jest@29.7.0(@babel/core@7.23.7): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1540,19 +1483,13 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) dev: true - /bach@1.2.0: - resolution: {integrity: sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==} - engines: {node: '>= 0.10'} + /bach@2.0.1: + resolution: {integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==} + engines: {node: '>=10.13.0'} dependencies: - arr-filter: 1.1.2 - arr-flatten: 1.1.0 - arr-map: 2.0.2 - array-each: 1.0.1 - array-initial: 1.1.0 - array-last: 1.3.0 - async-done: 1.3.2 - async-settle: 1.0.0 - now-and-later: 2.0.1 + async-done: 2.0.0 + async-settle: 2.0.0 + now-and-later: 3.0.0 dev: true /backbone@1.5.0: @@ -1565,32 +1502,29 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + requiresBuild: true + dev: true + optional: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + /base64id@2.0.0: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} dev: true - /base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - /beeper@1.1.1: resolution: {integrity: sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==} engines: {node: '>=0.10.0'} dev: true - /binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} dev: true /binaryextensions@2.3.0: @@ -1598,12 +1532,13 @@ packages: engines: {node: '>=0.8'} dev: true - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} dependencies: - file-uri-to-path: 1.0.0 + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: true - optional: true /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -1645,24 +1580,6 @@ packages: repeat-element: 1.1.4 dev: true - /braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1703,12 +1620,18 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /bump-regex@2.9.0: - resolution: {integrity: sha512-o4WC1mKw/kM0zScuOxZKi243lc+/h09b41u2A7HlWbxHsEDsTTZtqDZYkQj65l24J8+9Saahn5ep+EyeqpQoCg==} - engines: {node: '>= 0.12.0'} + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bump-regex@4.1.0: + resolution: {integrity: sha512-75Kr/Iw6lqnOKF/7YpE0WyOMBaaSpdrXTquIxR0qbTgZxwJos6563zNSn+w/LPJUoL4DXq20QX9AQy4+UJbyhw==} + engines: {node: '>= 4.0.0'} dependencies: semver: 5.7.2 - xtend: 4.0.2 dev: true /bytes@3.0.0: @@ -1721,21 +1644,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -1824,25 +1732,19 @@ packages: inherits: 2.0.4 dev: true - /chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 + readdirp: 3.6.0 optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color + fsevents: 2.3.3 dev: true /ci-info@3.9.0: @@ -1854,16 +1756,6 @@ packages: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true - /class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -1884,6 +1776,14 @@ packages: wrap-ansi: 2.1.0 dev: true + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1938,23 +1838,6 @@ packages: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} dev: true - /collection-map@1.0.0: - resolution: {integrity: sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-map: 2.0.2 - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: true - - /collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -1997,10 +1880,6 @@ packages: engines: {node: '>= 10'} dev: true - /component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: true - /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2027,16 +1906,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - dev: true - /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true @@ -2245,15 +2114,11 @@ packages: engines: {node: '>= 0.6'} dev: true - /copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - - /copy-props@2.0.5: - resolution: {integrity: sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==} + /copy-props@4.0.0: + resolution: {integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==} + engines: {node: '>= 10.13.0'} dependencies: - each-props: 1.3.2 + each-props: 3.0.0 is-plain-object: 5.0.0 dev: true @@ -2312,6 +2177,14 @@ packages: which: 2.0.2 dev: true + /css@3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} + dependencies: + inherits: 2.0.4 + source-map: 0.6.1 + source-map-resolve: 0.6.0 + dev: true + /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true @@ -2334,11 +2207,12 @@ packages: array-find-index: 1.0.2 dev: true - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: - es5-ext: 0.10.62 - type: 1.2.0 + es5-ext: 0.10.64 + type: 2.7.2 dev: true /data-urls@3.0.2: @@ -2362,6 +2236,16 @@ packages: resolution: {integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==} dev: true + /debug-fabulous@1.1.0: + resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} + dependencies: + debug: 3.2.7 + memoizee: 0.4.17 + object-assign: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -2373,6 +2257,17 @@ packages: ms: 2.0.0 dev: true + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2417,18 +2312,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /default-compare@1.0.0: - resolution: {integrity: sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 5.1.0 - dev: true - - /default-resolution@2.0.0: - resolution: {integrity: sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==} - engines: {node: '>= 0.10'} - dev: true - /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -2447,28 +2330,6 @@ packages: object-keys: 1.1.1 dev: true - /define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.7 - dev: true - - /define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - dev: true - - /define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - dev: true - /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -2493,6 +2354,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /detect-newline@2.1.0: + resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} + engines: {node: '>=0.10.0'} + dev: true + /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -2545,10 +2411,20 @@ packages: stream-shift: 1.0.1 dev: true - /each-props@1.3.2: - resolution: {integrity: sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==} + /duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} dependencies: - is-plain-object: 2.0.4 + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + dev: true + + /each-props@3.0.0: + resolution: {integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==} + engines: {node: '>= 10.13.0'} + dependencies: + is-plain-object: 5.0.0 object.defaults: 1.1.0 dev: true @@ -2628,36 +2504,37 @@ packages: is-arrayish: 0.2.1 dev: true - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 es6-symbol: 3.1.3 + esniff: 2.0.1 next-tick: 1.1.0 dev: true /es6-iterator@2.0.3: resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-symbol: 3.1.3 dev: true /es6-symbol@3.1.3: resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: - d: 1.0.1 + d: 1.0.2 ext: 1.7.0 dev: true /es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-iterator: 2.0.3 es6-symbol: 3.1.3 dev: true @@ -2839,6 +2716,16 @@ packages: - supports-color dev: true + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.2 + dev: true + /espree@6.2.1: resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} engines: {node: '>=6.0.0'} @@ -2897,6 +2784,13 @@ packages: engines: {node: '>= 0.6'} dev: true + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + dev: true + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true @@ -2945,21 +2839,6 @@ packages: is-posix-bracket: 0.1.1 dev: true - /expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /expand-range@1.8.2: resolution: {integrity: sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==} engines: {node: '>=0.10.0'} @@ -3030,13 +2909,6 @@ packages: type: 2.7.2 dev: true - /extend-shallow@1.1.4: - resolution: {integrity: sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 1.1.0 - dev: true - /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -3072,22 +2944,6 @@ packages: is-extglob: 1.0.0 dev: true - /extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /fancy-log@1.3.3: resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} engines: {node: '>= 0.10'} @@ -3102,6 +2958,10 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: true + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -3117,14 +2977,21 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein@1.1.4: - resolution: {integrity: sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==} - dev: true - /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-levenshtein@3.0.0: + resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} + dependencies: + fastest-levenshtein: 1.0.16 + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + /fastq@1.16.0: resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: @@ -3158,11 +3025,6 @@ packages: flat-cache: 3.2.0 dev: true - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: true - optional: true - /filename-regex@2.0.1: resolution: {integrity: sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==} engines: {node: '>=0.10.0'} @@ -3179,16 +3041,6 @@ packages: repeat-string: 1.6.1 dev: true - /fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -3227,36 +3079,22 @@ packages: path-exists: 4.0.0 dev: true - /findup-sync@2.0.0: - resolution: {integrity: sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==} - engines: {node: '>= 0.10'} - dependencies: - detect-file: 1.0.0 - is-glob: 3.1.0 - micromatch: 3.1.10 - resolve-dir: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /findup-sync@3.0.0: - resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} - engines: {node: '>= 0.10'} + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 3.1.10 + micromatch: 4.0.5 resolve-dir: 1.0.1 - transitivePeerDependencies: - - supports-color dev: true - /fined@1.2.0: - resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==} - engines: {node: '>= 0.10'} + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} dependencies: expand-tilde: 2.0.2 - is-plain-object: 2.0.4 + is-plain-object: 5.0.0 object.defaults: 1.1.0 object.pick: 1.3.0 parse-filepath: 1.0.2 @@ -3284,9 +3122,9 @@ packages: readable-stream: 2.3.8 dev: true - /flagged-respawn@1.0.1: - resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==} - engines: {node: '>= 0.10'} + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} dev: true /flat-cache@2.0.1: @@ -3369,13 +3207,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -3389,21 +3220,17 @@ packages: through2: 2.0.5 dev: true - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fs-mkdirp-stream@2.0.1: + resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + streamx: 2.20.0 dev: true - /fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.18.0 + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - optional: true /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -3440,10 +3267,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /get-caller-file@1.0.3: - resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - dev: true - /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3480,11 +3303,6 @@ packages: engines: {node: '>=10'} dev: true - /get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true - /glob-base@0.3.0: resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} engines: {node: '>=0.10.0'} @@ -3550,19 +3368,26 @@ packages: unique-stream: 2.3.1 dev: true - /glob-watcher@5.0.5: - resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==} - engines: {node: '>= 0.10'} + /glob-stream@8.0.2: + resolution: {integrity: sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==} + engines: {node: '>=10.13.0'} dependencies: - anymatch: 2.0.0 - async-done: 1.3.2 - chokidar: 2.1.8 + '@gulpjs/to-absolute-glob': 4.0.0 + anymatch: 3.1.3 + fastq: 1.16.0 + glob-parent: 6.0.2 + is-glob: 4.0.3 is-negated-glob: 1.0.0 - just-debounce: 1.1.0 normalize-path: 3.0.0 - object.defaults: 1.1.0 - transitivePeerDependencies: - - supports-color + streamx: 2.20.0 + dev: true + + /glob-watcher@6.0.0: + resolution: {integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==} + engines: {node: '>= 10.13.0'} + dependencies: + async-done: 2.0.0 + chokidar: 3.6.0 dev: true /glob@5.0.15: @@ -3652,6 +3477,13 @@ packages: sparkles: 1.0.1 dev: true + /glogg@2.2.0: + resolution: {integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==} + engines: {node: '>= 10.13.0'} + dependencies: + sparkles: 2.1.0 + dev: true + /google-closure-compiler@20160517.1.0: resolution: {integrity: sha512-Bm3LLaJy4gyuz0hLMXPV2zq1I4bywNVJRJREStZKZV87dGuS9UiJfT7HtrPwAv4J9Aw6uUfTPjdhxC6D3xvC7w==} dependencies: @@ -3680,42 +3512,34 @@ packages: resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} dev: true - /gulp-bump@2.1.0: - resolution: {integrity: sha512-NPF2dDFiW1n0htapKFtxhTbnA8MgqJGJbWLgn+IJCqV4o+m6wccleZC67CONbdWsY44j7M6utX9jH64v4PSpAQ==} + /gulp-bump@3.2.0: + resolution: {integrity: sha512-j3Yvi0QQZEN1HsXArQCBMdX5jedQZ1Cul3W1VZrvKal/Z4Slb6Z7UQLQyPaLm0heNdJKCjpKHgkYSR8VhfPlTA==} engines: {node: '>= 0.9.0'} dependencies: - bump-regex: 2.9.0 - plugin-error: 0.1.2 + bump-regex: 4.1.0 + plugin-error: 1.0.1 plugin-log: 0.1.0 semver: 5.7.2 - through2: 0.5.1 + through2: 2.0.5 dev: true - /gulp-cli@2.3.0: - resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==} - engines: {node: '>= 0.10'} + /gulp-cli@3.0.0: + resolution: {integrity: sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==} + engines: {node: '>=10.13.0'} hasBin: true dependencies: - ansi-colors: 1.1.0 - archy: 1.0.0 - array-sort: 1.0.0 - color-support: 1.1.3 - concat-stream: 1.6.2 - copy-props: 2.0.5 - fancy-log: 1.3.3 - gulplog: 1.0.0 - interpret: 1.4.0 - isobject: 3.0.1 - liftoff: 3.1.0 - matchdep: 2.0.0 - mute-stdout: 1.0.1 - pretty-hrtime: 1.0.3 - replace-homedir: 1.0.0 - semver-greatest-satisfied-range: 1.1.0 - v8flags: 3.2.0 - yargs: 7.1.2 - transitivePeerDependencies: - - supports-color + '@gulpjs/messages': 1.1.0 + chalk: 4.1.2 + copy-props: 4.0.0 + gulplog: 2.2.0 + interpret: 3.1.1 + liftoff: 5.0.0 + mute-stdout: 2.0.0 + replace-homedir: 2.0.0 + semver-greatest-satisfied-range: 2.0.0 + string-width: 4.2.3 + v8flags: 4.0.1 + yargs: 16.2.0 dev: true /gulp-eslint@6.0.0: @@ -3728,27 +3552,25 @@ packages: - supports-color dev: true - /gulp-git@2.10.0: - resolution: {integrity: sha512-AYh0xXpKdDYS+ftCuyF9+LFXoltjtFlpfKITTCKDI0LunztpwVuHFtp31SvRSFVZikvRHTHUGMZ9Z0TnXjDIxQ==} + /gulp-git@2.11.0: + resolution: {integrity: sha512-7YOcwin7sr68weYhBNOtZia3LZOGZWXgGcxxcxCi2hjljTgysOhH9mLTH2hdG5YLcuAFNg7mMbb2xIRfYsaQZw==} engines: {node: '>= 0.9.0'} dependencies: any-shell-escape: 0.1.1 fancy-log: 1.3.3 - lodash.template: 4.5.0 + lodash: 4.17.21 plugin-error: 1.0.1 require-dir: 1.2.0 strip-bom-stream: 3.0.0 - through2: 2.0.5 vinyl: 2.2.1 dev: true - /gulp-if@2.0.0: - resolution: {integrity: sha512-7B9M8ZkVOs+oc2j/NiDkb7lJokgOcQgFzYRPEfOHxH/2S8XKMuxgTA1J8ELJSuslX/fu2dQTDTMZyODErTMPdw==} - engines: {node: '>= 0.10.0'} + /gulp-if@3.0.0: + resolution: {integrity: sha512-fCUEngzNiEZEK2YuPm+sdMpO6ukb8+/qzbGfJBXyNOXz85bCG7yBI+pPSl+N90d7gnLvMsarthsAImx0qy7BAw==} dependencies: gulp-match: 1.1.0 - ternary-stream: 2.1.1 - through2: 2.0.5 + ternary-stream: 3.0.0 + through2: 3.0.2 dev: true /gulp-match@1.1.0: @@ -3783,6 +3605,25 @@ packages: vinyl: 1.2.0 dev: true + /gulp-sourcemaps@3.0.0: + resolution: {integrity: sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==} + engines: {node: '>= 6'} + dependencies: + '@gulp-sourcemaps/identity-map': 2.0.1 + '@gulp-sourcemaps/map-sources': 1.0.0 + acorn: 6.4.2 + convert-source-map: 1.9.0 + css: 3.0.0 + debug-fabulous: 1.1.0 + detect-newline: 2.1.0 + graceful-fs: 4.2.11 + source-map: 0.6.1 + strip-bom-string: 1.0.0 + through2: 2.0.5 + transitivePeerDependencies: + - supports-color + dev: true + /gulp-typescript@6.0.0-alpha.1(typescript@5.2.2): resolution: {integrity: sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==} engines: {node: '>= 8'} @@ -3823,17 +3664,15 @@ packages: vinyl: 0.5.3 dev: true - /gulp@4.0.0: - resolution: {integrity: sha512-Ln1zks+ndF6tDqe2ejNtQ2ZH93SaBEmSszArsLuSnY075Ju72SCEkkE7yyGIxK0+ft2UdaYha6af64mh0YvUrA==} - engines: {node: '>= 0.10'} + /gulp@5.0.0: + resolution: {integrity: sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==} + engines: {node: '>=10.13.0'} hasBin: true dependencies: - glob-watcher: 5.0.5 - gulp-cli: 2.3.0 - undertaker: 1.3.0 - vinyl-fs: 3.0.3 - transitivePeerDependencies: - - supports-color + glob-watcher: 6.0.0 + gulp-cli: 3.0.0 + undertaker: 2.0.0 + vinyl-fs: 4.0.0 dev: true /gulplog@1.0.0: @@ -3843,6 +3682,13 @@ packages: glogg: 1.0.2 dev: true + /gulplog@2.2.0: + resolution: {integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==} + engines: {node: '>= 10.13.0'} + dependencies: + glogg: 2.2.0 + dev: true + /has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} @@ -3887,37 +3733,6 @@ packages: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: true - /has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: true - - /has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - - /has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true - - /has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -3925,10 +3740,6 @@ packages: function-bind: 1.1.2 dev: true - /highcharts@11.2.0: - resolution: {integrity: sha512-9i650YK7ZBA1Mgtr3avMkLVCAI45RQvYnwi+eHsdFSaBGuQN6BHoa4j4lMkSJLv0V4LISTK1z7J7G82Lzd7zwg==} - dev: false - /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -4019,6 +3830,10 @@ packages: safer-buffer: 2.1.2 dev: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore@4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} engines: {node: '>= 4'} @@ -4092,9 +3907,9 @@ packages: through: 2.3.8 dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} dev: true /invert-kv@1.0.0: @@ -4115,22 +3930,15 @@ packages: is-windows: 1.0.2 dev: true - /is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - dependencies: - hasown: 2.0.0 - dev: true - /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: - binary-extensions: 1.13.1 + binary-extensions: 2.3.0 dev: true /is-buffer@1.1.6: @@ -4143,29 +3951,6 @@ packages: hasown: 2.0.0 dev: true - /is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.0 - dev: true - - /is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - - /is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -4266,13 +4051,6 @@ packages: kind-of: 3.2.2 dev: true - /is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - /is-number@4.0.0: resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} engines: {node: '>=0.10.0'} @@ -4309,6 +4087,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + /is-relative@1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} @@ -4978,21 +4760,12 @@ packages: hasBin: true dev: true - /just-debounce@1.1.0: - resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 dev: true - /kind-of@1.1.0: - resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} - engines: {node: '>=0.10.0'} - dev: true - /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -5000,18 +4773,6 @@ packages: is-buffer: 1.1.6 dev: true - /kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of@5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5022,12 +4783,9 @@ packages: engines: {node: '>=6'} dev: true - /last-run@1.1.1: - resolution: {integrity: sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==} - engines: {node: '>= 0.10'} - dependencies: - default-resolution: 2.0.0 - es6-weak-map: 2.0.3 + /last-run@2.0.0: + resolution: {integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==} + engines: {node: '>= 10.13.0'} dev: true /lazystream@1.0.1: @@ -5051,6 +4809,11 @@ packages: flush-write-stream: 1.1.1 dev: true + /lead@4.0.0: + resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} + engines: {node: '>=10.13.0'} + dev: true + /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -5072,20 +4835,17 @@ packages: type-check: 0.4.0 dev: true - /liftoff@3.1.0: - resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} - engines: {node: '>= 0.8'} + /liftoff@5.0.0: + resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} + engines: {node: '>=10.13.0'} dependencies: extend: 3.0.2 - findup-sync: 3.0.0 - fined: 1.2.0 - flagged-respawn: 1.0.1 - is-plain-object: 2.0.4 - object.map: 1.0.1 - rechoir: 0.6.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + rechoir: 0.8.0 resolve: 1.22.8 - transitivePeerDependencies: - - supports-color dev: true /lines-and-columns@1.2.4: @@ -5238,13 +4998,6 @@ packages: lodash.templatesettings: 3.1.1 dev: true - /lodash.template@4.5.0: - resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} - dependencies: - lodash._reinterpolate: 3.0.0 - lodash.templatesettings: 4.2.0 - dev: true - /lodash.templatesettings@3.1.1: resolution: {integrity: sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==} dependencies: @@ -5252,12 +5005,6 @@ packages: lodash.escape: 3.2.0 dev: true - /lodash.templatesettings@4.2.0: - resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} - dependencies: - lodash._reinterpolate: 3.0.0 - dev: true - /lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} dev: true @@ -5287,6 +5034,12 @@ packages: yallist: 4.0.0 dev: true + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} + dependencies: + es5-ext: 0.10.64 + dev: true + /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -5298,13 +5051,6 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - /make-iterator@1.0.1: - resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: @@ -5321,25 +5067,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - - /matchdep@2.0.0: - resolution: {integrity: sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==} - engines: {node: '>= 0.10.0'} - dependencies: - findup-sync: 2.0.0 - micromatch: 3.1.10 - resolve: 1.22.8 - stack-trace: 0.0.10 - transitivePeerDependencies: - - supports-color - dev: true - /math-random@1.0.4: resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} dev: true @@ -5349,6 +5076,20 @@ packages: engines: {node: '>= 0.6'} dev: true + /memoizee@0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.8 + dev: true + /meow@3.7.0: resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} engines: {node: '>=0.10.0'} @@ -5408,27 +5149,6 @@ packages: regex-cache: 0.4.4 dev: true - /micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -5477,14 +5197,6 @@ packages: yallist: 3.1.1 dev: true - /mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -5521,39 +5233,15 @@ packages: hasBin: true dev: true - /mute-stdout@1.0.1: - resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} - engines: {node: '>= 0.10'} + /mute-stdout@2.0.0: + resolution: {integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==} + engines: {node: '>= 10.13.0'} dev: true /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /nan@2.18.0: - resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} - dev: true - optional: true - - /nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -5623,6 +5311,13 @@ packages: once: 1.4.0 dev: true + /now-and-later@3.0.0: + resolution: {integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==} + engines: {node: '>= 10.13.0'} + dependencies: + once: 1.4.0 + dev: true + /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -5666,15 +5361,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -5684,13 +5370,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -5711,14 +5390,6 @@ packages: isobject: 3.0.1 dev: true - /object.map@1.0.1: - resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: true - /object.omit@2.0.1: resolution: {integrity: sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==} engines: {node: '>=0.10.0'} @@ -5734,14 +5405,6 @@ packages: isobject: 3.0.1 dev: true - /object.reduce@1.0.1: - resolution: {integrity: sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: true - /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -5911,11 +5574,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - /path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} dev: true @@ -5981,6 +5639,10 @@ packages: engines: {node: '>=8'} dev: true + /picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -6029,17 +5691,6 @@ packages: find-up: 4.1.0 dev: true - /plugin-error@0.1.2: - resolution: {integrity: sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-cyan: 0.1.1 - ansi-red: 0.1.1 - arr-diff: 1.1.0 - arr-union: 2.1.0 - extend-shallow: 1.1.4 - dev: true - /plugin-error@1.0.1: resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} engines: {node: '>= 0.10'} @@ -6059,9 +5710,12 @@ packages: dateformat: 1.0.12 dev: true - /posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} + /postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 dev: true /prelude-ls@1.1.2: @@ -6088,11 +5742,6 @@ packages: react-is: 18.2.0 dev: true - /pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - dev: true - /printf@0.6.1: resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==} engines: {node: '>= 0.9.0'} @@ -6173,6 +5822,10 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: true + /qunit@2.20.0: resolution: {integrity: sha512-N8Fp1J55waE+QG1KwX2LOyqulZUToRrrPBqDOfYfuAMkEglFL15uwvmH1P4Tq/omQ/mGbBI8PEB3PhIfvUb+jg==} engines: {node: '>=10'} @@ -6267,20 +5920,16 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color + picomatch: 2.3.1 dev: true - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 dev: true @@ -6300,14 +5949,6 @@ packages: is-equal-shallow: 0.1.3 dev: true - /regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - /regexpp@2.0.1: resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} engines: {node: '>=6.5.0'} @@ -6366,13 +6007,14 @@ packages: engines: {node: '>= 0.10'} dev: true - /replace-homedir@1.0.0: - resolution: {integrity: sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==} - engines: {node: '>= 0.10'} - dependencies: - homedir-polyfill: 1.0.3 - is-absolute: 1.0.0 - remove-trailing-separator: 1.1.0 + /replace-ext@2.0.0: + resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} + engines: {node: '>= 10'} + dev: true + + /replace-homedir@2.0.0: + resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} + engines: {node: '>= 10.13.0'} dev: true /replacestream@4.0.3: @@ -6432,9 +6074,11 @@ packages: value-or-function: 3.0.0 dev: true - /resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated + /resolve-options@2.0.0: + resolution: {integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==} + engines: {node: '>= 10.13.0'} + dependencies: + value-or-function: 4.0.0 dev: true /resolve.exports@2.0.2: @@ -6459,11 +6103,6 @@ packages: signal-exit: 3.0.7 dev: true - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6509,12 +6148,6 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true - /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -6526,11 +6159,11 @@ packages: xmlchars: 2.2.0 dev: true - /semver-greatest-satisfied-range@1.1.0: - resolution: {integrity: sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==} - engines: {node: '>= 0.10'} + /semver-greatest-satisfied-range@2.0.0: + resolution: {integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==} + engines: {node: '>= 10.13.0'} dependencies: - sver-compat: 1.5.0 + sver: 1.8.4 dev: true /semver@5.7.2: @@ -6598,16 +6231,6 @@ packages: has-property-descriptors: 1.0.1 dev: true - /set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: true - /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true @@ -6670,38 +6293,6 @@ packages: is-fullwidth-code-point: 2.0.0 dev: true - /snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /socket.io-adapter@2.5.2: resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} dependencies: @@ -6738,15 +6329,12 @@ packages: - utf-8-validate dev: true - /source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + /source-map-resolve@0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated dependencies: atob: 2.1.2 decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 dev: true /source-map-support@0.5.13: @@ -6756,11 +6344,6 @@ packages: source-map: 0.6.1 dev: true - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true - /source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} @@ -6781,6 +6364,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /sparkles@2.1.0: + resolution: {integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==} + engines: {node: '>= 10.13.0'} + dev: true + /spawn-args@0.2.0: resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} dev: true @@ -6807,21 +6395,10 @@ packages: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true - /split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: true - /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - dev: true - /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -6829,19 +6406,17 @@ packages: escape-string-regexp: 2.0.0 dev: true - /static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: true - /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} dev: true + /stream-composer@1.0.2: + resolution: {integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==} + dependencies: + streamx: 2.20.0 + dev: true + /stream-exhaust@1.0.2: resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} dev: true @@ -6850,6 +6425,20 @@ packages: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true + /stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + dev: true + + /streamx@2.20.0: + resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 + dev: true + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -6945,6 +6534,11 @@ packages: strip-bom-buf: 1.0.0 dev: true + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + /strip-bom@2.0.0: resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} engines: {node: '>=0.10.0'} @@ -7015,11 +6609,10 @@ packages: engines: {node: '>= 0.4'} dev: true - /sver-compat@1.5.0: - resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==} - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + /sver@1.8.4: + resolution: {integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==} + optionalDependencies: + semver: 6.3.1 dev: true /symbol-tree@3.2.4: @@ -7049,14 +6642,19 @@ packages: minipass: 2.9.0 dev: true - /ternary-stream@2.1.1: - resolution: {integrity: sha512-j6ei9hxSoyGlqTmoMjOm+QNvUKDOIY6bNl4Uh1lhBvl6yjPW2iLqxDUYyfDPZknQ4KdRziFl+ec99iT4l7g0cw==} - engines: {node: '>= 0.10.0'} + /teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} dependencies: - duplexify: 3.7.1 + streamx: 2.20.0 + dev: true + + /ternary-stream@3.0.0: + resolution: {integrity: sha512-oIzdi+UL/JdktkT+7KU5tSIQjj8pbShj3OASuvDEhm0NT5lppsm7aXWAmAq4/QMaBIyfuEcNLbAQA+HpaISobQ==} + dependencies: + duplexify: 4.1.3 fork-stream: 0.0.4 - merge-stream: 1.0.1 - through2: 2.0.5 + merge-stream: 2.0.0 + through2: 3.0.2 dev: true /test-exclude@6.0.0: @@ -7161,6 +6759,12 @@ packages: - whiskers dev: true + /text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + dependencies: + b4a: 1.6.6 + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -7184,13 +6788,6 @@ packages: xtend: 4.0.2 dev: true - /through2@0.5.1: - resolution: {integrity: sha512-zexCrAOTbjkBCXGyozn7hhS3aEaqdrc59mAD2E3dKYzV1vFuEGQ1hEDJN2oQMQFwy4he2zyLqPZV+AlfS8ZWJA==} - dependencies: - readable-stream: 1.0.34 - xtend: 3.0.0 - dev: true - /through2@0.6.5: resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} dependencies: @@ -7227,6 +6824,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + /timers-ext@0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} + dependencies: + es5-ext: 0.10.64 + next-tick: 1.1.0 + dev: true + /tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: @@ -7265,21 +6870,6 @@ packages: engines: {node: '>=4'} dev: true - /to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -7287,16 +6877,6 @@ packages: is-number: 7.0.0 dev: true - /to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - /to-through@2.0.0: resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} engines: {node: '>= 0.10'} @@ -7304,6 +6884,13 @@ packages: through2: 2.0.5 dev: true + /to-through@3.0.0: + resolution: {integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==} + engines: {node: '>=10.13.0'} + dependencies: + streamx: 2.20.0 + dev: true + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -7451,18 +7038,10 @@ packages: mime-types: 2.1.35 dev: true - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: true - /type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true - /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true - /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -7478,41 +7057,25 @@ packages: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} dev: true - /undertaker-registry@1.0.1: - resolution: {integrity: sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==} - engines: {node: '>= 0.10'} + /undertaker-registry@2.0.0: + resolution: {integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==} + engines: {node: '>= 10.13.0'} dev: true - /undertaker@1.3.0: - resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} - engines: {node: '>= 0.10'} + /undertaker@2.0.0: + resolution: {integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==} + engines: {node: '>=10.13.0'} dependencies: - arr-flatten: 1.1.0 - arr-map: 2.0.2 - bach: 1.2.0 - collection-map: 1.0.0 - es6-weak-map: 2.0.3 - fast-levenshtein: 1.1.4 - last-run: 1.1.1 - object.defaults: 1.1.0 - object.reduce: 1.0.1 - undertaker-registry: 1.0.1 + bach: 2.0.1 + fast-levenshtein: 3.0.0 + last-run: 2.0.0 + undertaker-registry: 2.0.0 dev: true /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - /unique-stream@2.3.1: resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} dependencies: @@ -7530,19 +7093,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - - /upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -7560,11 +7110,6 @@ packages: punycode: 2.3.1 dev: true - /urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: @@ -7572,11 +7117,6 @@ packages: requires-port: 1.0.0 dev: true - /use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -7608,11 +7148,9 @@ packages: convert-source-map: 2.0.0 dev: true - /v8flags@3.2.0: - resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} - engines: {node: '>= 0.10'} - dependencies: - homedir-polyfill: 1.0.3 + /v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} + engines: {node: '>= 10.13.0'} dev: true /vali-date@1.0.0: @@ -7632,11 +7170,24 @@ packages: engines: {node: '>= 0.10'} dev: true + /value-or-function@4.0.0: + resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==} + engines: {node: '>= 10.13.0'} + dev: true + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} dev: true + /vinyl-contents@2.0.0: + resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} + engines: {node: '>=10.13.0'} + dependencies: + bl: 5.1.0 + vinyl: 3.0.0 + dev: true + /vinyl-fs@2.4.4: resolution: {integrity: sha512-lxMlQW/Wxk/pwhooY3Ut0Q11OH5ZvZfV0Gg1c306fBNWznQ6ZeQaCdE7XX0O/PpGSqgAsHMBxwFgcGxiYW3hZg==} engines: {node: '>=0.10'} @@ -7683,6 +7234,26 @@ packages: vinyl-sourcemap: 1.1.0 dev: true + /vinyl-fs@4.0.0: + resolution: {integrity: sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==} + engines: {node: '>=10.13.0'} + dependencies: + fs-mkdirp-stream: 2.0.1 + glob-stream: 8.0.2 + graceful-fs: 4.2.11 + iconv-lite: 0.6.3 + is-valid-glob: 1.0.0 + lead: 4.0.0 + normalize-path: 3.0.0 + resolve-options: 2.0.0 + stream-composer: 1.0.2 + streamx: 2.20.0 + to-through: 3.0.0 + value-or-function: 4.0.0 + vinyl: 3.0.0 + vinyl-sourcemap: 2.0.0 + dev: true + /vinyl-sourcemap@1.1.0: resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} engines: {node: '>= 0.10'} @@ -7696,6 +7267,18 @@ packages: vinyl: 2.2.1 dev: true + /vinyl-sourcemap@2.0.0: + resolution: {integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==} + engines: {node: '>=10.13.0'} + dependencies: + convert-source-map: 2.0.0 + graceful-fs: 4.2.11 + now-and-later: 3.0.0 + streamx: 2.20.0 + vinyl: 3.0.0 + vinyl-contents: 2.0.0 + dev: true + /vinyl-sourcemaps-apply@0.2.1: resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} dependencies: @@ -7732,6 +7315,17 @@ packages: replace-ext: 1.0.1 dev: true + /vinyl@3.0.0: + resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} + engines: {node: '>=10.13.0'} + dependencies: + clone: 2.1.2 + clone-stats: 1.0.0 + remove-trailing-separator: 1.1.0 + replace-ext: 2.0.0 + teex: 1.0.1 + dev: true + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -7770,10 +7364,6 @@ packages: webidl-conversions: 7.0.0 dev: true - /which-module@1.0.0: - resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} - dev: true - /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -7877,11 +7467,6 @@ packages: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xtend@3.0.0: - resolution: {integrity: sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==} - engines: {node: '>=0.4'} - dev: true - /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -7911,16 +7496,27 @@ packages: lodash.assign: 4.2.0 dev: true + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs-parser@5.0.1: - resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: - camelcase: 3.0.0 - object.assign: 4.1.5 + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 dev: true /yargs@17.7.2: @@ -7953,24 +7549,6 @@ packages: yargs-parser: 2.4.1 dev: true - /yargs@7.1.2: - resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==} - dependencies: - camelcase: 3.0.0 - cliui: 3.2.0 - decamelize: 1.2.0 - get-caller-file: 1.0.3 - os-locale: 1.4.0 - read-pkg-up: 1.0.1 - require-directory: 2.1.1 - require-main-filename: 1.0.1 - set-blocking: 2.0.0 - string-width: 1.0.2 - which-module: 1.0.0 - y18n: 3.2.2 - yargs-parser: 5.0.1 - dev: true - /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -7981,11 +7559,11 @@ packages: engines: {node: '>=10'} dev: true - github.com/highcharts/highcharts/db37d463502f974f9a48f8454262a86deb96117b: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/db37d463502f974f9a48f8454262a86deb96117b} + github.com/highcharts/highcharts/60944b0fe2c13c465457dae29beaf68c46aab8e9: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/60944b0fe2c13c465457dae29beaf68c46aab8e9} name: highcharts - version: 11.2.0 + version: 11.4.8 engines: {node: '>=14.14.0'} prepare: true requiresBuild: true - dev: false + dev: true diff --git a/test/coloredarea-helper.js b/test/coloredarea-helper.js index 6703630..40f0e06 100644 --- a/test/coloredarea-helper.js +++ b/test/coloredarea-helper.js @@ -417,8 +417,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 5, - 150 + 5.5, + 149 ], [ "A", @@ -427,8 +427,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 5.0039999993333355, - 149.99999800000018 + 5.500199999999918, + 148.999999995 ], [ "Z" @@ -439,8 +439,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 101, - 77 + 101.5, + 76.5 ], [ "A", @@ -449,8 +449,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 101.00399999933333, - 76.99999800000016 + 101.50019999999992, + 76.499999995 ], [ "Z" @@ -466,8 +466,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 101, - 77 + 101.5, + 76.5 ], [ "A", @@ -476,8 +476,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 101.00399999933333, - 76.99999800000016 + 101.50019999999992, + 76.499999995 ], [ "Z" @@ -488,8 +488,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 197, - 186 + 197.5, + 185.25 ], [ "A", @@ -498,8 +498,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 197.00399999933333, - 185.99999800000018 + 197.50019999999992, + 185.249999995 ], [ "Z" @@ -515,8 +515,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 197, - 186 + 197.5, + 185.25 ], [ "A", @@ -525,8 +525,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 197.00399999933333, - 185.99999800000018 + 197.50019999999992, + 185.249999995 ], [ "Z" @@ -537,8 +537,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 293, - 259 + 293.5, + 257.75 ], [ "A", @@ -547,8 +547,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 293.00399999933336, - 258.9999980000002 + 293.5001999999999, + 257.749999995 ], [ "Z" @@ -564,8 +564,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 293, - 259 + 293.5, + 257.75 ], [ "A", @@ -574,8 +574,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 293.00399999933336, - 258.9999980000002 + 293.5001999999999, + 257.749999995 ], [ "Z" @@ -586,8 +586,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 388, - 113 + 388.5, + 112.75 ], [ "A", @@ -596,8 +596,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 388.00399999933336, - 112.99999800000016 + 388.5001999999999, + 112.749999995 ], [ "Z" @@ -608,8 +608,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 484, - 222 + 484.5, + 221.5 ], [ "A", @@ -618,8 +618,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 484.00399999933336, - 221.99999800000018 + 484.5001999999999, + 221.499999995 ], [ "Z" @@ -635,8 +635,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 484, - 222 + 484.5, + 221.5 ], [ "A", @@ -645,8 +645,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 484.00399999933336, - 221.99999800000018 + 484.5001999999999, + 221.499999995 ], [ "Z" @@ -657,8 +657,8 @@ const coloredareaSegmentsTestData = [ graphicPathArray: [ [ "M", - 580, - 40 + 580.5, + 40.25 ], [ "A", @@ -667,8 +667,8 @@ const coloredareaSegmentsTestData = [ 0, 1, 1, - 580.0039999993334, - 39.99999800000017 + 580.5002, + 40.249999995 ], [ "Z" diff --git a/test/coloredarea.test.js b/test/coloredarea.test.js index 10bc402..b60784e 100644 --- a/test/coloredarea.test.js +++ b/test/coloredarea.test.js @@ -1,6 +1,8 @@ const colorsColoredarea = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], chartColoredarea = Highcharts.chart('coloredarea-container', { chart: { + width: 640, + height: 400, spacing: [0, 0, 0, 0] }, series: [ diff --git a/test/coloredline.test.js b/test/coloredline.test.js index 81012fe..b797f46 100644 --- a/test/coloredline.test.js +++ b/test/coloredline.test.js @@ -1,6 +1,8 @@ const colorsColoredline = ['red', 'blue', 'yellow', 'green', 'brown', 'pink'], chartColoredline = Highcharts.chart('coloredline-container', { chart: { + width: 640, + height: 400, spacing: [0, 0, 0, 0] }, series: [ diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index c706f8f..9289c7a 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -399,7 +399,9 @@ class ColoredlineSeries extends LineSeries { track.addClass('highcharts-tracker') .on('mouseover', onMouseOver) .on('mouseout', (event: PointerEvent): void => { - pointer.onTrackerMouseOut(event); + if (pointer) { + pointer.onTrackerMouseOut(event); + } }); if (css) { diff --git a/tsconfig.json b/tsconfig.json index c26efb5..62e771c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,8 @@ "target": "es6", "lib": [ "dom", - "es6" + "es6", + "es2016" ], "types": ["jquery", "trusted-types", "jest"] }, From f51ffb3a5f73288070bdb11292d6b517f0006841 Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Wed, 11 Sep 2024 13:32:21 +0200 Subject: [PATCH 35/66] Bump pixel difference in tests to 2. --- test/coloredarea.test.js | 2 +- test/coloredline.test.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/coloredarea.test.js b/test/coloredarea.test.js index b60784e..e39b435 100644 --- a/test/coloredarea.test.js +++ b/test/coloredarea.test.js @@ -122,7 +122,7 @@ QUnit.test('Coloredarea series segments property.', (assert) => { })) })), coloredareaSegmentsTestData, - 1 + 2 ); const isError = differences.length > 0; diff --git a/test/coloredline.test.js b/test/coloredline.test.js index b797f46..ad2271f 100644 --- a/test/coloredline.test.js +++ b/test/coloredline.test.js @@ -65,7 +65,7 @@ QUnit.test('Coloredline series tracker property.', (assert) => { const differences = objectsEqualWithBuffer( seriesColoredline.tracker.pathArray, coloredlineTrackerPathArrayTestData, - 1 + 2 ); const isError = differences.length > 0; @@ -85,7 +85,7 @@ QUnit.test('Coloredline series graphs property.', (assert) => { pathArray: graph.pathArray })), coloredlineGraphsTestData, - 1, + 2, ); const isError = differences.length > 0; @@ -101,7 +101,7 @@ QUnit.test('Coloredline series graphPaths property.', (assert) => { const differences = objectsEqualWithBuffer( seriesColoredline.graphPaths, coloredlineGraphPathsTestData, - 1, + 2, ); const isError = differences.length > 0; @@ -122,7 +122,7 @@ QUnit.test('Coloredline series segments property.', (assert) => { })) })), coloredlineSegmentsTestData, - 1, + 2, ); const isError = differences.length > 0; From 1fa03cdd40da36839b33d5dc413f55be4ed17fe1 Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Wed, 11 Sep 2024 13:33:10 +0200 Subject: [PATCH 36/66] Update versions, URI-s and move demo to samples directory. --- README.md | 7 +++---- js/demo.js | 4 ++-- manifest.json | 14 +++++++------- .../custom-module-demo.html | 0 types.d.ts | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) rename custom-module-demo.html => samples/custom-module-demo.html (100%) diff --git a/README.md b/README.md index 6f29aa4..c769cab 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Go to project page to see this module in action: [http://blacklabel.github.io/mu ### Requirements -* Plugin requires the latest Highcharts (4+) +* Plugin requires the latest Highcharts (v11.0.0+) ### Installation * Like any other Highcharts module (e.g. exporting), add ` - - - + @@ -62,7 +57,7 @@ alt="Black Label">

Multicolor Series Highcharts Module

-

Highcharts plugin that adds new multicolor series, where you can define color for each part of a path, +

Highcharts plugin that adds a new multicolor series, where you can define color for each part of a path, between two points.

@@ -94,6 +89,9 @@

Multicolor Series Highcharts Module

  • FAQ
  • +
  • + License +
  • @@ -109,12 +107,12 @@

    Multicolor Series Highcharts Module

    General prerequisites

    This module requires highcharts package with the following versions installed in your project:

    -
      -
    • For version 3.0.0 - Highcharts v11.4.0+
    • -
    • For version 2.4.0 - 3.0.0 - Highcharts v10.0.0 - v11.4.0
    • -
    • For version 2.3.0 - Highcharts v9.2.0 - v9.3.3
    • -
    • For version 2.x.x - Highcharts v4.2.2 - v9.2.0
    • -
    • For version 1.x.x - Highcharts v4.0.0 - v4.2.2
    • +
        +
      • For version 3.0.0: Highcharts v11.4.8+
      • +
      • For version 2.4.0 - 3.0.0: Highcharts v10.0.0 - v11.4.8
      • +
      • For version 2.3.0: Highcharts v9.2.0 - v9.3.3
      • +
      • For version 2.x.x: Highcharts v4.2.2 - v9.2.0
      • +
      • For version 1.x.x: Highcharts v4.0.0 - v4.2.2
    @@ -143,23 +141,24 @@

    Basic usage example:

    series: [{ type: 'coloredline', data: [{ - y: 200, - segmentColor: 'red' - },{ - y: 210, - segmentColor: 'red' - },{ - y: 210, - segmentColor: 'red' - },{ - y: 100, + y: 70, + segmentColor: 'blue' + }, { + y: 20, segmentColor: 'green' }, { - y: 100, + y: 40, + segmentColor: 'yellow' + }, { + y: 50, segmentColor: 'red' + }, { + y: 10, + segmentColor: 'pink' }] }] -}); +}); +

    Basic usage example with Typescript:

    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quaerat, nemo veniam. Iste, nesciunt quae? Beatae nam odio excepturi vero itaque tempora tempore natus minima odit. Beatae nesciunt perspiciatis hic a.

    @@ -208,23 +207,7 @@

    Demos

    Changelog

    -
      -
    • Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus repellendus labore dignissimos - asperiores ut, dolore inventore voluptate voluptatum provident odio culpa ea explicabo voluptates accusamus - commodi aspernatur molestiae dolorem ipsa?
    • -
    • Nemo incidunt aliquid atque, id iure odio fuga molestias accusantium corrupti provident eius necessitatibus - rem aliquam repellat quo quod dolorum consectetur rerum dolorem possimus odit eveniet. Asperiores, quasi? - Dolor, eos?
    • -
    • Adipisci aliquam tempora cupiditate pariatur maxime quae, recusandae, iusto ullam veritatis ipsam possimus - sapiente eveniet dolorem necessitatibus corporis. Nobis quisquam dolorum excepturi ea temporibus consectetur, - velit corporis pariatur accusamus deserunt?
    • -
    • Atque error quidem maiores incidunt soluta ea quod id, praesentium magni cupiditate doloremque quasi - reprehenderit illo temporibus labore adipisci distinctio dolorum harum magnam impedit, optio perspiciatis - obcaecati? Veniam, recusandae explicabo.
    • -
    • Eius, quisquam facilis. Ratione impedit soluta reprehenderit aut, quos earum aliquid omnis quasi velit. - Laborum excepturi, molestiae praesentium adipisci magni rerum obcaecati similique et deleniti at hic id natus - minima.
    • -
    +

    The changelog is available here.

    FAQ

    @@ -245,6 +228,10 @@

    FAQ

    blanditiis cumque architecto delectus temporibus incidunt assumenda! Enim expedita laboriosam repellendus? Eius illo iusto quae corrupti.

    +
    +

    License

    +

    Link to the license?

    +
    @@ -269,4 +256,4 @@

    FAQ

    - \ No newline at end of file + From 162068cdff203953a375495264d0faff1186206b Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Thu, 12 Sep 2024 16:45:11 +0200 Subject: [PATCH 41/66] Enforce stronger eslint rules. --- .eslintrc.json | 69 +++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 1cd0ec8..791d41f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -22,13 +22,13 @@ 2, "never" ], - "consistent-return": 0, - "default-case": 0, - "default-param-last": 0, + "consistent-return": 1, + "default-case": 1, + "default-param-last": 1, "dot-notation": 0, "function-paren-newline": 0, "func-style": 0, - "indent": 0, + "indent": 2, "max-len": [ "error", { @@ -38,27 +38,27 @@ "ignoreComments": true } ], - "no-dupe-class-members": 0, - "no-inner-declarations": 0, + "no-dupe-class-members": 2, + "no-inner-declarations": 2, "no-invalid-this": 0, - "no-shadow": 0, + "no-shadow": 2, "no-undef": 0, - "no-underscore-dangle": 0, + "no-underscore-dangle": 2, "no-unused-expressions": 0, - "no-use-before-define": 0, - "no-useless-constructor": 0, - "no-useless-escape": 0, - "no-useless-return": 0, + "no-use-before-define": 2, + "no-useless-constructor": 2, + "no-useless-escape": 2, + "no-useless-return": 2, "object-curly-spacing": [2, "always"], - "object-shorthand": 0, + "object-shorthand": 2, "prefer-const": 1, "prefer-spread": 0, "prefer-rest-params": 0, - "require-unicode-regexp": 0, + "require-unicode-regexp": 2, "quote-props": [2, "as-needed", { "keywords": true, "unnecessary": false }], - "semi": 0, - "@typescript-eslint/array-type": 0, - "@typescript-eslint/ban-types": 0, + "semi": 2, + "@typescript-eslint/array-type": [2, { "default": "array-simple" }], + "@typescript-eslint/consistent-type-assertions": 2, "@typescript-eslint/explicit-function-return-type": [ "error", { @@ -74,29 +74,28 @@ "SwitchCase": 1 } ], - "@typescript-eslint/no-empty-function": 0, - "@typescript-eslint/no-empty-interface": 0, - "@typescript-eslint/no-explicit-any": 0, + "@typescript-eslint/no-empty-function": 2, + "@typescript-eslint/no-empty-interface": 2, + "@typescript-eslint/no-explicit-any": 2, "@typescript-eslint/no-floating-promises": 1, - "@typescript-eslint/no-inferrable-types": 0, - "@typescript-eslint/no-namespace": 0, - "@typescript-eslint/no-object-literal-type-assertion": 0, + "@typescript-eslint/no-inferrable-types": 1, + "@typescript-eslint/no-namespace": 2, "@typescript-eslint/no-this-alias": 0, - "@typescript-eslint/no-unnecessary-type-assertion": 0, - "@typescript-eslint/no-unsafe-argument": 0, - "@typescript-eslint/no-unsafe-assignment": 0, - "@typescript-eslint/no-unsafe-call": 0, - "@typescript-eslint/no-unsafe-member-access": 0, - "@typescript-eslint/no-unsafe-return": 0, - "@typescript-eslint/no-unsafe-declaration-merging": 0, - "@typescript-eslint/no-unused-vars": 0, - "@typescript-eslint/no-use-before-define": 0, + "@typescript-eslint/no-unnecessary-type-assertion": 2, + "@typescript-eslint/no-unsafe-argument": 2, + "@typescript-eslint/no-unsafe-assignment": 2, + "@typescript-eslint/no-unsafe-call": 2, + "@typescript-eslint/no-unsafe-member-access": 2, + "@typescript-eslint/no-unsafe-return": 2, + "@typescript-eslint/no-unsafe-declaration-merging": 2, + "@typescript-eslint/no-unused-vars": 2, + "@typescript-eslint/no-use-before-define": 2, "@typescript-eslint/no-useless-constructor": 2, "@typescript-eslint/prefer-as-const": 1, - "@typescript-eslint/prefer-includes": 0, - "@typescript-eslint/prefer-regexp-exec": 0, + "@typescript-eslint/prefer-includes": 2, + "@typescript-eslint/prefer-regexp-exec": 2, "@typescript-eslint/prefer-string-starts-ends-with": 0, - "@typescript-eslint/restrict-plus-operands": 0, + "@typescript-eslint/restrict-plus-operands": 1, "@typescript-eslint/restrict-template-expressions": 1, "@typescript-eslint/semi": 2, "@typescript-eslint/unbound-method": 0 From 7d1ffdbd64a84d0410733c2cb3c922f8cd9b77f1 Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Thu, 12 Sep 2024 17:26:50 +0200 Subject: [PATCH 42/66] Remove dateformat from package list and apply small changes. --- dist/multicolor-series.js | 2 +- dist/multicolor-series.min.js | 19 +++++++++++++------ dist/multicolor-series.min.js.map | 2 +- package.json | 1 - pnpm-lock.yaml | 9 --------- samples/custom-module-demo.html | 2 +- ts/MulticolorSeries.ts | 3 +-- 7 files changed, 17 insertions(+), 21 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index f4df352..10c1890 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -539,7 +539,7 @@ class ColoredareaSeries extends ColoredlineSeries { } getSegmentPath(segment) { var _a; - const segmentPath = ColoredlineSeries.prototype.getSegmentPath.call(this, segment), // Call base method + const segmentPath = super.getSegmentPath.call(this, segment), // Call base method areaSegmentPath = [...segmentPath], // Work on a copy for the area path options = this.options, segLength = segmentPath.length, translatedThreshold = this.yAxis.getThreshold((_a = options.threshold) !== null && _a !== void 0 ? _a : 0); // #2181 let yBottom; diff --git a/dist/multicolor-series.min.js b/dist/multicolor-series.min.js index 75cd23d..e9e71f6 100644 --- a/dist/multicolor-series.min.js +++ b/dist/multicolor-series.min.js @@ -1,3 +1,10 @@ +/** +---- +* +* (c) 2012-2024 Black Label +* +* License: Creative Commons Attribution (CC) +*/ (function(){ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; $jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;be&&this.requireSorting&&C(15);this.cropped= void 0;this.cropStart=0;this.processedXData=d;this.processedYData=f;null===k.pointRange&&(this.pointRange=n||1);this.closestPointRange=n}return!0}},{key:"formatTrackerPath",value:function(e){var d,f,g,k,n=this.options,m=e.length,p=this.singlePoints,r=null!==(f=null===(d=this.chart.options.tooltip)||void 0===d?void 0:d.snap)&&void 0!==f?f:0;if(m&&!n.trackByArea)for(d=m+1;d--;)if("M"===(null===(g=e[d])||void 0===g?void 0:g.toString())&&(f=e[d+1],"number"===typeof f&&e.splice(d+1,0,f-r,e[d+2],"L")), @@ -29,12 +36,12 @@ d&&"M"===(null===(k=e[d])||void 0===k?void 0:k.toString())||d===m)f=e[d-2],"numb B=function(){if(p.hoverSeries!==g)g.onMouseOver()};m=this.formatTrackerPath(m);D(m)&&(e?e.attr({d:m}):(g.tracker=q.path(m).attr({"stroke-linejoin":"round",visibility:g.visible?"visible":"hidden",stroke:"rgba(192,192,192,0.002)",fill:n?"rgba(192,192,192,0.002)":"none","stroke-width":null!==(f=k.lineWidth)&&void 0!==f?f:n?0:2*w,zIndex:2}).add(g.group),[g.tracker,g.markerGroup].forEach(function(z){if(z&&(z.addClass("highcharts-tracker").on("mouseover",B).on("mouseout",function(E){if(r)r.onTrackerMouseOut(E)}), A&&z.css(A),"undefined"!==typeof document.documentElement.ontouchstart))z.on("touchstart",B)})))}},{key:"setState",value:function(e){var d,f,g,k,n=this.options,m=this.graphs,p=n.states,r=null!==(d=n.lineWidth)&&void 0!==d?d:0;e=e||"";this.state!==e&&(this.state=e,!p||!e||!1!==(null===(f=p.hover)||void 0===f?void 0:f.enabled)&&!1!==(null===(g=p.inactive)||void 0===g?void 0:g.enabled))&&(p&&e&&(r=(null===(k=p[e])||void 0===k?void 0:k.lineWidth)||r+1),m&&m.forEach(function(q){q.dashstyle||q.attr({"stroke-width":r})}))}}, {key:"getSegments",value:function(){var e,d,f=this.points,g=[],k=0,n=f.length;if(n)if(this.options.connectNulls){for(var m=n-1;0<=m;--m)null===f[m].y&&f.splice(m,1);n=f.length;f.forEach(function(r,q){var w;0=k;g--)d.graphs&&d.graphs[g]&&(d.graphs[g].destroy(),d.graphs.splice(g,1))}},{key:"translate",value:function(){_superPropGet(u,"translate", -this,1).apply(this,arguments);this.getSegments&&this.getSegments()}}])}(l);b.registerSeriesType("coloredline",H);c=function(y){function u(){_classCallCheck(this,u);var e=_callSuper(this,u);e.segments=[];e.singlePoints=[];return e}_inherits(u,y);return _createClass(u,[{key:"init",value:function(e,d){d.threshold=d.threshold||null;h.prototype.init.call(this,e,d)}},{key:"closeSegment",value:function(e,d,f){e.push("L",d[d.length-1].plotX,f,"L",d[0].plotX,f)}},{key:"drawGraph",value:function(){var e;_superPropGet(u, -"drawGraph",this,1).call(this);var d=this;d.graphs&&(null===(e=null===d||void 0===d?void 0:d.graphPaths)||void 0===e||e.forEach(function(f,g){d.graphs[g]&&d.graphs[g].attr({fill:f[1]})}))}},{key:"getSegmentPath",value:function(e){var d,f=H.prototype.getSegmentPath.call(this,e),g=_toConsumableArray(f),k=this.options,n=f.length,m=this.yAxis.getThreshold(null!==(d=k.threshold)&&void 0!==d?d:0);3===n&&g.push("L",f[1],f[2]);if(k.stacking)for(f=e.length-1;0<=f;f--)d=v(e[f].yBottom,m),f=12.20'} - debug-fabulous@1.1.0: resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} @@ -6174,8 +6167,6 @@ snapshots: get-stdin: 4.0.1 meow: 3.7.0 - dateformat@5.0.3: {} - debug-fabulous@1.1.0: dependencies: debug: 3.2.7 diff --git a/samples/custom-module-demo.html b/samples/custom-module-demo.html index e9a4c0c..5bfc947 100644 --- a/samples/custom-module-demo.html +++ b/samples/custom-module-demo.html @@ -5,7 +5,7 @@ Multicolor series - +
    diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index f80cbfa..364ec08 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -838,8 +838,7 @@ class ColoredareaSeries extends ColoredlineSeries { public getSegmentPath( segment: SeriesColoredareaPoint[] ): SeriesColoredSegmentPath[] { - const segmentPath = - ColoredlineSeries.prototype.getSegmentPath.call(this, segment), // Call base method + const segmentPath = super.getSegmentPath.call(this, segment), // Call base method areaSegmentPath = [...segmentPath], // Work on a copy for the area path options = this.options, segLength = segmentPath.length, From 01ea5cd0325e66ca766cfce1827335dcb8df99ec Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Wed, 18 Sep 2024 18:40:31 +0200 Subject: [PATCH 43/66] Remove not needed processData method. --- ts/MulticolorSeries.ts | 63 +----------------------------------------- 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index 364ec08..d25f9dc 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -28,7 +28,7 @@ import { * */ -const { isArray, pick, error } = Utilities; +const { isArray, pick } = Utilities; const containsStringNumberNumberSequence = ( sequenceValue: SeriesColoredSegmentPath[] @@ -206,67 +206,6 @@ class ColoredlineSeries extends LineSeries { return segmentPath; } - - public processData (force?: boolean): boolean { - const series = this, - processedXData = series.xData, // Copied during slice operation below - processedYData = series.yData, - cropStart = 0, - xAxis = series.xAxis, - options = series.options, - isCartesian = series.isCartesian; - - let cropped, - distance, - closestPointRange: undefined | number; - - // If the series data or axes haven't changed, don't go through this. Return false to pass - // the message on to override methods like in data grouping. - if ( - isCartesian && - !series.isDirty && - !xAxis.isDirty && - !series.yAxis.isDirty && - !force - ) { - return false; - } - - if (processedXData && processedYData) { - // Find the closest distance between processed points - for (let index = processedXData.length - 1; index >= 0; index--) { - distance = processedXData[index] - processedXData[index - 1]; - - if ( - distance > 0 && - (typeof closestPointRange === 'undefined' || - distance < closestPointRange) - ) { - closestPointRange = distance; - - // Unsorted data is not supported by the line tooltip, as well as data grouping and - // navigation in Stock charts (#725) and width calculation of columns (#1900) - } else if (distance < 0 && series.requireSorting) { - error(15); - } - } - - // Record the properties - series.cropped = cropped; // Type: undefined or true - series.cropStart = cropStart; - series.processedXData = processedXData; - series.processedYData = processedYData; - - if (options.pointRange === null) { // Type: null means auto, as for columns, candlesticks and OHLC - series.pointRange = closestPointRange || 1; - } - - series.closestPointRange = closestPointRange; - } - - return true; - } - public formatTrackerPath ( trackerPath: SeriesColoredSegmentPath[] ): SeriesColoredSegmentPath[] { From 106877b101ec2b2f25902cfd81c6875805f90c23 Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Wed, 18 Sep 2024 18:41:22 +0200 Subject: [PATCH 44/66] Update babel to target default settings. --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index b3e7859..16341bb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -93,7 +93,7 @@ gulp.task("compile", () => { })) .pipe(gulp.dest('dist')) .pipe(babel({ - presets: ['@babel/preset-env'] + presets: ['@babel/preset-env', { "targets": "defaults" }] })) .pipe(closureCompiler({ compilation_level: 'SIMPLE', From 52acdb4500f88e7ca59abe98fb5642afe7e94b8d Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 24 Sep 2024 18:34:24 +0200 Subject: [PATCH 45/66] Added multicolor series .d.ts types. --- .DS_Store | Bin 0 -> 6148 bytes dist/multicolor-series.d.ts | 59 + dist/multicolor-series.js | 13 +- dist/multicolor-series.min.js | 30 +- dist/multicolor-series.min.js.map | 2 +- package.json | 4 +- pnpm-lock.yaml | 10312 +++++++++++++--------------- samples/custom-module-demo.html | 2 +- ts/MulticolorSeries.ts | 15 +- 9 files changed, 4707 insertions(+), 5730 deletions(-) create mode 100644 .DS_Store create mode 100644 dist/multicolor-series.d.ts diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cf0077db883c7408120ca1019d3051023d254f24 GIT binary patch literal 6148 zcmeHK%}yIJ5dIuiDoF|gi368P`vfcX4Hgs*9JtU2fc$LJv`IE1Ai)Lgz3;#)@O(YB z-;52iy_;)QRUXM6uXnzg@n^5S24Kz~W}ks00Q)SWvjM9Pk@r$s(sMm0)JA`$rQBEQm%C}0 z6@*zIb->KWL@b!iTXvi^$uC4Ib3XDTQMGb#Lm$!-9_b^(33nlG!-!M-U_Gb3^4$?n z`15gnT=RT5!w6T@1!K;_NXnXz_`q?DX}9UhOID&e^!Up-56VF3RTvBGhHrMXUhT}D z>nuR^+OsUHDzG^an`mux&jq;&kOLy0I8MpG;7sgTQvs$=#8|)7g8bAnBhko(p=XaF zPKXnp*&_Qxt5cmANDL$f-WibnA!iX?I^9^UTL&w>0#Ik{R$*Iy5CoGuT{_)Z%{LTd zq0|;?+!e!EIQw&FS32ETZQ(HP@?l(L<8CNMqtkz`<}jtzsZI`qxh6Xh3|4{P?t_O TR SeriesColoredSegmentPath[]; + getSegmentPath?: (segment: SeriesColoredPoint[]) => SeriesColoredSegmentPath[]; + processData?: (force?: boolean) => boolean; + formatTrackerPath?: (trackerPath: SeriesColoredSegmentPath[]) => SeriesColoredSegmentPath[]; + drawTracker?: () => void; + getSegments?: () => void; + setSeriesGraphPathsAndSinglePoints?: () => SeriesColoredGraphPath[]; + getSegment?: (segment: SeriesColoredGraphPath,colorType: _Highcharts.ColorType) => SVGElement | undefined; + drawGraph?: () => void; +}; + +declare module "highcharts" { + interface Point { + segmentColor?: string; + } + interface Series extends SeriesMulticolor {} + interface SeriesMulticolorLineOptions extends _Highcharts.SeriesOptions, SeriesMulticolor {} + interface SeriesMulticolorAreaOptions extends _Highcharts.SeriesOptions, SeriesMulticolor { + closeSegment?: ( + path: SeriesColoredSegmentPath[], + segment: SeriesColoredPoint[], + translatedThreshold: number + ) => void; + } +} + +export function factory(highcharts: typeof _Highcharts): void; +export default factory; +export let Highcharts: typeof _Highcharts; diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index f4df352..164b822 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -29,12 +29,11 @@ _registerModule( _modules, 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Core/Series/Series.js'],_modules['Series/Line/LineSeries.js']], - (SeriesRegistry,Utilities,Series,LineSeries) => { + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js']], + (SeriesRegistry,Utilities,LineSeries) => { - /** * * Helpers @@ -279,7 +278,9 @@ class ColoredlineSeries extends LineSeries { } } } - setState(state) { + setState(state, + // Unused inherit argument added to keep the same type as in the Series. + _inherit) { var _a, _b, _c, _d; const series = this, options = series.options, graphs = series.graphs, stateOptions = options.states; let lineWidth = (_a = options.lineWidth) !== null && _a !== void 0 ? _a : 0; @@ -516,10 +517,6 @@ class ColoredareaSeries extends ColoredlineSeries { * Functions * */ - init(chart, options) { - options.threshold = options.threshold || null; - Series.prototype.init.call(this, chart, options); - } closeSegment(path, segment, translatedThreshold) { path.push('L', segment[segment.length - 1].plotX, translatedThreshold, 'L', segment[0].plotX, translatedThreshold); } diff --git a/dist/multicolor-series.min.js b/dist/multicolor-series.min.js index 75cd23d..11d9238 100644 --- a/dist/multicolor-series.min.js +++ b/dist/multicolor-series.min.js @@ -20,21 +20,21 @@ function _isNativeReflectConstruct(){try{var a=!Boolean.prototype.valueOf.call(R function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(a,b,c){var h=_superPropBase(a,b);if(h)return h=Object.getOwnPropertyDescriptor(h,b),h.get?h.get.call(3>arguments.length?a:c):h.value},_get.apply(null,arguments)}function _superPropBase(a,b){for(;!{}.hasOwnProperty.call(a,b)&&null!==(a=_getPrototypeOf(a)););return a} function _getPrototypeOf(a){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(b){return b.__proto__||Object.getPrototypeOf(b)},_getPrototypeOf(a)}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}});Object.defineProperty(a,"prototype",{writable:!1});b&&_setPrototypeOf(a,b)} function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,h){return c.__proto__=h,c},_setPrototypeOf(a,b)}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(b){return typeof b}:function(b){return b&&"function"==typeof Symbol&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},_typeof(a)} -(function(a){"object"===("undefined"===typeof module?"undefined":_typeof(module))&&module.exports?module.exports=a:a(Highcharts)})(function(a){a=a?a._modules:{};(function(b,c,h,l){b.hasOwnProperty(c)||(b[c]=l.apply(null,h),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:c,module:b[c]}})))})(a,"Extensions/MulticolorSeries.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"],a["Core/Series/Series.js"],a["Series/Line/LineSeries.js"]], -function(b,c,h,l){var t=c.isArray,v=c.pick,C=c.error,D=function(y){for(var u=!1,e=0;ee&&this.requireSorting&&C(15);this.cropped= -void 0;this.cropStart=0;this.processedXData=d;this.processedYData=f;null===k.pointRange&&(this.pointRange=n||1);this.closestPointRange=n}return!0}},{key:"formatTrackerPath",value:function(e){var d,f,g,k,n=this.options,m=e.length,p=this.singlePoints,r=null!==(f=null===(d=this.chart.options.tooltip)||void 0===d?void 0:d.snap)&&void 0!==f?f:0;if(m&&!n.trackByArea)for(d=m+1;d--;)if("M"===(null===(g=e[d])||void 0===g?void 0:g.toString())&&(f=e[d+1],"number"===typeof f&&e.splice(d+1,0,f-r,e[d+2],"L")), -d&&"M"===(null===(k=e[d])||void 0===k?void 0:k.toString())||d===m)f=e[d-2],"number"===typeof f&&e.splice(d,0,"L",f+r,e[d-1]);for(d=0;d=k;g--)d.graphs&&d.graphs[g]&&(d.graphs[g].destroy(),d.graphs.splice(g,1))}},{key:"translate",value:function(){_superPropGet(u,"translate", -this,1).apply(this,arguments);this.getSegments&&this.getSegments()}}])}(l);b.registerSeriesType("coloredline",H);c=function(y){function u(){_classCallCheck(this,u);var e=_callSuper(this,u);e.segments=[];e.singlePoints=[];return e}_inherits(u,y);return _createClass(u,[{key:"init",value:function(e,d){d.threshold=d.threshold||null;h.prototype.init.call(this,e,d)}},{key:"closeSegment",value:function(e,d,f){e.push("L",d[d.length-1].plotX,f,"L",d[0].plotX,f)}},{key:"drawGraph",value:function(){var e;_superPropGet(u, -"drawGraph",this,1).call(this);var d=this;d.graphs&&(null===(e=null===d||void 0===d?void 0:d.graphPaths)||void 0===e||e.forEach(function(f,g){d.graphs[g]&&d.graphs[g].attr({fill:f[1]})}))}},{key:"getSegmentPath",value:function(e){var d,f=H.prototype.getSegmentPath.call(this,e),g=_toConsumableArray(f),k=this.options,n=f.length,m=this.yAxis.getThreshold(null!==(d=k.threshold)&&void 0!==d?d:0);3===n&&g.push("L",f[1],f[2]);if(k.stacking)for(f=e.length-1;0<=f;f--)d=v(e[f].yBottom,m),fe&&this.requireSorting&&v(15);this.cropped=void 0;this.cropStart= +0;this.processedXData=d;this.processedYData=f;null===k.pointRange&&(this.pointRange=m||1);this.closestPointRange=m}return!0}},{key:"formatTrackerPath",value:function(e){var d,f,g,k,m=this.options,n=e.length,p=this.singlePoints,r=null!==(f=null===(d=this.chart.options.tooltip)||void 0===d?void 0:d.snap)&&void 0!==f?f:0;if(n&&!m.trackByArea)for(d=n+1;d--;)if("M"===(null===(g=e[d])||void 0===g?void 0:g.toString())&&(f=e[d+1],"number"===typeof f&&e.splice(d+1,0,f-r,e[d+2],"L")),d&&"M"===(null===(k=e[d])|| +void 0===k?void 0:k.toString())||d===n)f=e[d-2],"number"===typeof f&&e.splice(d,0,"L",f+r,e[d-1]);for(d=0;d=k;g--)d.graphs&&d.graphs[g]&&(d.graphs[g].destroy(),d.graphs.splice(g,1))}},{key:"translate",value:function(){_superPropGet(u,"translate", +this,1).apply(this,arguments);this.getSegments&&this.getSegments()}}])}(h);b.registerSeriesType("coloredline",G);c=function(y){function u(){_classCallCheck(this,u);var e=_callSuper(this,u);e.segments=[];e.singlePoints=[];return e}_inherits(u,y);return _createClass(u,[{key:"closeSegment",value:function(e,d,f){e.push("L",d[d.length-1].plotX,f,"L",d[0].plotX,f)}},{key:"drawGraph",value:function(){var e;_superPropGet(u,"drawGraph",this,1).call(this);var d=this;d.graphs&&(null===(e=null===d||void 0=== +d?void 0:d.graphPaths)||void 0===e||e.forEach(function(f,g){d.graphs[g]&&d.graphs[g].attr({fill:f[1]})}))}},{key:"getSegmentPath",value:function(e){var d,f=G.prototype.getSegmentPath.call(this,e),g=_toConsumableArray(f),k=this.options,m=f.length,n=this.yAxis.getThreshold(null!==(d=k.threshold)&&void 0!==d?d:0);3===m&&g.push("L",f[1],f[2]);if(k.stacking)for(f=e.length-1;0<=f;f--)d=t(e[f].yBottom,n),f=0.10.0'} - - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true - '@babel/code-frame@7.23.5': - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.24.7': + /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.1.0 + dev: true - '@babel/compat-data@7.25.4': + /@babel/compat-data@7.25.4: resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} + dev: true - '@babel/core@7.25.2': + /@babel/core@7.25.2: resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/generator@7.23.6': - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.6': + /@babel/generator@7.25.6: resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true - '@babel/helper-annotate-as-pure@7.24.7': + /@babel/helper-annotate-as-pure@7.24.7: resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.6 + dev: true - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + /@babel/helper-builder-binary-assignment-operator-visitor@7.24.7: resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-compilation-targets@7.25.2': + /@babel/helper-compilation-targets@7.25.2: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true - '@babel/helper-create-class-features-plugin@7.25.4': + /@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-create-regexp-features-plugin@7.25.2': + /@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true - '@babel/helper-define-polyfill-provider@0.6.2': + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.7 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-member-expression-to-functions@7.24.8': + /@babel/helper-member-expression-to-functions@7.24.8: resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-module-imports@7.24.7': + /@babel/helper-module-imports@7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-module-transforms@7.25.2': + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-optimise-call-expression@7.24.7': + /@babel/helper-optimise-call-expression@7.24.7: resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.6 + dev: true - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.24.8': + /@babel/helper-plugin-utils@7.24.8: resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-remap-async-to-generator@7.25.0': + /@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-wrap-function': 7.25.0 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-replace-supers@7.25.0': + /@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-simple-access@7.24.7': + /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + /@babel/helper-skip-transparent-expression-wrappers@7.24.7: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.8': + /@babel/helper-string-parser@7.24.8: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-option@7.24.8': + /@babel/helper-validator-option@7.24.8: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-wrap-function@7.25.0': + /@babel/helper-wrap-function@7.25.0: resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helpers@7.25.6': + /@babel/helpers@7.25.6: resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + dev: true - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + dev: true - '@babel/parser@7.23.6': - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.25.6': + /@babel/parser@7.25.6: resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.25.6 + dev: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2): resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': + /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + dev: true - '@babel/plugin-syntax-async-generators@7.8.4': + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-bigint@7.8.3': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-class-properties@7.12.13': + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-class-static-block@7.14.5': + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-dynamic-import@7.8.3': + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-export-namespace-from@7.8.3': + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-import-assertions@7.25.6': + /@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2): resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-import-attributes@7.25.6': + /@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2): resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-import-meta@7.10.4': + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-json-strings@7.8.3': + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-jsx@7.23.3': - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-numeric-separator@7.10.4': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-object-rest-spread@7.8.3': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-optional-catch-binding@7.8.3': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-optional-chaining@7.8.3': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-private-property-in-object@7.14.5': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-top-level-await@7.14.5': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-typescript@7.23.3': - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + /@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2): + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-arrow-functions@7.24.7': + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-async-generator-functions@7.25.4': + /@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-async-to-generator@7.24.7': + /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-block-scoped-functions@7.24.7': + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.25.0': - resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2): + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-class-properties@7.25.4': + /@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-class-static-block@7.24.7': + /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-classes@7.25.4': + /@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/traverse': 7.25.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-computed-properties@7.24.7': + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.0 + dev: true - '@babel/plugin-transform-destructuring@7.24.8': + /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2): resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-dotall-regex@7.24.7': + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-duplicate-keys@7.24.7': + /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': + /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-dynamic-import@7.24.7': + /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-exponentiation-operator@7.24.7': + /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-export-namespace-from@7.24.7': + /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-for-of@7.24.7': + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-function-name@7.25.1': + /@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2): resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-json-strings@7.24.7': + /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-literals@7.25.2': + /@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-logical-assignment-operators@7.24.7': + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-member-expression-literals@7.24.7': + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-modules-amd@7.24.7': + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-modules-commonjs@7.24.8': + /@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2): resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-modules-systemjs@7.25.0': + /@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2): resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-modules-umd@7.24.7': + /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': + /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-new-target@7.24.7': + /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': + /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-numeric-separator@7.24.7': + /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-object-rest-spread@7.24.7': + /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-object-super@7.24.7': + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-optional-catch-binding@7.24.7': + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + dev: true - '@babel/plugin-transform-optional-chaining@7.24.8': + /@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2): resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-parameters@7.24.7': + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-private-methods@7.25.4': + /@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-private-property-in-object@7.24.7': + /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-property-literals@7.24.7': + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-regenerator@7.24.7': + /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + regenerator-transform: 0.15.2 + dev: true - '@babel/plugin-transform-reserved-words@7.24.7': + /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-shorthand-properties@7.24.7': + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-spread@7.24.7': + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/plugin-transform-sticky-regex@7.24.7': + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-template-literals@7.24.7': + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-typeof-symbol@7.24.8': + /@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2): resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-unicode-escapes@7.24.7': + /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-unicode-property-regex@7.24.7': + /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-unicode-regex@7.24.7': + /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2): resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/plugin-transform-unicode-sets-regex@7.25.4': + /@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/preset-env@7.25.4': + /@babel/preset-env@7.25.4(@babel/core@7.25.2): resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.6': - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@1.4.1': - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@gulp-sourcemaps/identity-map@2.0.1': - resolution: {integrity: sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==} - engines: {node: '>= 0.10'} - - '@gulp-sourcemaps/map-sources@1.0.0': - resolution: {integrity: sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==} - engines: {node: '>= 0.10'} - - '@gulpjs/messages@1.1.0': - resolution: {integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==} - engines: {node: '>=10.13.0'} - - '@gulpjs/to-absolute-glob@4.0.0': - resolution: {integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==} - engines: {node: '>=10.13.0'} - - '@humanwhocodes/config-array@0.6.0': - resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinonjs/commons@3.0.0': - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@socket.io/component-emitter@3.1.0': - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - - '@types/cors@2.8.17': - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - - '@types/expect@1.20.4': - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.6': - resolution: {integrity: sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==} - - '@types/jquery@3.5.6': - resolution: {integrity: sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@20.10.7': - resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==} - - '@types/semver@7.5.6': - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - - '@types/sizzle@2.3.8': - resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/trusted-types@2.0.2': - resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} - - '@types/vinyl@2.0.11': - resolution: {integrity: sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@typescript-eslint/eslint-plugin@6.11.0': - resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.11.0': - resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.11.0': - resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.11.0': - resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.11.0': - resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@6.11.0': - resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.11.0': - resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@6.11.0': - resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} - engines: {node: '>=0.4.0'} - - acorn@6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-colors@1.1.0: - resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} - engines: {node: '>=0.10.0'} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-gray@0.1.1: - resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} - engines: {node: '>=0.10.0'} - - ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - - ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-wrap@0.1.0: - resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} - engines: {node: '>=0.10.0'} - - any-shell-escape@0.1.1: - resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - append-buffer@1.0.2: - resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} - engines: {node: '>=0.10.0'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - - arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - - array-each@1.0.1: - resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} - engines: {node: '>=0.10.0'} - - array-find-index@1.0.2: - resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} - engines: {node: '>=0.10.0'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-slice@1.1.0: - resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} - engines: {node: '>=0.10.0'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - - astral-regex@1.0.0: - resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} - engines: {node: '>=4'} - - async-done@2.0.0: - resolution: {integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==} - engines: {node: '>= 10.13.0'} - - async-settle@2.0.0: - resolution: {integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==} - engines: {node: '>= 10.13.0'} - - async@0.2.10: - resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - - b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-polyfill-corejs2@0.4.11: - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.2: - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - bach@2.0.1: - resolution: {integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==} - engines: {node: '>=10.13.0'} - - backbone@1.5.0: - resolution: {integrity: sha512-RPKlstw5NW+rD2X4PnEnvgLhslRnXOugXw2iBloHkPMgOxvakP1/A+tZIGM3qCm8uvZeEf8zMm0uvcK1JwL+IA==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - bare-events@2.4.2: - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} - engines: {node: ^4.5.0 || >= 5.9} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - binaryextensions@2.3.0: - resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} - engines: {node: '>=0.8'} - - bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-equal@1.0.1: - resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} - engines: {node: '>=0.4'} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bump-regex@4.1.0: - resolution: {integrity: sha512-75Kr/Iw6lqnOKF/7YpE0WyOMBaaSpdrXTquIxR0qbTgZxwJos6563zNSn+w/LPJUoL4DXq20QX9AQy4+UJbyhw==} - engines: {node: '>= 4.0.0'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-keys@2.1.0: - resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} - engines: {node: '>=0.10.0'} - - camelcase@2.1.1: - resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} - engines: {node: '>=0.10.0'} - - camelcase@3.0.0: - resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} - engines: {node: '>=0.10.0'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} - - chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - charm@1.0.2: - resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - cliui@3.2.0: - resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - - clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - - cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - consolidate@0.16.0: - resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==} - engines: {node: '>= 0.10.0'} - deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog - peerDependencies: - arc-templates: ^0.5.3 - atpl: '>=0.7.6' - babel-core: ^6.26.3 - bracket-template: ^1.1.5 - coffee-script: ^1.12.7 - dot: ^1.1.3 - dust: ^0.3.0 - dustjs-helpers: ^1.7.4 - dustjs-linkedin: ^2.7.5 - eco: ^1.1.0-rc-3 - ect: ^0.5.9 - ejs: ^3.1.5 - haml-coffee: ^1.14.1 - hamlet: ^0.3.3 - hamljs: ^0.6.2 - handlebars: ^4.7.6 - hogan.js: ^3.0.2 - htmling: ^0.0.8 - jade: ^1.11.0 - jazz: ^0.0.18 - jqtpl: ~1.1.0 - just: ^0.1.8 - liquid-node: ^3.0.1 - liquor: ^0.0.5 - lodash: ^4.17.20 - marko: ^3.14.4 - mote: ^0.2.0 - mustache: ^4.0.1 - nunjucks: ^3.2.2 - plates: ~0.4.11 - pug: ^3.0.0 - qejs: ^3.0.5 - ractive: ^1.3.12 - razor-tmpl: ^1.3.1 - react: ^16.13.1 - react-dom: ^16.13.1 - slm: ^2.0.0 - squirrelly: ^5.1.0 - swig: ^1.4.2 - swig-templates: ^2.0.3 - teacup: ^2.0.0 - templayed: '>=0.2.3' - then-jade: '*' - then-pug: '*' - tinyliquid: ^0.2.34 - toffee: ^0.3.6 - twig: ^1.15.2 - twing: ^5.0.2 - underscore: ^1.11.0 - vash: ^0.13.0 - velocityjs: ^2.0.1 - walrus: ^0.10.1 - whiskers: ^0.4.0 - peerDependenciesMeta: - arc-templates: - optional: true - atpl: - optional: true - babel-core: - optional: true - bracket-template: - optional: true - coffee-script: - optional: true - dot: - optional: true - dust: - optional: true - dustjs-helpers: - optional: true - dustjs-linkedin: - optional: true - eco: - optional: true - ect: - optional: true - ejs: - optional: true - haml-coffee: - optional: true - hamlet: - optional: true - hamljs: - optional: true - handlebars: - optional: true - hogan.js: - optional: true - htmling: - optional: true - jade: - optional: true - jazz: - optional: true - jqtpl: - optional: true - just: - optional: true - liquid-node: - optional: true - liquor: - optional: true - lodash: - optional: true - marko: - optional: true - mote: - optional: true - mustache: - optional: true - nunjucks: - optional: true - plates: - optional: true - pug: - optional: true - qejs: - optional: true - ractive: - optional: true - razor-tmpl: - optional: true - react: - optional: true - react-dom: - optional: true - slm: - optional: true - squirrelly: - optional: true - swig: - optional: true - swig-templates: - optional: true - teacup: - optional: true - templayed: - optional: true - then-jade: - optional: true - then-pug: - optional: true - tinyliquid: - optional: true - toffee: - optional: true - twig: - optional: true - twing: - optional: true - underscore: - optional: true - vash: - optional: true - velocityjs: - optional: true - walrus: - optional: true - whiskers: - optional: true - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - - copy-props@4.0.0: - resolution: {integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==} - engines: {node: '>= 10.13.0'} - - core-js-compat@3.38.1: - resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - css@3.0.0: - resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - currently-unhandled@0.4.1: - resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} - engines: {node: '>=0.10.0'} - - d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - dateformat@1.0.12: - resolution: {integrity: sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg==} - hasBin: true - - dateformat@5.0.3: - resolution: {integrity: sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==} - engines: {node: '>=12.20'} - - debug-fabulous@1.1.0: - resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - - detect-newline@2.1.0: - resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} - engines: {node: '>=0.10.0'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - - duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - - each-props@3.0.0: - resolution: {integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==} - engines: {node: '>= 10.13.0'} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - electron-to-chromium@1.5.19: - resolution: {integrity: sha512-kpLJJi3zxTR1U828P+LIUDZ5ohixyo68/IcYOHLqnbTPr/wdgn4i1ECvmALN9E16JPA6cvCG5UG79gVwVdEK5w==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - engine.io-parser@5.2.1: - resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} - engines: {node: '>=10.0.0'} - - engine.io@6.5.4: - resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} - engines: {node: '>=10.2.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - - es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - - es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - - es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@6.0.0: - resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@1.4.3: - resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@6.8.0: - resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - hasBin: true - - eslint@8.0.1: - resolution: {integrity: sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - - espree@6.2.1: - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} - engines: {node: '>=6.0.0'} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events-to-array@1.1.2: - resolution: {integrity: sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==} - - execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} - - ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - - extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fancy-log@1.3.3: - resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} - engines: {node: '>= 0.10'} - - fancy-log@2.0.0: - resolution: {integrity: sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==} - engines: {node: '>=10.13.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-levenshtein@3.0.0: - resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@5.0.1: - resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} - engines: {node: '>=4'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - - find-up@1.1.2: - resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} - engines: {node: '>=0.10.0'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - findup-sync@5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} - - fined@2.0.0: - resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} - engines: {node: '>= 10.13.0'} - - fireworm@0.7.2: - resolution: {integrity: sha512-GjebTzq+NKKhfmDxjKq3RXwQcN9xRmZWhnnuC9L+/x5wBQtR0aaQM50HsjrzJ2wc28v1vSdfOpELok0TKR4ddg==} - - first-chunk-stream@2.0.0: - resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} - engines: {node: '>=0.10.0'} - - flagged-respawn@2.0.0: - resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} - engines: {node: '>= 10.13.0'} - - flat-cache@2.0.1: - resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} - engines: {node: '>=4'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@2.0.2: - resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} - - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - - flush-write-stream@1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - - follow-redirects@1.15.4: - resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - - for-own@1.0.0: - resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} - engines: {node: '>=0.10.0'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-mkdirp-stream@1.0.0: - resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} - engines: {node: '>= 0.10'} - - fs-mkdirp-stream@2.0.1: - resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} - engines: {node: '>=10.13.0'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-stdin@4.0.1: - resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} - engines: {node: '>=0.10.0'} - - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-stream@6.1.0: - resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} - engines: {node: '>= 0.10'} - - glob-stream@8.0.2: - resolution: {integrity: sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==} - engines: {node: '>=10.13.0'} - - glob-watcher@6.0.0: - resolution: {integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==} - engines: {node: '>= 10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - - global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@12.4.0: - resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} - engines: {node: '>=8'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - glogg@2.2.0: - resolution: {integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==} - engines: {node: '>= 10.13.0'} - - google-closure-compiler-java@20240317.0.0: - resolution: {integrity: sha512-oWURPChjcCrVfiQOuVtpSoUJVvtOYo41JGEQ2qtArsTGmk/DpWh40vS6hitwKRM/0YzJX/jYUuyt9ibuXXJKmg==} - - google-closure-compiler-linux@20240317.0.0: - resolution: {integrity: sha512-dYLtcbbJdbbBS0lTy9SzySdVv/aGkpyTekQiW4ADhT/i1p1b4r0wQTKj6kpVVmFvbZ6t9tW/jbXc9EXXNUahZw==} - cpu: [x32, x64] - os: [linux] - - google-closure-compiler-osx@20240317.0.0: - resolution: {integrity: sha512-0mABwjD4HP11rikFd8JRIb9OgPqn9h3o3wS0otufMfmbwS7zRpnnoJkunifhORl3VoR1gFm6vcTC9YziTEFdOw==} - cpu: [x32, x64, arm64] - os: [darwin] - - google-closure-compiler-windows@20240317.0.0: - resolution: {integrity: sha512-fTueVFzNOWURFlXZmrFkAB7yA+jzpA2TeDOYeBEFwVlVGHwi8PV3Q9vCIWlbkE8wLpukKEg5wfRHYrLwVPINCA==} - cpu: [x32, x64] - os: [win32] - - google-closure-compiler@20240317.0.0: - resolution: {integrity: sha512-PlC5aU2vwsypKbxyFNXOW4psDZfhDoOr2dCwuo8VcgQji+HVIgRi2lviO66x2SfTi0ilm3kI6rq/RSdOMFczcQ==} - engines: {node: '>=10'} - hasBin: true - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - growly@1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - - gulp-babel@8.0.0: - resolution: {integrity: sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==} - engines: {node: '>=6'} - peerDependencies: - '@babel/core': ^7.0.0 - - gulp-bump@3.2.0: - resolution: {integrity: sha512-j3Yvi0QQZEN1HsXArQCBMdX5jedQZ1Cul3W1VZrvKal/Z4Slb6Z7UQLQyPaLm0heNdJKCjpKHgkYSR8VhfPlTA==} - engines: {node: '>= 0.9.0'} - - gulp-cli@3.0.0: - resolution: {integrity: sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==} - engines: {node: '>=10.13.0'} - hasBin: true - - gulp-eslint@6.0.0: - resolution: {integrity: sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig==} - - gulp-git@2.11.0: - resolution: {integrity: sha512-7YOcwin7sr68weYhBNOtZia3LZOGZWXgGcxxcxCi2hjljTgysOhH9mLTH2hdG5YLcuAFNg7mMbb2xIRfYsaQZw==} - engines: {node: '>= 0.9.0'} - - gulp-rename@2.0.0: - resolution: {integrity: sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==} - engines: {node: '>=4'} - - gulp-replace@1.1.4: - resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} - engines: {node: '>=10'} - - gulp-sourcemaps@3.0.0: - resolution: {integrity: sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==} - engines: {node: '>= 6'} - - gulp-typescript@6.0.0-alpha.1: - resolution: {integrity: sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==} - engines: {node: '>= 8'} - peerDependencies: - typescript: '~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev ' - - gulp@5.0.0: - resolution: {integrity: sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==} - engines: {node: '>=10.13.0'} - hasBin: true - - gulplog@2.2.0: - resolution: {integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==} - engines: {node: '>= 10.13.0'} - - has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - - highcharts@https://codeload.github.com/highcharts/highcharts/tar.gz/60944b0fe2c13c465457dae29beaf68c46aab8e9: - resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/60944b0fe2c13c465457dae29beaf68c46aab8e9} - version: 11.4.8 - engines: {node: '>=14.14.0'} - - homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - husky@8.0.0: - resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==} - engines: {node: '>=14'} - hasBin: true - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - - ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@2.1.0: - resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==} - engines: {node: '>=0.10.0'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - - invert-kv@1.0.0: - resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} - engines: {node: '>=0.10.0'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-absolute@1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finite@1.1.0: - resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-negated-glob@1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - - is-relative@1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-type@0.0.1: - resolution: {integrity: sha512-YwJh/zBVrcJ90aAnPBM0CbHvm7lG9ao7lIFeqTZ1UQj4iFLpM5CikdaU+dGGesrMJwxLqPGmjjrUrQ6Kn3Zh+w==} - - is-unc-path@1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - - is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - - is-valid-glob@1.0.0: - resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} - engines: {node: '>=0.10.0'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} - - istextorbinary@3.3.0: - resolution: {integrity: sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==} - engines: {node: '>=8'} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - last-run@2.0.0: - resolution: {integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==} - engines: {node: '>= 10.13.0'} - - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - - lcid@1.0.0: - resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} - engines: {node: '>=0.10.0'} - - lead@1.0.0: - resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} - engines: {node: '>= 0.10'} - - lead@4.0.0: - resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} - engines: {node: '>=10.13.0'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - liftoff@5.0.0: - resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} - engines: {node: '>=10.13.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-json-file@1.1.0: - resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} - engines: {node: '>=0.10.0'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lodash._baseflatten@3.1.4: - resolution: {integrity: sha512-fESngZd+X4k+GbTxdMutf8ohQa0s3sJEHIcwtu4/LsIQ2JTDzdRxDCMQjW+ezzwRitLmHnacVVmosCbxifefbw==} - - lodash._getnative@3.9.1: - resolution: {integrity: sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==} - - lodash._isiterateecall@3.0.9: - resolution: {integrity: sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==} - - lodash.assign@4.2.0: - resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} - - lodash.assignin@4.2.0: - resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==} - - lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - - lodash.debounce@3.1.1: - resolution: {integrity: sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.find@4.6.0: - resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} - - lodash.flatten@3.0.2: - resolution: {integrity: sha512-jCXLoNcqQRbnT/KWZq2fIREHWeczrzpTR0vsycm96l/pu5hGeAntVBG0t7GuM/2wFqmnZs3d1eGptnAH2E8+xQ==} - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - - lodash.isarray@3.0.4: - resolution: {integrity: sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.uniqby@4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loud-rejection@1.6.0: - resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} - engines: {node: '>=0.10.0'} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memoizee@0.4.17: - resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} - engines: {node: '>=0.12'} - - meow@3.7.0: - resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} - engines: {node: '>=0.10.0'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - - mute-stdout@2.0.0: - resolution: {integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==} - engines: {node: '>= 10.13.0'} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-notifier@10.0.1: - resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - node-watch@0.7.3: - resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} - engines: {node: '>=6'} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - now-and-later@2.0.1: - resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} - engines: {node: '>= 0.10'} - - now-and-later@3.0.0: - resolution: {integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==} - engines: {node: '>= 10.13.0'} - - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.defaults@1.1.0: - resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} - engines: {node: '>=0.10.0'} - - object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - ordered-read-streams@1.0.1: - resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} - - os-locale@1.4.0: - resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} - engines: {node: '>=0.10.0'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-filepath@1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} - - parse-json@2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - - parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - - path-exists@2.1.0: - resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} - engines: {node: '>=0.10.0'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-root-regex@0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} - - path-root@0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} - - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-type@1.1.0: - resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} - engines: {node: '>=0.10.0'} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-conf@1.1.3: - resolution: {integrity: sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==} - engines: {node: '>=0.10.0'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - plugin-error@1.0.1: - resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} - engines: {node: '>= 0.10'} - - plugin-log@0.1.0: - resolution: {integrity: sha512-TzmfWRMEFAnrZbI4GfyXv9Gp5E71eby3gmvnP6LEfmYbVC8FPN2RBRhwxg4sjIg+fy8AJ3mczhLXvk0pzHPeMg==} - engines: {node: '>= 0.9.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - postcss@7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - - prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - printf@0.6.1: - resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==} - engines: {node: '>= 0.9.0'} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pure-rand@6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - - qunit@2.20.0: - resolution: {integrity: sha512-N8Fp1J55waE+QG1KwX2LOyqulZUToRrrPBqDOfYfuAMkEglFL15uwvmH1P4Tq/omQ/mGbBI8PEB3PhIfvUb+jg==} - engines: {node: '>=10'} - hasBin: true - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - read-pkg-up@1.0.1: - resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} - engines: {node: '>=0.10.0'} - - read-pkg@1.1.0: - resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} - engines: {node: '>=0.10.0'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - - redent@1.0.0: - resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} - engines: {node: '>=0.10.0'} - - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regexpp@2.0.1: - resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} - engines: {node: '>=6.5.0'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - - remove-bom-buffer@3.0.0: - resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} - engines: {node: '>=0.10.0'} - - remove-bom-stream@1.2.0: - resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} - engines: {node: '>= 0.10'} - - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - - repeating@2.0.1: - resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} - engines: {node: '>=0.10.0'} - - replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - - replace-ext@2.0.0: - resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} - engines: {node: '>= 10'} - - replace-homedir@2.0.0: - resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} - engines: {node: '>= 10.13.0'} - - replacestream@4.0.3: - resolution: {integrity: sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==} - - require-dir@1.2.0: - resolution: {integrity: sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-main-filename@1.0.1: - resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-options@1.1.0: - resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} - engines: {node: '>= 0.10'} - - resolve-options@2.0.0: - resolution: {integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==} - engines: {node: '>= 10.13.0'} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - semver-greatest-satisfied-range@2.0.0: - resolution: {integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==} - engines: {node: '>= 10.13.0'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shellwords@0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@2.1.0: - resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} - engines: {node: '>=6'} - - socket.io-adapter@2.5.2: - resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} - - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} - - socket.io@4.7.3: - resolution: {integrity: sha512-SE+UIQXBQE+GPG2oszWMlsEmWtHVqw/h1VrYJGK5/MC7CH5p58N448HwIrtREcvR4jfdOJAY4ieQfxMr55qbbw==} - engines: {node: '>=10.2.0'} - - source-map-resolve@0.6.0: - resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - sparkles@2.1.0: - resolution: {integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==} - engines: {node: '>= 10.13.0'} - - spawn-args@0.2.0: - resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - stream-composer@1.0.2: - resolution: {integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==} - - stream-exhaust@1.0.2: - resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} - - stream-shift@1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - - streamx@2.20.0: - resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - - string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} - engines: {node: '>=6'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - - strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-bom-buf@1.0.0: - resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} - engines: {node: '>=4'} - - strip-bom-stream@3.0.0: - resolution: {integrity: sha512-2di6sulSHfspbuEJHwwF6vzwijA4uaKsKYtviRQsJsOdxxb6yexiDcZFQ5oY10J50YxmCdHn/1sQmxDKbrGOVw==} - engines: {node: '>=4'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@1.0.1: - resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==} - engines: {node: '>=0.10.0'} - hasBin: true - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - styled_string@0.0.1: - resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} - - supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - sver@1.8.4: - resolution: {integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - symbol@0.2.3: - resolution: {integrity: sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==} - - table@5.4.6: - resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} - engines: {node: '>=6.0.0'} - - tap-parser@7.0.0: - resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} - hasBin: true - - teex@1.0.1: - resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - testem@3.11.0: - resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==} - engines: {node: '>= 7.*'} - hasBin: true - - text-decoder@1.1.1: - resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - textextensions@3.3.0: - resolution: {integrity: sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==} - engines: {node: '>=8'} - - through2-filter@3.0.0: - resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} - - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - - through2@3.0.2: - resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - time-stamp@1.1.0: - resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} - engines: {node: '>=0.10.0'} - - timers-ext@0.1.8: - resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} - engines: {node: '>=0.12'} - - tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-absolute-glob@2.0.2: - resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} - engines: {node: '>=0.10.0'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - to-through@2.0.0: - resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} - engines: {node: '>= 0.10'} - - to-through@3.0.0: - resolution: {integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==} - engines: {node: '>=10.13.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - trim-newlines@1.0.0: - resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==} - engines: {node: '>=0.10.0'} - - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - - ts-jest@29.1.1: - resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - - typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} - hasBin: true - - unc-path-regex@0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - - underscore@1.13.6: - resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} - - undertaker-registry@2.0.0: - resolution: {integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==} - engines: {node: '>= 10.13.0'} - - undertaker@2.0.0: - resolution: {integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==} - engines: {node: '>=10.13.0'} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unique-stream@2.3.1: - resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - v8flags@4.0.1: - resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} - engines: {node: '>= 10.13.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - value-or-function@3.0.0: - resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} - engines: {node: '>= 0.10'} - - value-or-function@4.0.0: - resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==} - engines: {node: '>= 10.13.0'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vinyl-contents@2.0.0: - resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} - engines: {node: '>=10.13.0'} - - vinyl-fs@3.0.3: - resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} - engines: {node: '>= 0.10'} - - vinyl-fs@4.0.0: - resolution: {integrity: sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==} - engines: {node: '>=10.13.0'} - - vinyl-sourcemap@1.1.0: - resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} - engines: {node: '>= 0.10'} - - vinyl-sourcemap@2.0.0: - resolution: {integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==} - engines: {node: '>=10.13.0'} - - vinyl-sourcemaps-apply@0.2.1: - resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} - - vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - - vinyl@3.0.0: - resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} - engines: {node: '>=10.13.0'} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - window-size@0.2.0: - resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} - engines: {node: '>= 0.10.0'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@2.1.0: - resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - write@1.0.3: - resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} - engines: {node: '>=4'} - - ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} - 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 - - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - 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 - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - y18n@3.2.2: - resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yargs-parser@2.4.1: - resolution: {integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yargs@4.7.0: - resolution: {integrity: sha512-xDPzHvjDQWcYDrVEo+fcRsJiYVR5l1B6BG6gxOBeZWCEGfbtmdY9HlVKp0IvrxiRL3+aZ+K0tOfRLNMZ+N8rzQ==} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - - '@babel/code-frame@7.23.5': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.0 - - '@babel/compat-data@7.25.4': {} - - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.23.6': - dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - - '@babel/generator@7.25.6': - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-plugin-utils@7.22.5': {} - - '@babel/helper-plugin-utils@7.24.8': {} - - '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.23.4': {} - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helper-wrap-function@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.25.6': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - - '@babel/highlight@7.23.4': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - - '@babel/parser@7.23.6': - dependencies: - '@babel/types': 7.23.6 - - '@babel/parser@7.25.6': - dependencies: - '@babel/types': 7.25.6 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 - - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/preset-env@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 @@ -5094,146 +1314,204 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/types': 7.25.6 esutils: 2.0.3 + dev: true - '@babel/regjsgen@0.8.0': {} + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true - '@babel/runtime@7.25.6': + /@babel/runtime@7.25.6: + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 + dev: true - '@babel/template@7.22.15': - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - - '@babel/template@7.25.0': + /@babel/template@7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 '@babel/parser': 7.25.6 '@babel/types': 7.25.6 + dev: true - '@babel/traverse@7.25.6': + /@babel/traverse@7.25.6: + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 '@babel/generator': 7.25.6 '@babel/parser': 7.25.6 '@babel/template': 7.25.0 '@babel/types': 7.25.6 - debug: 4.3.4 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/types@7.23.6': - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@babel/types@7.25.6': + /@babel/types@7.25.6: + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + dev: true - '@bcoe/v8-coverage@0.2.3': {} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.0.1)': + /@eslint-community/eslint-utils@4.4.0(eslint@8.0.1): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.0.1 eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.10.0': {} + /@eslint-community/regexpp@4.11.1: + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/eslintrc@1.4.1': + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - '@gulp-sourcemaps/identity-map@2.0.1': + /@gulp-sourcemaps/identity-map@2.0.1: + resolution: {integrity: sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==} + engines: {node: '>= 0.10'} dependencies: acorn: 6.4.2 normalize-path: 3.0.0 postcss: 7.0.39 source-map: 0.6.1 through2: 3.0.2 + dev: true - '@gulp-sourcemaps/map-sources@1.0.0': + /@gulp-sourcemaps/map-sources@1.0.0: + resolution: {integrity: sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==} + engines: {node: '>= 0.10'} dependencies: normalize-path: 2.1.1 through2: 2.0.5 + dev: true - '@gulpjs/messages@1.1.0': {} + /@gulpjs/messages@1.1.0: + resolution: {integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==} + engines: {node: '>=10.13.0'} + dev: true - '@gulpjs/to-absolute-glob@4.0.0': + /@gulpjs/to-absolute-glob@4.0.0: + resolution: {integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==} + engines: {node: '>=10.13.0'} dependencies: is-negated-glob: 1.0.0 + dev: true - '@humanwhocodes/config-array@0.6.0': + /@humanwhocodes/config-array@0.6.0: + resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true - '@humanwhocodes/object-schema@1.2.1': {} + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead + dev: true - '@istanbuljs/load-nyc-config@1.1.0': + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 + dev: true - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/console@29.7.0': + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 + dev: true - '@jest/core@29.7.0(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2))': + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0(node-notifier@10.0.1) + '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -5245,45 +1523,58 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 jest-watcher: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 - optionalDependencies: - node-notifier: 10.0.1 transitivePeerDependencies: - babel-plugin-macros - supports-color - ts-node + dev: true - '@jest/environment@29.7.0': + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-mock: 29.7.0 + dev: true - '@jest/expect-utils@29.7.0': + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: true - '@jest/expect@29.7.0': + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/fake-timers@29.7.0': + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - '@jest/globals@29.7.0': + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -5291,67 +1582,88 @@ snapshots: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/reporters@29.7.0(node-notifier@10.0.1)': + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.10.7 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 22.6.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.1 + istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 - optionalDependencies: - node-notifier: 10.0.1 + v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 + dev: true - '@jest/source-map@29.6.3': + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 + dev: true - '@jest/test-result@29.7.0': + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + dev: true - '@jest/test-sequencer@29.7.0': + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 + dev: true - '@jest/transform@29.7.0': + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.25.2 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -5360,401 +1672,672 @@ snapshots: jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.8 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + dev: true - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.7 - '@types/yargs': 17.0.32 + '@types/node': 22.6.1 + '@types/yargs': 17.0.33 chalk: 4.1.2 + dev: true - '@jridgewell/gen-mapping@0.3.3': - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - - '@jridgewell/gen-mapping@0.3.5': + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + dev: true - '@jridgewell/resolve-uri@3.1.1': {} - - '@jridgewell/set-array@1.1.2': {} - - '@jridgewell/set-array@1.2.1': {} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true - '@jridgewell/sourcemap-codec@1.4.15': {} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true - '@jridgewell/trace-mapping@0.3.20': - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + dev: true - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 + dev: true - '@nodelib/fs.stat@2.0.5': {} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + fastq: 1.17.1 + dev: true - '@sinclair/typebox@0.27.8': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@sinonjs/commons@3.0.0': + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/fake-timers@10.3.0': + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: - '@sinonjs/commons': 3.0.0 + '@sinonjs/commons': 3.0.1 + dev: true - '@socket.io/component-emitter@3.1.0': {} + /@socket.io/component-emitter@3.1.2: + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + dev: true - '@tootallnate/once@2.0.0': {} + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true - '@tsconfig/node10@1.0.9': {} + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + dev: true - '@tsconfig/node12@1.0.11': {} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true - '@tsconfig/node14@1.0.3': {} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true - '@tsconfig/node16@1.0.4': {} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 + dev: true - '@types/babel__generator@7.6.8': + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.25.6 + dev: true - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + dev: true - '@types/babel__traverse@7.20.5': + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.25.6 + dev: true - '@types/cookie@0.4.1': {} + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: true - '@types/cors@2.8.17': + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.10.7 + '@types/node': 22.6.1 + dev: true - '@types/expect@1.20.4': {} + /@types/expect@1.20.4: + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} + dev: true - '@types/graceful-fs@4.1.9': + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.7 + '@types/node': 22.6.1 + dev: true - '@types/istanbul-lib-coverage@2.0.6': {} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true - '@types/istanbul-lib-report@3.0.3': + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 + dev: true - '@types/istanbul-reports@3.0.4': + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 + dev: true - '@types/jest@29.5.6': + /@types/jest@29.5.6: + resolution: {integrity: sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: true - '@types/jquery@3.5.6': + /@types/jquery@3.5.6: + resolution: {integrity: sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==} dependencies: '@types/sizzle': 2.3.8 + dev: true - '@types/jsdom@20.0.1': + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.10.7 + '@types/node': 22.6.1 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 + dev: true - '@types/json-schema@7.0.15': {} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true - '@types/node@20.10.7': + /@types/node@22.6.1: + resolution: {integrity: sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==} dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 + dev: true - '@types/semver@7.5.6': {} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true - '@types/sizzle@2.3.8': {} + /@types/sizzle@2.3.8: + resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} + dev: true - '@types/stack-utils@2.0.3': {} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true - '@types/tough-cookie@4.0.5': {} + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true - '@types/trusted-types@2.0.2': {} + /@types/trusted-types@2.0.2: + resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} + dev: true - '@types/vinyl@2.0.11': + /@types/vinyl@2.0.12: + resolution: {integrity: sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.10.7 + '@types/node': 22.6.1 + dev: true - '@types/yargs-parser@21.0.3': {} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: true - '@types/yargs@17.0.32': + /@types/yargs@17.0.33: + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} dependencies: '@types/yargs-parser': 21.0.3 + dev: true - '@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.0.1)(typescript@5.2.2))(eslint@8.0.1)(typescript@5.2.2)': + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.1 '@typescript-eslint/parser': 6.11.0(eslint@8.0.1)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/type-utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) '@typescript-eslint/utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4 + debug: 4.3.7 eslint: 8.0.1 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - optionalDependencies: + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@6.11.0(eslint@8.0.1)(typescript@5.2.2)': + /@typescript-eslint/parser@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4 + debug: 4.3.7 eslint: 8.0.1 - optionalDependencies: typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/scope-manager@6.11.0': + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0 + dev: true - '@typescript-eslint/type-utils@6.11.0(eslint@8.0.1)(typescript@5.2.2)': + /@typescript-eslint/type-utils@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) '@typescript-eslint/utils': 6.11.0(eslint@8.0.1)(typescript@5.2.2) - debug: 4.3.4 + debug: 4.3.7 eslint: 8.0.1 - ts-api-utils: 1.0.3(typescript@5.2.2) - optionalDependencies: + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/types@6.11.0': {} + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true - '@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2)': + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - optionalDependencies: + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@6.11.0(eslint@8.0.1)(typescript@5.2.2)': + /@typescript-eslint/utils@6.11.0(eslint@8.0.1)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.0.1) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) eslint: 8.0.1 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/visitor-keys@6.11.0': + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.11.0 eslint-visitor-keys: 3.4.3 + dev: true - '@xmldom/xmldom@0.8.10': {} + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: true - abab@2.0.6: {} + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + dev: true - acorn-globals@7.0.1: + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.11.3 - acorn-walk: 8.3.1 + acorn: 8.12.1 + acorn-walk: 8.3.4 + dev: true - acorn-jsx@5.3.2(acorn@7.4.1): + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 7.4.1 + dev: true - acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.12.1 + dev: true - acorn-walk@8.3.1: {} + /acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 + dev: true - acorn@6.4.2: {} + /acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - acorn@7.4.1: {} + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - acorn@8.11.3: {} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color + dev: true - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true - ansi-colors@1.1.0: + /ansi-colors@1.1.0: + resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} + engines: {node: '>=0.10.0'} dependencies: ansi-wrap: 0.1.0 + dev: true - ansi-colors@4.1.3: {} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: true - ansi-gray@0.1.1: + /ansi-gray@0.1.1: + resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} + engines: {node: '>=0.10.0'} dependencies: ansi-wrap: 0.1.0 + dev: true - ansi-regex@2.1.1: {} + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true - ansi-regex@4.1.1: {} + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - ansi-styles@2.2.1: {} + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-wrap@0.1.0: {} + /ansi-wrap@0.1.0: + resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} + engines: {node: '>=0.10.0'} + dev: true - any-shell-escape@0.1.1: {} + /any-shell-escape@0.1.1: + resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: true - append-buffer@1.0.2: + /append-buffer@1.0.2: + resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} + engines: {node: '>=0.10.0'} dependencies: buffer-equal: 1.0.1 + dev: true - aproba@2.0.0: {} + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true - are-we-there-yet@3.0.1: + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. dependencies: delegates: 1.0.0 readable-stream: 3.6.2 + dev: true - arg@4.1.3: {} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: true - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true - arr-diff@4.0.0: {} + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true - arr-union@3.1.0: {} + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true - array-each@1.0.1: {} + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true - array-find-index@1.0.2: {} + /array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + dev: true - array-flatten@1.1.1: {} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true - array-slice@1.1.0: {} + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true - assign-symbols@1.0.0: {} + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true - astral-regex@1.0.0: {} + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: true - async-done@2.0.0: + /async-done@2.0.0: + resolution: {integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==} + engines: {node: '>= 10.13.0'} dependencies: end-of-stream: 1.4.4 once: 1.4.0 stream-exhaust: 1.0.2 + dev: true - async-settle@2.0.0: + /async-settle@2.0.0: + resolution: {integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==} + engines: {node: '>= 10.13.0'} dependencies: async-done: 2.0.0 + dev: true - async@0.2.10: {} + /async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + dev: true - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true - atob@2.1.2: {} + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true - b4a@1.6.6: {} + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + dev: true - babel-jest@29.7.0(@babel/core@7.25.2): + /babel-jest@29.7.0(@babel/core@7.25.2): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.25.2 '@jest/transform': 29.7.0 @@ -5766,25 +2349,35 @@ snapshots: slash: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-istanbul@6.1.1: + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.8 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-jest-hoist@29.6.3: + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 + dev: true - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 @@ -5792,28 +2385,42 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + /babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) transitivePeerDependencies: - supports-color + dev: true - babel-preset-current-node-syntax@1.0.1(@babel/core@7.25.2): + /babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) @@ -5822,46 +2429,80 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + dev: true - babel-preset-jest@29.6.3(@babel/core@7.25.2): + /babel-preset-jest@29.6.3(@babel/core@7.25.2): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.25.2 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + dev: true - bach@2.0.1: + /bach@2.0.1: + resolution: {integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==} + engines: {node: '>=10.13.0'} dependencies: async-done: 2.0.0 async-settle: 2.0.0 now-and-later: 3.0.0 + dev: true - backbone@1.5.0: + /backbone@1.6.0: + resolution: {integrity: sha512-13PUjmsgw/49EowNcQvfG4gmczz1ximTMhUktj0Jfrjth0MVaTxehpU+qYYX4MxnuIuhmvBLC6/ayxuAGnOhbA==} dependencies: - underscore: 1.13.6 + underscore: 1.13.7 + dev: true - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - bare-events@2.4.2: + /bare-events@2.5.0: + resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + requiresBuild: true + dev: true optional: true - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true - base64id@2.0.0: {} + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: true - binary-extensions@2.3.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true - binaryextensions@2.3.0: {} + /binaryextensions@2.3.0: + resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} + engines: {node: '>=0.8'} + dev: true - bl@5.1.0: + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} dependencies: buffer: 6.0.3 inherits: 2.0.4 readable-stream: 3.6.2 + dev: true - bluebird@3.7.2: {} + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true - body-parser@1.20.1: + /body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -5871,108 +2512,182 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 + qs: 6.13.0 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true - braces@3.0.2: + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 + dev: true - browserslist@4.23.3: + /browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.19 + caniuse-lite: 1.0.30001663 + electron-to-chromium: 1.5.28 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + dev: true - bs-logger@0.2.6: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 + dev: true - bser@2.1.1: + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true - buffer-equal@1.0.1: {} + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: true - bump-regex@4.1.0: + /bump-regex@4.1.0: + resolution: {integrity: sha512-75Kr/Iw6lqnOKF/7YpE0WyOMBaaSpdrXTquIxR0qbTgZxwJos6563zNSn+w/LPJUoL4DXq20QX9AQy4+UJbyhw==} + engines: {node: '>= 4.0.0'} dependencies: semver: 5.7.2 + dev: true - bytes@3.0.0: {} + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true - call-bind@1.0.5: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - camelcase-keys@2.1.0: + /camelcase-keys@2.1.0: + resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} + engines: {node: '>=0.10.0'} dependencies: camelcase: 2.1.1 map-obj: 1.0.1 + dev: true - camelcase@2.1.1: {} + /camelcase@2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} + engines: {node: '>=0.10.0'} + dev: true - camelcase@3.0.0: {} + /camelcase@3.0.0: + resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} + engines: {node: '>=0.10.0'} + dev: true - camelcase@5.3.1: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true - camelcase@6.3.0: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true - caniuse-lite@1.0.30001660: {} + /caniuse-lite@1.0.30001663: + resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} + dev: true - chalk@1.1.3: + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} dependencies: ansi-styles: 2.2.1 escape-string-regexp: 1.0.5 has-ansi: 2.0.0 strip-ansi: 3.0.1 supports-color: 2.0.0 + dev: true - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - char-regex@1.0.2: {} + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true - chardet@0.7.0: {} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true - charm@1.0.2: + /charm@1.0.2: + resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} dependencies: inherits: 2.0.4 + dev: true - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5980,80 +2695,142 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true - ci-info@3.9.0: {} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true - cjs-module-lexer@1.2.3: {} + /cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + dev: true - cli-cursor@3.1.0: + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 + dev: true - cli-width@3.0.0: {} + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true - cliui@3.2.0: + /cliui@3.2.0: + resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 wrap-ansi: 2.1.0 + dev: true - cliui@7.0.4: + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - clone-buffer@1.0.0: {} + /clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + dev: true - clone-stats@1.0.0: {} + /clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + dev: true - clone@2.1.2: {} + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true - cloneable-readable@1.1.3: + /cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 readable-stream: 2.3.8 + dev: true - co@4.6.0: {} + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true - code-point-at@1.1.0: {} + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: true - collect-v8-coverage@1.0.2: {} + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true - color-support@1.1.3: {} + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true - commander@2.20.3: {} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true - commander@7.2.0: {} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true - compressible@2.0.18: + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 + dev: true - compression@1.7.4: + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -6064,58 +2841,256 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: true - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - console-control-strings@1.1.0: {} + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true - consolidate@0.16.0(lodash@4.17.21)(mustache@4.2.0)(underscore@1.13.6): + /consolidate@0.16.0(mustache@4.2.0): + resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==} + engines: {node: '>= 0.10.0'} + deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog + peerDependencies: + arc-templates: ^0.5.3 + atpl: '>=0.7.6' + babel-core: ^6.26.3 + bracket-template: ^1.1.5 + coffee-script: ^1.12.7 + dot: ^1.1.3 + dust: ^0.3.0 + dustjs-helpers: ^1.7.4 + dustjs-linkedin: ^2.7.5 + eco: ^1.1.0-rc-3 + ect: ^0.5.9 + ejs: ^3.1.5 + haml-coffee: ^1.14.1 + hamlet: ^0.3.3 + hamljs: ^0.6.2 + handlebars: ^4.7.6 + hogan.js: ^3.0.2 + htmling: ^0.0.8 + jade: ^1.11.0 + jazz: ^0.0.18 + jqtpl: ~1.1.0 + just: ^0.1.8 + liquid-node: ^3.0.1 + liquor: ^0.0.5 + lodash: ^4.17.20 + marko: ^3.14.4 + mote: ^0.2.0 + mustache: ^4.0.1 + nunjucks: ^3.2.2 + plates: ~0.4.11 + pug: ^3.0.0 + qejs: ^3.0.5 + ractive: ^1.3.12 + razor-tmpl: ^1.3.1 + react: ^16.13.1 + react-dom: ^16.13.1 + slm: ^2.0.0 + squirrelly: ^5.1.0 + swig: ^1.4.2 + swig-templates: ^2.0.3 + teacup: ^2.0.0 + templayed: '>=0.2.3' + then-jade: '*' + then-pug: '*' + tinyliquid: ^0.2.34 + toffee: ^0.3.6 + twig: ^1.15.2 + twing: ^5.0.2 + underscore: ^1.11.0 + vash: ^0.13.0 + velocityjs: ^2.0.1 + walrus: ^0.10.1 + whiskers: ^0.4.0 + peerDependenciesMeta: + arc-templates: + optional: true + atpl: + optional: true + babel-core: + optional: true + bracket-template: + optional: true + coffee-script: + optional: true + dot: + optional: true + dust: + optional: true + dustjs-helpers: + optional: true + dustjs-linkedin: + optional: true + eco: + optional: true + ect: + optional: true + ejs: + optional: true + haml-coffee: + optional: true + hamlet: + optional: true + hamljs: + optional: true + handlebars: + optional: true + hogan.js: + optional: true + htmling: + optional: true + jade: + optional: true + jazz: + optional: true + jqtpl: + optional: true + just: + optional: true + liquid-node: + optional: true + liquor: + optional: true + lodash: + optional: true + marko: + optional: true + mote: + optional: true + mustache: + optional: true + nunjucks: + optional: true + plates: + optional: true + pug: + optional: true + qejs: + optional: true + ractive: + optional: true + razor-tmpl: + optional: true + react: + optional: true + react-dom: + optional: true + slm: + optional: true + squirrelly: + optional: true + swig: + optional: true + swig-templates: + optional: true + teacup: + optional: true + templayed: + optional: true + then-jade: + optional: true + then-pug: + optional: true + tinyliquid: + optional: true + toffee: + optional: true + twig: + optional: true + twing: + optional: true + underscore: + optional: true + vash: + optional: true + velocityjs: + optional: true + walrus: + optional: true + whiskers: + optional: true dependencies: bluebird: 3.7.2 - optionalDependencies: - lodash: 4.17.21 mustache: 4.2.0 - underscore: 1.13.6 + dev: true - content-disposition@0.5.4: + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 + dev: true - content-type@1.0.5: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true - convert-source-map@1.9.0: {} + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true - cookie-signature@1.0.6: {} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true - cookie@0.4.2: {} + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: true - cookie@0.5.0: {} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: true - copy-props@4.0.0: + /copy-props@4.0.0: + resolution: {integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==} + engines: {node: '>= 10.13.0'} dependencies: each-props: 3.0.0 is-plain-object: 5.0.0 + dev: true - core-js-compat@3.38.1: + /core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} dependencies: browserslist: 4.23.3 + dev: true - core-util-is@1.0.3: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true - cors@2.8.5: + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 vary: 1.1.2 + dev: true - create-jest@29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)): + /create-jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -6123,274 +3098,498 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - create-require@1.1.1: {} + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true - cross-spawn@6.0.5: + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 path-key: 2.0.1 semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 + dev: true - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true - css@3.0.0: + /css@3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} dependencies: inherits: 2.0.4 source-map: 0.6.1 source-map-resolve: 0.6.0 + dev: true - cssom@0.3.8: {} + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true - cssom@0.5.0: {} + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true - cssstyle@2.3.0: + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} dependencies: cssom: 0.3.8 + dev: true - currently-unhandled@0.4.1: + /currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} dependencies: array-find-index: 1.0.2 + dev: true - d@1.0.2: + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 - type: 2.7.2 + type: 2.7.3 + dev: true - data-urls@3.0.2: + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 + dev: true - dateformat@1.0.12: + /dateformat@1.0.12: + resolution: {integrity: sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg==} + hasBin: true dependencies: get-stdin: 4.0.1 meow: 3.7.0 + dev: true - dateformat@5.0.3: {} + /dateformat@5.0.3: + resolution: {integrity: sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==} + engines: {node: '>=12.20'} + dev: true - debug-fabulous@1.1.0: + /debug-fabulous@1.1.0: + resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} dependencies: debug: 3.2.7 memoizee: 0.4.17 object-assign: 4.1.1 transitivePeerDependencies: - supports-color + dev: true - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 + dev: true - debug@3.2.7: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - debug@4.3.4: + /debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 + dev: true - decamelize@1.2.0: {} + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true - decimal.js@10.4.3: {} + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - decode-uri-component@0.2.2: {} + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true - dedent@1.5.1: {} + /dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - deepmerge@4.3.1: {} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true - define-data-property@1.1.1: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + dev: true - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 + dev: true - delayed-stream@1.0.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true - delegates@1.0.0: {} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true - depd@2.0.0: {} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true - detect-file@1.0.0: {} + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true - detect-newline@2.1.0: {} + /detect-newline@2.1.0: + resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} + engines: {node: '>=0.10.0'} + dev: true - detect-newline@3.1.0: {} + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: {} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true - domexception@4.0.0: + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 + dev: true - duplexify@3.7.1: + /duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 readable-stream: 2.3.8 - stream-shift: 1.0.1 + stream-shift: 1.0.3 + dev: true - each-props@3.0.0: + /each-props@3.0.0: + resolution: {integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==} + engines: {node: '>= 10.13.0'} dependencies: is-plain-object: 5.0.0 object.defaults: 1.1.0 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true - ee-first@1.1.1: {} + /electron-to-chromium@1.5.28: + resolution: {integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==} + dev: true - electron-to-chromium@1.5.19: {} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emittery@0.13.1: {} + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: true - emoji-regex@7.0.3: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true - emoji-regex@8.0.0: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true - encodeurl@1.0.2: {} + /encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + dev: true - end-of-stream@1.4.4: + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 + dev: true - engine.io-parser@5.2.1: {} + /engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + dev: true - engine.io@6.5.4: + /engine.io@6.6.1: + resolution: {integrity: sha512-NEpDCw9hrvBW+hVEOK4T7v0jFJ++KgtPl4jKFwsZVfG1XhS0dCrSb3VMb9gPAd7VAdW52VT1EnaNiU2vM8C0og==} + engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.10.7 + '@types/node': 22.6.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4 - engine.io-parser: 5.2.1 - ws: 8.11.0 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - enquirer@2.4.1: + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + dev: true - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true - es5-ext@0.10.64: + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + requiresBuild: true dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 esniff: 2.0.1 next-tick: 1.1.0 + dev: true - es6-iterator@2.0.3: + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: d: 1.0.2 es5-ext: 0.10.64 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 + dev: true - es6-symbol@3.1.3: + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 ext: 1.7.0 + dev: true - es6-weak-map@2.0.3: + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - - escalade@3.1.1: {} + es6-symbol: 3.1.4 + dev: true - escalade@3.2.0: {} + /escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + dev: true - escape-html@1.0.3: {} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true - escape-string-regexp@1.0.5: {} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true - escape-string-regexp@2.0.0: {} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true - escodegen@2.1.0: + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true - eslint-scope@6.0.0: + /eslint-scope@6.0.0: + resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-utils@1.4.3: + /eslint-utils@1.4.3: + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 + dev: true - eslint-utils@3.0.0(eslint@8.0.1): + /eslint-utils@3.0.0(eslint@8.0.1): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.0.1 eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@1.3.0: {} + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint@6.8.0: + /eslint@6.8.0: + resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + hasBin: true dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 - debug: 4.3.4 + debug: 4.3.7 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 eslint-visitor-keys: 1.3.0 espree: 6.2.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 file-entry-cache: 5.0.1 functional-red-black-tree: 1.0.1 @@ -6419,15 +3618,19 @@ snapshots: v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color + dev: true - eslint@8.0.1: + /eslint@8.0.1: + resolution: {integrity: sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.6.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.7 doctrine: 3.0.0 enquirer: 2.4.1 escape-string-regexp: 4.0.0 @@ -6435,7 +3638,7 @@ snapshots: eslint-utils: 3.0.0(eslint@8.0.1) eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -6452,64 +3655,104 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.5.4 + semver: 7.6.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color + dev: true - esniff@2.0.1: + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} dependencies: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 + dev: true - espree@6.2.1: + /espree@6.2.1: + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} dependencies: acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) eslint-visitor-keys: 1.3.0 + dev: true - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true - esquery@1.5.0: + /esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - estraverse@4.3.0: {} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true - etag@1.8.1: {} + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true - event-emitter@0.3.5: + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 + dev: true - eventemitter3@4.0.7: {} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true - events-to-array@1.1.2: {} + /events-to-array@1.1.2: + resolution: {integrity: sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==} + dev: true - execa@1.0.0: + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} dependencies: cross-spawn: 6.0.5 get-stream: 4.1.0 @@ -6518,8 +3761,11 @@ snapshots: p-finally: 1.0.0 signal-exit: 3.0.7 strip-eof: 1.0.0 + dev: true - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -6530,49 +3776,61 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true - exit@0.1.2: {} + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true - expand-tilde@2.0.2: + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} dependencies: homedir-polyfill: 1.0.3 + dev: true - expect@29.7.0: + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: true - express@4.18.2: + /express@4.21.0: + resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.5.0 + cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -6580,85 +3838,136 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: true - ext@1.7.0: + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - type: 2.7.2 + type: 2.7.3 + dev: true - extend-shallow@3.0.2: + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 + dev: true - extend@3.0.2: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: true - fancy-log@1.3.3: + /fancy-log@1.3.3: + resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} + engines: {node: '>= 0.10'} dependencies: ansi-gray: 0.1.1 color-support: 1.1.3 parse-node-version: 1.0.1 time-stamp: 1.1.0 + dev: true - fancy-log@2.0.0: + /fancy-log@2.0.0: + resolution: {integrity: sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==} + engines: {node: '>=10.13.0'} dependencies: color-support: 1.1.3 + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true - fast-fifo@1.3.2: {} + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: true - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 + dev: true - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fast-levenshtein@3.0.0: + /fast-levenshtein@3.0.0: + resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} dependencies: fastest-levenshtein: 1.0.16 + dev: true - fastest-levenshtein@1.0.16: {} + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true - fastq@1.16.0: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 + dev: true - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true - figures@3.2.0: + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 + dev: true - file-entry-cache@5.0.1: + /file-entry-cache@5.0.1: + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} dependencies: flat-cache: 2.0.1 + dev: true - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true - fill-range@7.0.1: + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - finalhandler@1.2.0: + /finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -6666,105 +3975,181 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - find-up@1.1.2: + /find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} dependencies: path-exists: 2.1.0 pinkie-promise: 2.0.1 + dev: true - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true - findup-sync@5.0.0: + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.5 + micromatch: 4.0.8 resolve-dir: 1.0.1 + dev: true - fined@2.0.0: + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} dependencies: expand-tilde: 2.0.2 is-plain-object: 5.0.0 object.defaults: 1.1.0 object.pick: 1.3.0 parse-filepath: 1.0.2 + dev: true - fireworm@0.7.2: + /fireworm@0.7.2: + resolution: {integrity: sha512-GjebTzq+NKKhfmDxjKq3RXwQcN9xRmZWhnnuC9L+/x5wBQtR0aaQM50HsjrzJ2wc28v1vSdfOpELok0TKR4ddg==} dependencies: async: 0.2.10 is-type: 0.0.1 lodash.debounce: 3.1.1 lodash.flatten: 3.0.2 minimatch: 3.1.2 + dev: true - first-chunk-stream@2.0.0: + /first-chunk-stream@2.0.0: + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} dependencies: readable-stream: 2.3.8 + dev: true - flagged-respawn@2.0.0: {} + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + dev: true - flat-cache@2.0.1: + /flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} dependencies: flatted: 2.0.2 rimraf: 2.6.3 write: 1.0.3 + dev: true - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true - flatted@2.0.2: {} + /flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + dev: true - flatted@3.2.9: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true - flush-write-stream@1.1.1: + /flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: inherits: 2.0.4 readable-stream: 2.3.8 + dev: true - follow-redirects@1.15.4: {} + /follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true - for-in@1.0.2: {} + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true - for-own@1.0.0: + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} dependencies: for-in: 1.0.2 + dev: true - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true - forwarded@0.2.0: {} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true - fresh@0.5.2: {} + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true - fs-mkdirp-stream@1.0.0: + /fs-mkdirp-stream@1.0.0: + resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} + engines: {node: '>= 0.10'} dependencies: graceful-fs: 4.2.11 through2: 2.0.5 + dev: true - fs-mkdirp-stream@2.0.1: + /fs-mkdirp-stream@2.0.1: + resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} + engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 - streamx: 2.20.0 + streamx: 2.20.1 + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - functional-red-black-tree@1.0.1: {} + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true - gauge@4.0.4: + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -6774,42 +4159,75 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 + dev: true - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-intrinsic@1.2.2: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 + dev: true - get-package-type@0.1.0: {} + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true - get-stdin@4.0.1: {} + /get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} + engines: {node: '>=0.10.0'} + dev: true - get-stream@4.1.0: + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} dependencies: - pump: 3.0.0 + pump: 3.0.2 + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true - glob-parent@3.1.0: + /glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} dependencies: is-glob: 3.1.0 path-dirname: 1.0.2 + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true - glob-stream@6.1.0: + /glob-stream@6.1.0: + resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} + engines: {node: '>= 0.10'} dependencies: extend: 3.0.2 glob: 7.2.3 @@ -6821,24 +4239,33 @@ snapshots: remove-trailing-separator: 1.1.0 to-absolute-glob: 2.0.2 unique-stream: 2.3.1 + dev: true - glob-stream@8.0.2: + /glob-stream@8.0.2: + resolution: {integrity: sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==} + engines: {node: '>=10.13.0'} dependencies: '@gulpjs/to-absolute-glob': 4.0.0 anymatch: 3.1.3 - fastq: 1.16.0 + fastq: 1.17.1 glob-parent: 6.0.2 is-glob: 4.0.3 is-negated-glob: 1.0.0 normalize-path: 3.0.0 - streamx: 2.20.0 + streamx: 2.20.1 + dev: true - glob-watcher@6.0.0: + /glob-watcher@6.0.0: + resolution: {integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==} + engines: {node: '>= 10.13.0'} dependencies: async-done: 2.0.0 chokidar: 3.6.0 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -6846,60 +4273,106 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - global-modules@1.0.0: + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} dependencies: global-prefix: 1.0.2 is-windows: 1.0.2 resolve-dir: 1.0.1 + dev: true - global-prefix@1.0.2: + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} dependencies: expand-tilde: 2.0.2 homedir-polyfill: 1.0.3 ini: 1.3.8 is-windows: 1.0.2 which: 1.3.1 + dev: true - globals@11.12.0: {} + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true - globals@12.4.0: + /globals@12.4.0: + resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} + engines: {node: '>=8'} dependencies: type-fest: 0.8.1 + dev: true - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - globalyzer@0.1.0: {} + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 + dev: true - globrex@0.1.2: {} + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true - glogg@2.2.0: + /glogg@2.2.0: + resolution: {integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==} + engines: {node: '>= 10.13.0'} dependencies: sparkles: 2.1.0 + dev: true - google-closure-compiler-java@20240317.0.0: {} + /google-closure-compiler-java@20240317.0.0: + resolution: {integrity: sha512-oWURPChjcCrVfiQOuVtpSoUJVvtOYo41JGEQ2qtArsTGmk/DpWh40vS6hitwKRM/0YzJX/jYUuyt9ibuXXJKmg==} + dev: true - google-closure-compiler-linux@20240317.0.0: + /google-closure-compiler-linux@20240317.0.0: + resolution: {integrity: sha512-dYLtcbbJdbbBS0lTy9SzySdVv/aGkpyTekQiW4ADhT/i1p1b4r0wQTKj6kpVVmFvbZ6t9tW/jbXc9EXXNUahZw==} + cpu: [x32, x64] + os: [linux] + requiresBuild: true + dev: true optional: true - google-closure-compiler-osx@20240317.0.0: + /google-closure-compiler-osx@20240317.0.0: + resolution: {integrity: sha512-0mABwjD4HP11rikFd8JRIb9OgPqn9h3o3wS0otufMfmbwS7zRpnnoJkunifhORl3VoR1gFm6vcTC9YziTEFdOw==} + cpu: [x32, x64, arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - google-closure-compiler-windows@20240317.0.0: + /google-closure-compiler-windows@20240317.0.0: + resolution: {integrity: sha512-fTueVFzNOWURFlXZmrFkAB7yA+jzpA2TeDOYeBEFwVlVGHwi8PV3Q9vCIWlbkE8wLpukKEg5wfRHYrLwVPINCA==} + cpu: [x32, x64] + os: [win32] + requiresBuild: true + dev: true optional: true - google-closure-compiler@20240317.0.0: + /google-closure-compiler@20240317.0.0: + resolution: {integrity: sha512-PlC5aU2vwsypKbxyFNXOW4psDZfhDoOr2dCwuo8VcgQji+HVIgRi2lviO66x2SfTi0ilm3kI6rq/RSdOMFczcQ==} + engines: {node: '>=10'} + hasBin: true dependencies: chalk: 4.1.2 google-closure-compiler-java: 20240317.0.0 @@ -6910,34 +4383,54 @@ snapshots: google-closure-compiler-linux: 20240317.0.0 google-closure-compiler-osx: 20240317.0.0 google-closure-compiler-windows: 20240317.0.0 + dev: true - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 + dev: true - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - growly@1.3.0: {} + /growly@1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true - gulp-babel@8.0.0(@babel/core@7.25.2): + /gulp-babel@8.0.0(@babel/core@7.25.2): + resolution: {integrity: sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==} + engines: {node: '>=6'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.25.2 plugin-error: 1.0.1 replace-ext: 1.0.1 through2: 2.0.5 vinyl-sourcemaps-apply: 0.2.1 + dev: true - gulp-bump@3.2.0: + /gulp-bump@3.2.0: + resolution: {integrity: sha512-j3Yvi0QQZEN1HsXArQCBMdX5jedQZ1Cul3W1VZrvKal/Z4Slb6Z7UQLQyPaLm0heNdJKCjpKHgkYSR8VhfPlTA==} + engines: {node: '>= 0.9.0'} dependencies: bump-regex: 4.1.0 plugin-error: 1.0.1 plugin-log: 0.1.0 semver: 5.7.2 through2: 2.0.5 + dev: true - gulp-cli@3.0.0: + /gulp-cli@3.0.0: + resolution: {integrity: sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: '@gulpjs/messages': 1.1.0 chalk: 4.1.2 @@ -6951,16 +4444,21 @@ snapshots: string-width: 4.2.3 v8flags: 4.0.1 yargs: 16.2.0 + dev: true - gulp-eslint@6.0.0: + /gulp-eslint@6.0.0: + resolution: {integrity: sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig==} dependencies: eslint: 6.8.0 fancy-log: 1.3.3 plugin-error: 1.0.1 transitivePeerDependencies: - supports-color + dev: true - gulp-git@2.11.0: + /gulp-git@2.11.0: + resolution: {integrity: sha512-7YOcwin7sr68weYhBNOtZia3LZOGZWXgGcxxcxCi2hjljTgysOhH9mLTH2hdG5YLcuAFNg7mMbb2xIRfYsaQZw==} + engines: {node: '>= 0.9.0'} dependencies: any-shell-escape: 0.1.1 fancy-log: 1.3.3 @@ -6969,18 +4467,27 @@ snapshots: require-dir: 1.2.0 strip-bom-stream: 3.0.0 vinyl: 2.2.1 + dev: true - gulp-rename@2.0.0: {} + /gulp-rename@2.0.0: + resolution: {integrity: sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==} + engines: {node: '>=4'} + dev: true - gulp-replace@1.1.4: + /gulp-replace@1.1.4: + resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} + engines: {node: '>=10'} dependencies: - '@types/node': 20.10.7 - '@types/vinyl': 2.0.11 + '@types/node': 22.6.1 + '@types/vinyl': 2.0.12 istextorbinary: 3.3.0 replacestream: 4.0.3 yargs-parser: 21.1.1 + dev: true - gulp-sourcemaps@3.0.0: + /gulp-sourcemaps@3.0.0: + resolution: {integrity: sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==} + engines: {node: '>= 6'} dependencies: '@gulp-sourcemaps/identity-map': 2.0.1 '@gulp-sourcemaps/map-sources': 1.0.0 @@ -6995,8 +4502,13 @@ snapshots: through2: 2.0.5 transitivePeerDependencies: - supports-color + dev: true - gulp-typescript@6.0.0-alpha.1(typescript@5.2.2): + /gulp-typescript@6.0.0-alpha.1(typescript@5.2.2): + resolution: {integrity: sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==} + engines: {node: '>= 8'} + peerDependencies: + typescript: '~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev ' dependencies: ansi-colors: 4.1.3 plugin-error: 1.0.1 @@ -7005,129 +4517,222 @@ snapshots: typescript: 5.2.2 vinyl: 2.2.1 vinyl-fs: 3.0.3 + dev: true - gulp@5.0.0: + /gulp@5.0.0: + resolution: {integrity: sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: glob-watcher: 6.0.0 gulp-cli: 3.0.0 undertaker: 2.0.0 vinyl-fs: 4.0.0 + dev: true - gulplog@2.2.0: + /gulplog@2.2.0: + resolution: {integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==} + engines: {node: '>= 10.13.0'} dependencies: glogg: 2.2.0 + dev: true - has-ansi@2.0.0: + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - has-property-descriptors@1.0.1: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + dev: true - has-proto@1.0.1: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true - has-unicode@2.0.1: {} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true - hasown@2.0.0: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true - highcharts@https://codeload.github.com/highcharts/highcharts/tar.gz/60944b0fe2c13c465457dae29beaf68c46aab8e9: {} - - homedir-polyfill@1.0.3: + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} dependencies: parse-passwd: 1.0.0 + dev: true - hosted-git-info@2.8.9: {} + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true - html-encoding-sniffer@3.0.0: + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 + dev: true - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 + dev: true - http-proxy-agent@5.0.0: + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color + dev: true - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.4 + follow-redirects: 1.15.9 requires-port: 1.0.0 transitivePeerDependencies: - debug + dev: true - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color + dev: true - human-signals@2.1.0: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true - husky@8.0.0: {} + /husky@8.0.0: + resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==} + engines: {node: '>=14'} + hasBin: true + dev: true - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true - ignore@4.0.6: {} + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true - ignore@5.3.0: {} + /ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + dev: true - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true - import-local@3.1.0: + /import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + dev: true - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - indent-string@2.1.0: + /indent-string@2.1.0: + resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==} + engines: {node: '>=0.10.0'} dependencies: repeating: 2.0.1 + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true - inquirer@7.3.3: + /inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -7142,166 +4747,294 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 + dev: true - interpret@3.1.1: {} + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true - invert-kv@1.0.0: {} + /invert-kv@1.0.0: + resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} + engines: {node: '>=0.10.0'} + dev: true - ipaddr.js@1.9.1: {} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true - is-absolute@1.0.0: + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} dependencies: is-relative: 1.0.0 is-windows: 1.0.2 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 + dev: true - is-buffer@1.1.6: {} + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true - is-core-module@2.13.1: + /is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 + dev: true - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true - is-extendable@1.0.1: + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} dependencies: is-plain-object: 2.0.4 + dev: true - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true - is-finite@1.1.0: {} + /is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + dev: true - is-fullwidth-code-point@1.0.0: + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 + dev: true - is-fullwidth-code-point@2.0.0: {} + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true - is-generator-fn@2.1.0: {} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true - is-glob@3.1.0: + /is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-negated-glob@1.0.0: {} + /is-negated-glob@1.0.0: + resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} + engines: {node: '>=0.10.0'} + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-plain-object@2.0.4: + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 + dev: true - is-plain-object@5.0.0: {} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-promise@2.2.2: {} + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true - is-relative@1.0.0: + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} dependencies: is-unc-path: 1.0.0 + dev: true - is-stream@1.1.0: {} + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true - is-type@0.0.1: + /is-type@0.0.1: + resolution: {integrity: sha512-YwJh/zBVrcJ90aAnPBM0CbHvm7lG9ao7lIFeqTZ1UQj4iFLpM5CikdaU+dGGesrMJwxLqPGmjjrUrQ6Kn3Zh+w==} dependencies: core-util-is: 1.0.3 + dev: true - is-unc-path@1.0.0: + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} dependencies: unc-path-regex: 0.1.2 + dev: true - is-utf8@0.2.1: {} + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true - is-valid-glob@1.0.0: {} + /is-valid-glob@1.0.0: + resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} + engines: {node: '>=0.10.0'} + dev: true - is-windows@1.0.2: {} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true - isarray@1.0.0: {} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - isobject@3.0.1: {} + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-instrument@5.2.1: + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.23.6 + '@babel/parser': 7.25.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-instrument@6.0.1: + /istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.23.6 + '@babel/parser': 7.25.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@4.0.1: + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.7 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.6: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - istextorbinary@3.3.0: + /istextorbinary@3.3.0: + resolution: {integrity: sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==} + engines: {node: '>=8'} dependencies: binaryextensions: 2.3.0 textextensions: 3.3.0 + dev: true - jest-changed-files@29.7.0: + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 + dev: true - jest-circus@29.7.0: + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.1 + dedent: 1.5.3 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -7311,39 +5044,58 @@ snapshots: jest-util: 29.7.0 p-limit: 3.1.0 pretty-format: 29.7.0 - pure-rand: 6.0.4 + pure-rand: 6.1.0 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-cli@29.7.0(@types/node@20.10.7)(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)): + /jest-cli@29.7.0(@types/node@22.6.1)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + create-jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 - optionalDependencies: - node-notifier: 10.0.1 transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node + dev: true - jest-config@29.7.0(@types/node@20.10.7)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)): + /jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 + '@types/node': 22.6.1 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 ci-info: 3.9.0 @@ -7358,44 +5110,59 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.8 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.10.7 - ts-node: 10.9.1(@types/node@20.10.7)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@22.6.1)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-diff@29.7.0: + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-docblock@29.7.0: + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 + dev: true - jest-each@29.7.0: + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 + dev: true - jest-environment-jsdom@29.7.0: + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -7403,78 +5170,116 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jest-environment-node@29.7.0: + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - jest-get-type@29.6.3: {} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-haste-map@29.7.0: + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.7 + '@types/node': 22.6.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + dev: true - jest-leak-detector@29.7.0: + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-matcher-utils@29.7.0: + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-message-util@29.7.0: + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: true - jest-mock@29.7.0: + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-util: 29.7.0 + dev: true - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: jest-resolve: 29.7.0 + dev: true - jest-regex-util@29.6.3: {} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-resolve-dependencies@29.7.0: + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - jest-resolve@29.7.0: + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -7485,15 +5290,18 @@ snapshots: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 + dev: true - jest-runner@29.7.0: + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -7511,8 +5319,11 @@ snapshots: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color + dev: true - jest-runtime@29.7.0: + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -7521,9 +5332,9 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 chalk: 4.1.2 - cjs-module-lexer: 1.2.3 + cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -7538,18 +5349,21 @@ snapshots: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color + dev: true - jest-snapshot@29.7.0: + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.25.2 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.25.2) - '@babel/types': 7.23.6 + '@babel/generator': 7.25.6 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + '@babel/types': 7.25.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -7560,20 +5374,26 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color + dev: true - jest-util@29.7.0: + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: true - jest-validate@29.7.0: + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -7581,54 +5401,83 @@ snapshots: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 + dev: true - jest-watcher@29.7.0: + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 + dev: true - jest-worker@29.7.0: + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.10.7 + '@types/node': 22.6.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: true - jest@29.7.0(@types/node@20.10.7)(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)): + /jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.7)(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) - optionalDependencies: - node-notifier: 10.0.1 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node + dev: true - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: true - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 + dev: true - jsdom@20.0.3: + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: abab: 2.0.6 - acorn: 8.11.3 + acorn: 8.12.1 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -7641,72 +5490,123 @@ snapshots: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 + nwsapi: 2.2.12 parse5: 7.1.2 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 + tough-cookie: 4.1.4 w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.16.0 + ws: 8.18.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - jsesc@0.5.0: {} + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true - last-run@2.0.0: {} + /last-run@2.0.0: + resolution: {integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==} + engines: {node: '>= 10.13.0'} + dev: true - lazystream@1.0.1: + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} dependencies: readable-stream: 2.3.8 + dev: true - lcid@1.0.0: + /lcid@1.0.0: + resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} + engines: {node: '>=0.10.0'} dependencies: invert-kv: 1.0.0 + dev: true - lead@1.0.0: + /lead@1.0.0: + resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} + engines: {node: '>= 0.10'} dependencies: flush-write-stream: 1.1.1 + dev: true - lead@4.0.0: {} + /lead@4.0.0: + resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} + engines: {node: '>=10.13.0'} + dev: true - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true - levn@0.3.0: + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 + dev: true - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - liftoff@5.0.0: + /liftoff@5.0.0: + resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} + engines: {node: '>=10.13.0'} dependencies: extend: 3.0.2 findup-sync: 5.0.0 @@ -7715,97 +5615,161 @@ snapshots: is-plain-object: 5.0.0 rechoir: 0.8.0 resolve: 1.22.8 + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true - load-json-file@1.1.0: + /load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} + engines: {node: '>=0.10.0'} dependencies: graceful-fs: 4.2.11 parse-json: 2.2.0 pify: 2.3.0 pinkie-promise: 2.0.1 strip-bom: 2.0.0 + dev: true - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true - lodash._baseflatten@3.1.4: + /lodash._baseflatten@3.1.4: + resolution: {integrity: sha512-fESngZd+X4k+GbTxdMutf8ohQa0s3sJEHIcwtu4/LsIQ2JTDzdRxDCMQjW+ezzwRitLmHnacVVmosCbxifefbw==} dependencies: lodash.isarguments: 3.1.0 lodash.isarray: 3.0.4 + dev: true - lodash._getnative@3.9.1: {} + /lodash._getnative@3.9.1: + resolution: {integrity: sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==} + dev: true - lodash._isiterateecall@3.0.9: {} + /lodash._isiterateecall@3.0.9: + resolution: {integrity: sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==} + dev: true - lodash.assign@4.2.0: {} + /lodash.assign@4.2.0: + resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} + dev: true - lodash.assignin@4.2.0: {} + /lodash.assignin@4.2.0: + resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==} + dev: true - lodash.castarray@4.4.0: {} + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: true - lodash.clonedeep@4.5.0: {} + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: true - lodash.debounce@3.1.1: + /lodash.debounce@3.1.1: + resolution: {integrity: sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==} dependencies: lodash._getnative: 3.9.1 + dev: true - lodash.debounce@4.0.8: {} + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true - lodash.find@4.6.0: {} + /lodash.find@4.6.0: + resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} + dev: true - lodash.flatten@3.0.2: + /lodash.flatten@3.0.2: + resolution: {integrity: sha512-jCXLoNcqQRbnT/KWZq2fIREHWeczrzpTR0vsycm96l/pu5hGeAntVBG0t7GuM/2wFqmnZs3d1eGptnAH2E8+xQ==} dependencies: lodash._baseflatten: 3.1.4 lodash._isiterateecall: 3.0.9 + dev: true - lodash.isarguments@3.1.0: {} + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + dev: true - lodash.isarray@3.0.4: {} + /lodash.isarray@3.0.4: + resolution: {integrity: sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==} + dev: true - lodash.memoize@4.1.2: {} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true - lodash.uniqby@4.7.0: {} + /lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + dev: true - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true - loud-rejection@1.6.0: + /loud-rejection@1.6.0: + resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} + engines: {node: '>=0.10.0'} dependencies: currently-unhandled: 0.4.1 signal-exit: 3.0.7 + dev: true - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lru-queue@0.1.0: + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: es5-ext: 0.10.64 + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.3 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true - makeerror@1.0.12: + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: true - map-cache@0.2.2: {} + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true - map-obj@1.0.1: {} + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true - memoizee@0.4.17: + /memoizee@0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7815,8 +5779,11 @@ snapshots: lru-queue: 0.1.0 next-tick: 1.1.0 timers-ext: 0.1.8 + dev: true - meow@3.7.0: + /meow@3.7.0: + resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} + engines: {node: '>=0.10.0'} dependencies: camelcase-keys: 2.1.0 decamelize: 1.2.0 @@ -7828,161 +5795,294 @@ snapshots: read-pkg-up: 1.0.1 redent: 1.0.0 trim-newlines: 1.0.0 + dev: true - merge-descriptors@1.0.1: {} + /merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + dev: true - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true - methods@1.1.2: {} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true - micromatch@4.0.5: + /micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true - mime-db@1.52.0: {} + /mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + dev: true - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true - mime@1.6.0: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true - minipass@2.9.0: + /minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} dependencies: safe-buffer: 5.2.1 yallist: 3.1.1 + dev: true - mkdirp@0.5.6: + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - mkdirp@3.0.1: {} - - ms@2.0.0: {} + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true - ms@2.1.2: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true - mustache@4.2.0: {} + /mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + dev: true - mute-stdout@2.0.0: {} + /mute-stdout@2.0.0: + resolution: {integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==} + engines: {node: '>= 10.13.0'} + dev: true - mute-stream@0.0.8: {} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - negotiator@0.6.3: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true - next-tick@1.1.0: {} + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: true - nice-try@1.0.5: {} + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true - node-int64@0.4.0: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true - node-notifier@10.0.1: + /node-notifier@10.0.1: + resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.5.4 + semver: 7.6.3 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 + dev: true - node-releases@2.0.18: {} + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + dev: true - node-watch@0.7.3: {} + /node-watch@0.7.3: + resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} + engines: {node: '>=6'} + dev: true - normalize-package-data@2.5.0: + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 + dev: true - normalize-path@2.1.1: + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} dependencies: remove-trailing-separator: 1.1.0 + dev: true - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true - now-and-later@2.0.1: + /now-and-later@2.0.1: + resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} + engines: {node: '>= 0.10'} dependencies: once: 1.4.0 + dev: true - now-and-later@3.0.0: + /now-and-later@3.0.0: + resolution: {integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==} + engines: {node: '>= 10.13.0'} dependencies: once: 1.4.0 + dev: true - npm-run-path@2.0.2: + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} dependencies: path-key: 2.0.1 + dev: true - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true - npmlog@6.0.2: + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 + dev: true - number-is-nan@1.0.1: {} + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: true - nwsapi@2.2.7: {} + /nwsapi@2.2.12: + resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true - object-inspect@1.13.1: {} + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true - object.assign@4.1.5: + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true - object.defaults@1.1.0: + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} dependencies: array-each: 1.0.1 array-slice: 1.1.0 for-own: 1.0.0 isobject: 3.0.1 + dev: true - object.pick@1.3.0: + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 + dev: true - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: true - on-headers@1.0.2: {} + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true - optionator@0.8.3: + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -7990,238 +6090,418 @@ snapshots: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.5 + dev: true - optionator@0.9.3: + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true - ordered-read-streams@1.0.1: + /ordered-read-streams@1.0.1: + resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} dependencies: readable-stream: 2.3.8 + dev: true - os-locale@1.4.0: + /os-locale@1.4.0: + resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} + engines: {node: '>=0.10.0'} dependencies: lcid: 1.0.0 + dev: true - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true - p-finally@1.0.0: {} + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parse-filepath@1.0.2: + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} dependencies: is-absolute: 1.0.0 map-cache: 0.2.2 path-root: 0.1.1 + dev: true - parse-json@2.2.0: + /parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} dependencies: error-ex: 1.3.2 + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - parse-node-version@1.0.1: {} + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true - parse-passwd@1.0.0: {} + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 + dev: true - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true - path-dirname@1.0.2: {} + /path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + dev: true - path-exists@2.1.0: + /path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} dependencies: pinkie-promise: 2.0.1 + dev: true - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-key@2.0.1: {} + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true - path-root-regex@0.1.2: {} + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true - path-root@0.1.1: + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} dependencies: path-root-regex: 0.1.2 + dev: true - path-to-regexp@0.1.7: {} + /path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + dev: true - path-type@1.1.0: + /path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} dependencies: graceful-fs: 4.2.11 pify: 2.3.0 pinkie-promise: 2.0.1 + dev: true - path-type@4.0.0: {} - - picocolors@0.2.1: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true - picocolors@1.0.0: {} + /picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + dev: true - picocolors@1.1.0: {} + /picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + dev: true - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true - pinkie-promise@2.0.1: + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 + dev: true - pinkie@2.0.4: {} + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true - pirates@4.0.6: {} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true - pkg-conf@1.1.3: + /pkg-conf@1.1.3: + resolution: {integrity: sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==} + engines: {node: '>=0.10.0'} dependencies: find-up: 1.1.2 load-json-file: 1.1.0 object-assign: 4.1.1 symbol: 0.2.3 + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: true - plugin-error@1.0.1: + /plugin-error@1.0.1: + resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} + engines: {node: '>= 0.10'} dependencies: ansi-colors: 1.1.0 arr-diff: 4.0.0 arr-union: 3.1.0 extend-shallow: 3.0.2 + dev: true - plugin-log@0.1.0: + /plugin-log@0.1.0: + resolution: {integrity: sha512-TzmfWRMEFAnrZbI4GfyXv9Gp5E71eby3gmvnP6LEfmYbVC8FPN2RBRhwxg4sjIg+fy8AJ3mczhLXvk0pzHPeMg==} + engines: {node: '>= 0.9.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: chalk: 1.1.3 dateformat: 1.0.12 + dev: true - postcss@7.0.39: + /postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} dependencies: picocolors: 0.2.1 source-map: 0.6.1 + dev: true - prelude-ls@1.1.2: {} + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: true - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.2.0 + react-is: 18.3.1 + dev: true - printf@0.6.1: {} + /printf@0.6.1: + resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==} + engines: {node: '>= 0.9.0'} + dev: true - process-nextick-args@2.0.1: {} + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true - progress@2.0.3: {} + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + dev: true - proxy-addr@2.0.7: + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 + dev: true - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - pump@2.0.1: + /pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 + dev: true - pump@3.0.0: + /pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 + dev: true - pumpify@1.5.1: + /pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} dependencies: duplexify: 3.7.1 inherits: 2.0.4 pump: 2.0.1 + dev: true - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true - pure-rand@6.0.4: {} + /pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + dev: true - qs@6.11.0: + /qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 + dev: true - querystringify@2.2.0: {} + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true - queue-tick@1.0.1: {} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: true - qunit@2.20.0: + /qunit@2.20.0: + resolution: {integrity: sha512-N8Fp1J55waE+QG1KwX2LOyqulZUToRrrPBqDOfYfuAMkEglFL15uwvmH1P4Tq/omQ/mGbBI8PEB3PhIfvUb+jg==} + engines: {node: '>=10'} + hasBin: true dependencies: commander: 7.2.0 node-watch: 0.7.3 tiny-glob: 0.2.9 + dev: true - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true - raw-body@2.5.1: + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 + dev: true - react-is@18.2.0: {} + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true - read-pkg-up@1.0.1: + /read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} dependencies: find-up: 1.1.2 read-pkg: 1.1.0 + dev: true - read-pkg@1.1.0: + /read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} dependencies: load-json-file: 1.1.0 normalize-package-data: 2.5.0 path-type: 1.1.0 + dev: true - readable-stream@2.3.8: + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -8230,169 +6510,302 @@ snapshots: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 + dev: true - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + dev: true - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: true - rechoir@0.8.0: + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 + dev: true - redent@1.0.0: + /redent@1.0.0: + resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} + engines: {node: '>=0.10.0'} dependencies: indent-string: 2.1.0 strip-indent: 1.0.1 + dev: true - regenerate-unicode-properties@10.1.1: + /regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 + dev: true - regenerate@1.4.2: {} + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true - regenerator-transform@0.15.2: + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.25.6 + dev: true - regexpp@2.0.1: {} + /regexpp@2.0.1: + resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} + engines: {node: '>=6.5.0'} + dev: true - regexpp@3.2.0: {} + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true - regexpu-core@5.3.2: + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 + regenerate-unicode-properties: 10.2.0 regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 + unicode-match-property-value-ecmascript: 2.2.0 + dev: true - regjsparser@0.9.1: + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true dependencies: jsesc: 0.5.0 + dev: true - remove-bom-buffer@3.0.0: + /remove-bom-buffer@3.0.0: + resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} + engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 is-utf8: 0.2.1 + dev: true - remove-bom-stream@1.2.0: + /remove-bom-stream@1.2.0: + resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} + engines: {node: '>= 0.10'} dependencies: remove-bom-buffer: 3.0.0 safe-buffer: 5.2.1 through2: 2.0.5 + dev: true - remove-trailing-separator@1.1.0: {} + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true - repeating@2.0.1: + /repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} dependencies: is-finite: 1.1.0 + dev: true - replace-ext@1.0.1: {} + /replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + dev: true - replace-ext@2.0.0: {} + /replace-ext@2.0.0: + resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} + engines: {node: '>= 10'} + dev: true - replace-homedir@2.0.0: {} + /replace-homedir@2.0.0: + resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} + engines: {node: '>= 10.13.0'} + dev: true - replacestream@4.0.3: + /replacestream@4.0.3: + resolution: {integrity: sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==} dependencies: escape-string-regexp: 1.0.5 object-assign: 4.1.1 readable-stream: 2.3.8 + dev: true - require-dir@1.2.0: {} + /require-dir@1.2.0: + resolution: {integrity: sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==} + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - require-main-filename@1.0.1: {} + /require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + dev: true - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 + dev: true - resolve-dir@1.0.1: + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} dependencies: expand-tilde: 2.0.2 global-modules: 1.0.0 + dev: true - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true - resolve-options@1.1.0: + /resolve-options@1.1.0: + resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} + engines: {node: '>= 0.10'} dependencies: value-or-function: 3.0.0 + dev: true - resolve-options@2.0.0: + /resolve-options@2.0.0: + resolution: {integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==} + engines: {node: '>= 10.13.0'} dependencies: value-or-function: 4.0.0 + dev: true - resolve.exports@2.0.2: {} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: true - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true - rimraf@2.6.3: + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - run-async@2.4.1: {} + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: true - rxjs@6.6.7: + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - semver-greatest-satisfied-range@2.0.0: + /semver-greatest-satisfied-range@2.0.0: + resolution: {integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==} + engines: {node: '>= 10.13.0'} dependencies: sver: 1.8.4 + dev: true - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: true - send@0.18.0: + /send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -8409,275 +6822,459 @@ snapshots: statuses: 2.0.1 transitivePeerDependencies: - supports-color + dev: true - serve-static@1.15.0: + /serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color + dev: true - set-blocking@2.0.0: {} + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true - set-function-length@1.1.1: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + 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.1 + has-property-descriptors: 1.0.2 + dev: true - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true - shebang-command@1.2.0: + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true - shebang-regex@1.0.0: {} + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true - shellwords@0.1.1: {} + /shellwords@0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true - side-channel@1.0.4: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + dev: true - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true - sisteransi@1.0.5: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true - slice-ansi@2.1.0: + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} dependencies: ansi-styles: 3.2.1 astral-regex: 1.0.0 is-fullwidth-code-point: 2.0.0 + dev: true - socket.io-adapter@2.5.2: + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} dependencies: - ws: 8.11.0 + debug: 4.3.7 + ws: 8.17.1 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate + dev: true - socket.io-parser@4.2.4: + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 transitivePeerDependencies: - supports-color + dev: true - socket.io@4.7.3: + /socket.io@4.8.0: + resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==} + engines: {node: '>=10.2.0'} dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.4 - engine.io: 6.5.4 - socket.io-adapter: 2.5.2 + debug: 4.3.7 + engine.io: 6.6.1 + socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - source-map-resolve@0.6.0: + /source-map-resolve@0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated dependencies: atob: 2.1.2 decode-uri-component: 0.2.2 + dev: true - source-map-support@0.5.13: + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map@0.5.7: {} + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true - source-map@0.7.4: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true - sparkles@2.1.0: {} + /sparkles@2.1.0: + resolution: {integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==} + engines: {node: '>= 10.13.0'} + dev: true - spawn-args@0.2.0: {} + /spawn-args@0.2.0: + resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} + dev: true - spdx-correct@3.2.0: + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.20 + dev: true - spdx-exceptions@2.3.0: {} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: true - spdx-expression-parse@3.0.1: + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + dev: true - spdx-license-ids@3.0.16: {} + /spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + dev: true - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: true - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true - stream-composer@1.0.2: + /stream-composer@1.0.2: + resolution: {integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==} dependencies: - streamx: 2.20.0 + streamx: 2.20.1 + dev: true - stream-exhaust@1.0.2: {} + /stream-exhaust@1.0.2: + resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} + dev: true - stream-shift@1.0.1: {} + /stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + dev: true - streamx@2.20.0: + /streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.1 + text-decoder: 1.2.0 optionalDependencies: - bare-events: 2.4.2 + bare-events: 2.5.0 + dev: true - string-length@4.0.2: + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 + dev: true - string-width@1.0.2: + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} dependencies: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 + dev: true - string-width@3.1.0: + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} dependencies: emoji-regex: 7.0.3 is-fullwidth-code-point: 2.0.0 strip-ansi: 5.2.0 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true - string_decoder@1.1.1: + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 + dev: true - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 + dev: true - strip-ansi@3.0.1: + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 + dev: true - strip-ansi@5.2.0: + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} dependencies: ansi-regex: 4.1.1 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true - strip-bom-buf@1.0.0: + /strip-bom-buf@1.0.0: + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} dependencies: is-utf8: 0.2.1 + dev: true - strip-bom-stream@3.0.0: + /strip-bom-stream@3.0.0: + resolution: {integrity: sha512-2di6sulSHfspbuEJHwwF6vzwijA4uaKsKYtviRQsJsOdxxb6yexiDcZFQ5oY10J50YxmCdHn/1sQmxDKbrGOVw==} + engines: {node: '>=4'} dependencies: first-chunk-stream: 2.0.0 strip-bom-buf: 1.0.0 + dev: true - strip-bom-string@1.0.0: {} + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true - strip-bom@2.0.0: + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} dependencies: is-utf8: 0.2.1 + dev: true - strip-bom@4.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true - strip-eof@1.0.0: {} + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true - strip-indent@1.0.1: + /strip-indent@1.0.1: + resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==} + engines: {node: '>=0.10.0'} + hasBin: true dependencies: get-stdin: 4.0.1 + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - styled_string@0.0.1: {} + /styled_string@0.0.1: + resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} + dev: true - supports-color@2.0.0: {} + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: true - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true - sver@1.8.4: + /sver@1.8.4: + resolution: {integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==} optionalDependencies: semver: 6.3.1 + dev: true - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - symbol@0.2.3: {} + /symbol@0.2.3: + resolution: {integrity: sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==} + dev: true - table@5.4.6: + /table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} dependencies: ajv: 6.12.6 lodash: 4.17.21 slice-ansi: 2.1.0 string-width: 3.1.0 + dev: true - tap-parser@7.0.0: + /tap-parser@7.0.0: + resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} + hasBin: true dependencies: events-to-array: 1.1.2 js-yaml: 3.14.1 minipass: 2.9.0 + dev: true - teex@1.0.1: + /teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} dependencies: - streamx: 2.20.0 + streamx: 2.20.1 + dev: true - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - testem@3.11.0(lodash@4.17.21)(underscore@1.13.6): + /testem@3.11.0: + resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==} + engines: {node: '>= 7.*'} + hasBin: true dependencies: '@xmldom/xmldom': 0.8.10 - backbone: 1.5.0 + backbone: 1.6.0 bluebird: 3.7.2 charm: 1.0.2 commander: 2.20.3 compression: 1.7.4 - consolidate: 0.16.0(lodash@4.17.21)(mustache@4.2.0)(underscore@1.13.6) + consolidate: 0.16.0(mustache@4.2.0) execa: 1.0.0 - express: 4.18.2 + express: 4.21.0 fireworm: 0.7.2 glob: 7.2.3 http-proxy: 1.18.1 @@ -8693,7 +7290,7 @@ snapshots: npmlog: 6.0.2 printf: 0.6.1 rimraf: 3.0.2 - socket.io: 4.7.3 + socket.io: 4.8.0 spawn-args: 0.2.0 styled_string: 0.0.1 tap-parser: 7.0.0 @@ -8755,119 +7352,211 @@ snapshots: - velocityjs - walrus - whiskers + dev: true - text-decoder@1.1.1: + /text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} dependencies: b4a: 1.6.6 + dev: true - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - textextensions@3.3.0: {} + /textextensions@3.3.0: + resolution: {integrity: sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==} + engines: {node: '>=8'} + dev: true - through2-filter@3.0.0: + /through2-filter@3.0.0: + resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} dependencies: through2: 2.0.5 xtend: 4.0.2 + dev: true - through2@2.0.5: + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 + dev: true - through2@3.0.2: + /through2@3.0.2: + resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} dependencies: inherits: 2.0.4 readable-stream: 3.6.2 + dev: true - through2@4.0.2: + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 + dev: true - through@2.3.8: {} + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true - time-stamp@1.1.0: {} + /time-stamp@1.1.0: + resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} + engines: {node: '>=0.10.0'} + dev: true - timers-ext@0.1.8: + /timers-ext@0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 + dev: true - tiny-glob@0.2.9: + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: globalyzer: 0.1.0 globrex: 0.1.2 + dev: true - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true - tmpl@1.0.5: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true - to-absolute-glob@2.0.2: + /to-absolute-glob@2.0.2: + resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} + engines: {node: '>=0.10.0'} dependencies: is-absolute: 1.0.0 is-negated-glob: 1.0.0 + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - to-through@2.0.0: + /to-through@2.0.0: + resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} + engines: {node: '>= 0.10'} dependencies: through2: 2.0.5 + dev: true - to-through@3.0.0: + /to-through@3.0.0: + resolution: {integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==} + engines: {node: '>=10.13.0'} dependencies: - streamx: 2.20.0 + streamx: 2.20.1 + dev: true - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true - tough-cookie@4.1.3: + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@3.0.0: + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: punycode: 2.3.1 + dev: true - trim-newlines@1.0.0: {} + /trim-newlines@1.0.0: + resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==} + engines: {node: '>=0.10.0'} + dev: true - ts-api-utils@1.0.3(typescript@5.2.2): + /ts-api-utils@1.3.0(typescript@5.2.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: typescript: 5.2.2 + dev: true - ts-jest@29.1.1(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.10.7)(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)))(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.25.2)(jest@29.7.0)(typescript@5.2.2): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true dependencies: + '@babel/core': 7.25.2 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.10.7)(node-notifier@10.0.1)(ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2)) + jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.5.4 + semver: 7.6.3 typescript: 5.2.2 yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.25.2 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) + dev: true - ts-node@10.9.1(@types/node@20.10.7)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@22.6.1)(typescript@5.2.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.7 - acorn: 8.11.3 - acorn-walk: 8.3.1 + '@types/node': 22.6.1 + acorn: 8.12.1 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -8875,119 +7564,225 @@ snapshots: typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: true - tslib@1.14.1: {} + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true - type-check@0.3.2: + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 + dev: true - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.20.2: {} + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true - type-fest@0.21.3: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true - type-fest@0.8.1: {} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + dev: true - type@2.7.2: {} + /type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + dev: true - typescript@5.2.2: {} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: true - unc-path-regex@0.1.2: {} + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true - underscore@1.13.6: {} + /underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + dev: true - undertaker-registry@2.0.0: {} + /undertaker-registry@2.0.0: + resolution: {integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==} + engines: {node: '>= 10.13.0'} + dev: true - undertaker@2.0.0: + /undertaker@2.0.0: + resolution: {integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==} + engines: {node: '>=10.13.0'} dependencies: bach: 2.0.1 fast-levenshtein: 3.0.0 last-run: 2.0.0 undertaker-registry: 2.0.0 + dev: true - undici-types@5.26.5: {} + /undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + dev: true - unicode-canonical-property-names-ecmascript@2.0.0: {} + /unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + dev: true - unicode-match-property-ecmascript@2.0.0: + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 + dev: true - unicode-match-property-value-ecmascript@2.1.0: {} + /unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} + dev: true - unicode-property-aliases-ecmascript@2.1.0: {} + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true - unique-stream@2.3.1: + /unique-stream@2.3.1: + resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} dependencies: json-stable-stringify-without-jsonify: 1.0.1 through2-filter: 3.0.0 + dev: true - universalify@0.2.0: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true - update-browserslist-db@1.1.0(browserslist@4.23.3): + /update-browserslist-db@1.1.0(browserslist@4.23.3): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.3 escalade: 3.2.0 picocolors: 1.1.0 + dev: true - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 + dev: true - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true - utils-merge@1.0.1: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true - uuid@8.3.2: {} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true - v8-compile-cache-lib@3.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true - v8-compile-cache@2.4.0: {} + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true - v8-to-istanbul@9.2.0: + /v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + dev: true - v8flags@4.0.1: {} + /v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} + engines: {node: '>= 10.13.0'} + dev: true - validate-npm-package-license@3.0.4: + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + dev: true - value-or-function@3.0.0: {} + /value-or-function@3.0.0: + resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} + engines: {node: '>= 0.10'} + dev: true - value-or-function@4.0.0: {} + /value-or-function@4.0.0: + resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==} + engines: {node: '>= 10.13.0'} + dev: true - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true - vinyl-contents@2.0.0: + /vinyl-contents@2.0.0: + resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} + engines: {node: '>=10.13.0'} dependencies: bl: 5.1.0 vinyl: 3.0.0 + dev: true - vinyl-fs@3.0.3: + /vinyl-fs@3.0.3: + resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} + engines: {node: '>= 0.10'} dependencies: fs-mkdirp-stream: 1.0.0 glob-stream: 6.1.0 @@ -9006,8 +7801,11 @@ snapshots: value-or-function: 3.0.0 vinyl: 2.2.1 vinyl-sourcemap: 1.1.0 + dev: true - vinyl-fs@4.0.0: + /vinyl-fs@4.0.0: + resolution: {integrity: sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==} + engines: {node: '>=10.13.0'} dependencies: fs-mkdirp-stream: 2.0.1 glob-stream: 8.0.2 @@ -9018,13 +7816,16 @@ snapshots: normalize-path: 3.0.0 resolve-options: 2.0.0 stream-composer: 1.0.2 - streamx: 2.20.0 + streamx: 2.20.1 to-through: 3.0.0 value-or-function: 4.0.0 vinyl: 3.0.0 vinyl-sourcemap: 2.0.0 + dev: true - vinyl-sourcemap@1.1.0: + /vinyl-sourcemap@1.1.0: + resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} + engines: {node: '>= 0.10'} dependencies: append-buffer: 1.0.2 convert-source-map: 1.9.0 @@ -9033,21 +7834,29 @@ snapshots: now-and-later: 2.0.1 remove-bom-buffer: 3.0.0 vinyl: 2.2.1 + dev: true - vinyl-sourcemap@2.0.0: + /vinyl-sourcemap@2.0.0: + resolution: {integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==} + engines: {node: '>=10.13.0'} dependencies: convert-source-map: 2.0.0 graceful-fs: 4.2.11 now-and-later: 3.0.0 - streamx: 2.20.0 + streamx: 2.20.1 vinyl: 3.0.0 vinyl-contents: 2.0.0 + dev: true - vinyl-sourcemaps-apply@0.2.1: + /vinyl-sourcemaps-apply@0.2.1: + resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} dependencies: source-map: 0.5.7 + dev: true - vinyl@2.2.1: + /vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -9055,122 +7864,223 @@ snapshots: cloneable-readable: 1.1.3 remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 + dev: true - vinyl@3.0.0: + /vinyl@3.0.0: + resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} + engines: {node: '>=10.13.0'} dependencies: clone: 2.1.2 clone-stats: 1.0.0 remove-trailing-separator: 1.1.0 replace-ext: 2.0.0 teex: 1.0.1 + dev: true - w3c-xmlserializer@4.0.0: + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 + dev: true - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: true - webidl-conversions@7.0.0: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - whatwg-encoding@2.0.0: + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-mimetype@3.0.0: {} + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true - whatwg-url@11.0.0: + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 + dev: true - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - wide-align@1.1.5: + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 + dev: true - window-size@0.2.0: {} + /window-size@0.2.0: + resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} + engines: {node: '>= 0.10.0'} + hasBin: true + dev: true - word-wrap@1.2.5: {} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true - wrap-ansi@2.1.0: + /wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - write-file-atomic@4.0.2: + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + dev: true - write@1.0.3: + /write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} dependencies: mkdirp: 0.5.6 + dev: true - ws@8.11.0: {} - - ws@8.16.0: {} + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + 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 + dev: true - xml-name-validator@4.0.0: {} + /ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + 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 + dev: true - xmlchars@2.2.0: {} + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true - xtend@4.0.2: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - y18n@3.2.2: {} + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true - y18n@5.0.8: {} + /y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + dev: true - yallist@3.1.1: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yallist@4.0.0: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true - yargs-parser@2.4.1: + /yargs-parser@2.4.1: + resolution: {integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==} dependencies: camelcase: 3.0.0 lodash.assign: 4.2.0 + dev: true - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs@16.2.0: + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yargs@4.7.0: + /yargs@4.7.0: + resolution: {integrity: sha512-xDPzHvjDQWcYDrVEo+fcRsJiYVR5l1B6BG6gxOBeZWCEGfbtmdY9HlVKp0IvrxiRL3+aZ+K0tOfRLNMZ+N8rzQ==} dependencies: camelcase: 2.1.1 cliui: 3.2.0 @@ -9184,7 +8094,23 @@ snapshots: window-size: 0.2.0 y18n: 3.2.2 yargs-parser: 2.4.1 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true - yn@3.1.1: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true - yocto-queue@0.1.0: {} + github.com/highcharts/highcharts/b8592a5a4cfdce5283b9e867aae11e2fbfbd0bcb: + resolution: {tarball: https://codeload.github.com/highcharts/highcharts/tar.gz/b8592a5a4cfdce5283b9e867aae11e2fbfbd0bcb} + name: highcharts + version: 11.4.8 + engines: {node: '>=14.14.0'} + prepare: true + requiresBuild: true + dev: true diff --git a/samples/custom-module-demo.html b/samples/custom-module-demo.html index e9a4c0c..5bfc947 100644 --- a/samples/custom-module-demo.html +++ b/samples/custom-module-demo.html @@ -5,7 +5,7 @@ Multicolor series - +
    diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index f80cbfa..3cd685c 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -1,6 +1,5 @@ import SeriesRegistry from 'highcharts-github/ts/Core/Series/SeriesRegistry'; import Utilities from 'highcharts-github/ts/Core/Utilities'; -import Series from 'highcharts-github/ts/Core/Series/Series'; import LineSeries from 'highcharts-github/ts/Series/Line/LineSeries'; import type LinePoint from 'highcharts-github/ts/Series/Line/LinePoint'; import type AreaPoint from 'highcharts-github/ts/Series/Area/AreaPoint'; @@ -12,9 +11,6 @@ import type ColorType from 'highcharts-github/ts/Core/Color/ColorType'; import type SVGPath from 'highcharts-github/ts/Core/Renderer/SVG/SVGPath'; import { type StatesOptionsKey } from 'highcharts-github/ts/Core/Series/StatesOptions'; -import type { SeriesTypeOptions } from - 'highcharts-github/ts/Core/Series/SeriesType'; -import type Chart from 'highcharts-github/ts/Core/Chart/Chart'; import { type SeriesColoredPoint, type SeriesColoredSegment, @@ -409,7 +405,11 @@ class ColoredlineSeries extends LineSeries { } } - public setState (state?: (StatesOptionsKey | '')): void { + public setState ( + state?: (StatesOptionsKey | ''), + // Unused inherit argument added to keep the same type as in the Series. + _inherit?: boolean + ): void { const series = this, options = series.options, graphs = series.graphs, @@ -797,11 +797,6 @@ class ColoredareaSeries extends ColoredlineSeries { * */ - public init(chart: Chart, options: DeepPartial): void { - options.threshold = options.threshold || null; - Series.prototype.init.call(this, chart, options); - } - public closeSegment( path: SeriesColoredSegmentPath[], segment: SeriesColoredareaPoint[], From 9f12753f9792e79b524d3ebd53b77cfe0f66fc10 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 25 Sep 2024 09:49:06 +0200 Subject: [PATCH 46/66] Formatted compiled .d.ts file. --- dist/multicolor-series.d.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dist/multicolor-series.d.ts b/dist/multicolor-series.d.ts index 8c731a5..b05f3a1 100644 --- a/dist/multicolor-series.d.ts +++ b/dist/multicolor-series.d.ts @@ -14,12 +14,9 @@ type SeriesColoredSegment = { color: string; points: SeriesColoredPoint[]; }; - type GraphPaths = SeriesColoredGraphPath[] | undefined; - type SeriesColoredSegmentPath = _Highcharts.SVGPathArray | string | number| undefined; - -type SeriesColoredGraphPath = [SeriesColoredSegmentPath[],_Highcharts.ColorType]; +type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], _Highcharts.ColorType]; type SeriesMulticolor = { pointRange?: number | undefined; From 217a3688f42579e58ca5bf94f41453efdcda5d66 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 25 Sep 2024 09:58:43 +0200 Subject: [PATCH 47/66] Formatted compiled .d.ts file v2. --- dist/multicolor-series.d.ts | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/dist/multicolor-series.d.ts b/dist/multicolor-series.d.ts index b05f3a1..decd904 100644 --- a/dist/multicolor-series.d.ts +++ b/dist/multicolor-series.d.ts @@ -14,9 +14,18 @@ type SeriesColoredSegment = { color: string; points: SeriesColoredPoint[]; }; + type GraphPaths = SeriesColoredGraphPath[] | undefined; -type SeriesColoredSegmentPath = _Highcharts.SVGPathArray | string | number| undefined; -type SeriesColoredGraphPath = [SeriesColoredSegmentPath[], _Highcharts.ColorType]; +type SeriesColoredSegmentPath = + | _Highcharts.SVGPathArray + | string + | number + | undefined; + +type SeriesColoredGraphPath = [ + SeriesColoredSegmentPath[], + _Highcharts.ColorType +]; type SeriesMulticolor = { pointRange?: number | undefined; @@ -26,13 +35,20 @@ type SeriesMulticolor = { areaPaths?: SeriesColoredSegmentPath[]; graphs?: _Highcharts.SVGElement[] | []; getPath?: (graphPaths: GraphPaths) => SeriesColoredSegmentPath[]; - getSegmentPath?: (segment: SeriesColoredPoint[]) => SeriesColoredSegmentPath[]; + getSegmentPath?: ( + segment: SeriesColoredPoint[] + ) => SeriesColoredSegmentPath[]; processData?: (force?: boolean) => boolean; - formatTrackerPath?: (trackerPath: SeriesColoredSegmentPath[]) => SeriesColoredSegmentPath[]; + formatTrackerPath?: ( + trackerPath: SeriesColoredSegmentPath[] + ) => SeriesColoredSegmentPath[]; drawTracker?: () => void; getSegments?: () => void; setSeriesGraphPathsAndSinglePoints?: () => SeriesColoredGraphPath[]; - getSegment?: (segment: SeriesColoredGraphPath,colorType: _Highcharts.ColorType) => SVGElement | undefined; + getSegment?: ( + segment: SeriesColoredGraphPath, + colorType: _Highcharts.ColorType + ) => SVGElement | undefined; drawGraph?: () => void; }; @@ -40,9 +56,14 @@ declare module "highcharts" { interface Point { segmentColor?: string; } + interface Series extends SeriesMulticolor {} - interface SeriesMulticolorLineOptions extends _Highcharts.SeriesOptions, SeriesMulticolor {} - interface SeriesMulticolorAreaOptions extends _Highcharts.SeriesOptions, SeriesMulticolor { + + interface SeriesMulticolorLineOptions + extends _Highcharts.SeriesOptions, SeriesMulticolor {} + + interface SeriesMulticolorAreaOptions + extends _Highcharts.SeriesOptions, SeriesMulticolor { closeSegment?: ( path: SeriesColoredSegmentPath[], segment: SeriesColoredPoint[], From a07e219588da8b051f6dab91aa54cf8fb4077495 Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 25 Sep 2024 10:03:16 +0200 Subject: [PATCH 48/66] Removed ds store file. --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index cf0077db883c7408120ca1019d3051023d254f24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}yIJ5dIuiDoF|gi368P`vfcX4Hgs*9JtU2fc$LJv`IE1Ai)Lgz3;#)@O(YB z-;52iy_;)QRUXM6uXnzg@n^5S24Kz~W}ks00Q)SWvjM9Pk@r$s(sMm0)JA`$rQBEQm%C}0 z6@*zIb->KWL@b!iTXvi^$uC4Ib3XDTQMGb#Lm$!-9_b^(33nlG!-!M-U_Gb3^4$?n z`15gnT=RT5!w6T@1!K;_NXnXz_`q?DX}9UhOID&e^!Up-56VF3RTvBGhHrMXUhT}D z>nuR^+OsUHDzG^an`mux&jq;&kOLy0I8MpG;7sgTQvs$=#8|)7g8bAnBhko(p=XaF zPKXnp*&_Qxt5cmANDL$f-WibnA!iX?I^9^UTL&w>0#Ik{R$*Iy5CoGuT{_)Z%{LTd zq0|;?+!e!EIQw&FS32ETZQ(HP@?l(L<8CNMqtkz`<}jtzsZI`qxh6Xh3|4{P?t_O TR Date: Wed, 25 Sep 2024 13:53:19 +0200 Subject: [PATCH 49/66] Rebacked init method to the core code. --- dist/multicolor-series.js | 52 +++++++-------------------------------- ts/MulticolorSeries.ts | 9 +++++++ 2 files changed, 18 insertions(+), 43 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 3ef1764..5c2949b 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -29,17 +29,18 @@ _registerModule( _modules, 'Extensions/MulticolorSeries.js', - [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Series/Line/LineSeries.js']], - (SeriesRegistry,Utilities,LineSeries) => { + [_modules['Core/Series/SeriesRegistry.js'],_modules['Core/Utilities.js'],_modules['Core/Series/Series.js'],_modules['Series/Line/LineSeries.js']], + (SeriesRegistry,Utilities,Series,LineSeries) => { + /** * * Helpers * */ -const { isArray, pick, error } = Utilities; +const { isArray, pick } = Utilities; const containsStringNumberNumberSequence = (sequenceValue) => { let isSequenceFound = false; for (let index = 0; index < sequenceValue.length; index++) { @@ -154,46 +155,6 @@ class ColoredlineSeries extends LineSeries { }); return segmentPath; } - processData(force) { - const series = this, processedXData = series.xData, // Copied during slice operation below - processedYData = series.yData, cropStart = 0, xAxis = series.xAxis, options = series.options, isCartesian = series.isCartesian; - let cropped, distance, closestPointRange; - // If the series data or axes haven't changed, don't go through this. Return false to pass - // the message on to override methods like in data grouping. - if (isCartesian && - !series.isDirty && - !xAxis.isDirty && - !series.yAxis.isDirty && - !force) { - return false; - } - if (processedXData && processedYData) { - // Find the closest distance between processed points - for (let index = processedXData.length - 1; index >= 0; index--) { - distance = processedXData[index] - processedXData[index - 1]; - if (distance > 0 && - (typeof closestPointRange === 'undefined' || - distance < closestPointRange)) { - closestPointRange = distance; - // Unsorted data is not supported by the line tooltip, as well as data grouping and - // navigation in Stock charts (#725) and width calculation of columns (#1900) - } - else if (distance < 0 && series.requireSorting) { - error(15); - } - } - // Record the properties - series.cropped = cropped; // Type: undefined or true - series.cropStart = cropStart; - series.processedXData = processedXData; - series.processedYData = processedYData; - if (options.pointRange === null) { // Type: null means auto, as for columns, candlesticks and OHLC - series.pointRange = closestPointRange || 1; - } - series.closestPointRange = closestPointRange; - } - return true; - } formatTrackerPath(trackerPath) { var _a, _b, _c, _d; const series = this, options = series.options, trackerPathLength = trackerPath.length, singlePoints = series.singlePoints, snap = (_b = (_a = series.chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0; @@ -280,6 +241,7 @@ class ColoredlineSeries extends LineSeries { } setState(state, // Unused inherit argument added to keep the same type as in the Series. + // eslint-disable-next-line @typescript-eslint/no-unused-vars _inherit) { var _a, _b, _c, _d; const series = this, options = series.options, graphs = series.graphs, stateOptions = options.states; @@ -517,6 +479,10 @@ class ColoredareaSeries extends ColoredlineSeries { * Functions * */ + init(chart, options) { + options.threshold = options.threshold || null; + Series.prototype.init.call(this, chart, options); + } closeSegment(path, segment, translatedThreshold) { path.push('L', segment[segment.length - 1].plotX, translatedThreshold, 'L', segment[0].plotX, translatedThreshold); } diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index 58000f6..9c5ff96 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -1,5 +1,6 @@ import SeriesRegistry from 'highcharts-github/ts/Core/Series/SeriesRegistry'; import Utilities from 'highcharts-github/ts/Core/Utilities'; +import Series from 'highcharts-github/ts/Core/Series/Series'; import LineSeries from 'highcharts-github/ts/Series/Line/LineSeries'; import type LinePoint from 'highcharts-github/ts/Series/Line/LinePoint'; import type AreaPoint from 'highcharts-github/ts/Series/Area/AreaPoint'; @@ -11,6 +12,9 @@ import type ColorType from 'highcharts-github/ts/Core/Color/ColorType'; import type SVGPath from 'highcharts-github/ts/Core/Renderer/SVG/SVGPath'; import { type StatesOptionsKey } from 'highcharts-github/ts/Core/Series/StatesOptions'; +import type { SeriesTypeOptions } from + 'highcharts-github/ts/Core/Series/SeriesType'; +import type Chart from 'highcharts-github/ts/Core/Chart/Chart'; import { type SeriesColoredPoint, type SeriesColoredSegment, @@ -737,6 +741,11 @@ class ColoredareaSeries extends ColoredlineSeries { * */ + public init(chart: Chart, options: DeepPartial): void { + options.threshold = options.threshold || null; + Series.prototype.init.call(this, chart, options); + } + public closeSegment( path: SeriesColoredSegmentPath[], segment: SeriesColoredareaPoint[], From fca3af19578b422bdbbdf1e39f653770660175b2 Mon Sep 17 00:00:00 2001 From: jedrzejruta Date: Wed, 25 Sep 2024 18:18:51 +0200 Subject: [PATCH 50/66] Add ugments keyword in class declaration for proper function finding. --- dist/multicolor-series.js | 44 +++------------------------------------ ts/MulticolorSeries.ts | 2 ++ 2 files changed, 5 insertions(+), 41 deletions(-) diff --git a/dist/multicolor-series.js b/dist/multicolor-series.js index 10c1890..8b9f61d 100644 --- a/dist/multicolor-series.js +++ b/dist/multicolor-series.js @@ -40,7 +40,7 @@ * Helpers * */ -const { isArray, pick, error } = Utilities; +const { isArray, pick } = Utilities; const containsStringNumberNumberSequence = (sequenceValue) => { let isSequenceFound = false; for (let index = 0; index < sequenceValue.length; index++) { @@ -69,6 +69,8 @@ const isSVGPathSegment = (value) => containsStringNumberNumberSequence(value); * @class * @name Highcharts.seriesTypes.coloredline * + * @augments Highcharts.seriesTypes.LineSeries + * */ class ColoredlineSeries extends LineSeries { /** @@ -155,46 +157,6 @@ class ColoredlineSeries extends LineSeries { }); return segmentPath; } - processData(force) { - const series = this, processedXData = series.xData, // Copied during slice operation below - processedYData = series.yData, cropStart = 0, xAxis = series.xAxis, options = series.options, isCartesian = series.isCartesian; - let cropped, distance, closestPointRange; - // If the series data or axes haven't changed, don't go through this. Return false to pass - // the message on to override methods like in data grouping. - if (isCartesian && - !series.isDirty && - !xAxis.isDirty && - !series.yAxis.isDirty && - !force) { - return false; - } - if (processedXData && processedYData) { - // Find the closest distance between processed points - for (let index = processedXData.length - 1; index >= 0; index--) { - distance = processedXData[index] - processedXData[index - 1]; - if (distance > 0 && - (typeof closestPointRange === 'undefined' || - distance < closestPointRange)) { - closestPointRange = distance; - // Unsorted data is not supported by the line tooltip, as well as data grouping and - // navigation in Stock charts (#725) and width calculation of columns (#1900) - } - else if (distance < 0 && series.requireSorting) { - error(15); - } - } - // Record the properties - series.cropped = cropped; // Type: undefined or true - series.cropStart = cropStart; - series.processedXData = processedXData; - series.processedYData = processedYData; - if (options.pointRange === null) { // Type: null means auto, as for columns, candlesticks and OHLC - series.pointRange = closestPointRange || 1; - } - series.closestPointRange = closestPointRange; - } - return true; - } formatTrackerPath(trackerPath) { var _a, _b, _c, _d; const series = this, options = series.options, trackerPathLength = trackerPath.length, singlePoints = series.singlePoints, snap = (_b = (_a = series.chart.options.tooltip) === null || _a === void 0 ? void 0 : _a.snap) !== null && _b !== void 0 ? _b : 0; diff --git a/ts/MulticolorSeries.ts b/ts/MulticolorSeries.ts index d25f9dc..2029c32 100644 --- a/ts/MulticolorSeries.ts +++ b/ts/MulticolorSeries.ts @@ -85,6 +85,8 @@ type SeriesColoredlineSegment = SeriesColoredSegment; * @class * @name Highcharts.seriesTypes.coloredline * + * @augments Highcharts.seriesTypes.LineSeries + * */ class ColoredlineSeries extends LineSeries { From d80d473e50d0ecbbae9a025da22c49dce6516b3c Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Thu, 26 Sep 2024 16:14:50 +0200 Subject: [PATCH 51/66] Refactored series types. --- dist/multicolor-series.d.ts | 87 ++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/dist/multicolor-series.d.ts b/dist/multicolor-series.d.ts index decd904..41f63ea 100644 --- a/dist/multicolor-series.d.ts +++ b/dist/multicolor-series.d.ts @@ -10,11 +10,6 @@ interface SeriesColoredPoint extends Highcharts.Point { segmentColor?: string; } -type SeriesColoredSegment = { - color: string; - points: SeriesColoredPoint[]; -}; - type GraphPaths = SeriesColoredGraphPath[] | undefined; type SeriesColoredSegmentPath = | _Highcharts.SVGPathArray @@ -27,48 +22,60 @@ type SeriesColoredGraphPath = [ _Highcharts.ColorType ]; -type SeriesMulticolor = { - pointRange?: number | undefined; - singlePoints?: SeriesColoredPoint[]; - segments?: SeriesColoredSegment[]; - graphPaths?: GraphPaths; - areaPaths?: SeriesColoredSegmentPath[]; - graphs?: _Highcharts.SVGElement[] | []; - getPath?: (graphPaths: GraphPaths) => SeriesColoredSegmentPath[]; - getSegmentPath?: ( - segment: SeriesColoredPoint[] - ) => SeriesColoredSegmentPath[]; - processData?: (force?: boolean) => boolean; - formatTrackerPath?: ( - trackerPath: SeriesColoredSegmentPath[] - ) => SeriesColoredSegmentPath[]; - drawTracker?: () => void; - getSegments?: () => void; - setSeriesGraphPathsAndSinglePoints?: () => SeriesColoredGraphPath[]; - getSegment?: ( - segment: SeriesColoredGraphPath, - colorType: _Highcharts.ColorType - ) => SVGElement | undefined; - drawGraph?: () => void; -}; - declare module "highcharts" { + interface Series { + pointRange?: number | undefined; + singlePoints?: SeriesColoredPoint[]; + segments?: { + color: string; + points: SeriesColoredPoint[]; + }[]; + graphPaths?: GraphPaths; + areaPaths?: SeriesColoredSegmentPath[]; + graphs?: _Highcharts.SVGElement[] | []; + getPath?: (graphPaths: GraphPaths) => SeriesColoredSegmentPath[]; + getSegmentPath?: ( + segment: SeriesColoredPoint[] + ) => SeriesColoredSegmentPath[]; + processData?: (force?: boolean) => boolean; + formatTrackerPath?: ( + trackerPath: SeriesColoredSegmentPath[] + ) => SeriesColoredSegmentPath[]; + drawTracker?: () => void; + getSegments?: () => void; + setSeriesGraphPathsAndSinglePoints?: () => SeriesColoredGraphPath[]; + getSegment?: ( + segment: SeriesColoredGraphPath, + colorType: _Highcharts.ColorType + ) => SVGElement | undefined; + closeSegment?: ( + path: SeriesColoredSegmentPath[], + segment: SeriesColoredPoint[], + translatedThreshold: number + ) => void; + } + interface Point { segmentColor?: string; } - interface Series extends SeriesMulticolor {} + interface PointOptionsObject { + segmentColor?: string; + } + + interface SeriesMulticolorLineOptions extends PlotLineOptions, SeriesOptions { + type: 'coloredline', + data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>; + } - interface SeriesMulticolorLineOptions - extends _Highcharts.SeriesOptions, SeriesMulticolor {} + interface SeriesMulticolorAreaOptions extends PlotAreaOptions, SeriesOptions { + type: 'coloredarea', + data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>; + } - interface SeriesMulticolorAreaOptions - extends _Highcharts.SeriesOptions, SeriesMulticolor { - closeSegment?: ( - path: SeriesColoredSegmentPath[], - segment: SeriesColoredPoint[], - translatedThreshold: number - ) => void; + interface SeriesOptionsRegistry { + SeriesMulticolorLineOptions: SeriesMulticolorLineOptions; + SeriesMulticolorAreaOptions: SeriesMulticolorAreaOptions; } } From fbbe3960e6e47212e5001dd2e9f8650c1dbece4e Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Tue, 1 Oct 2024 12:58:38 +0200 Subject: [PATCH 52/66] Updated multicolor series d.ts file. --- dist/multicolor-series.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/multicolor-series.d.ts b/dist/multicolor-series.d.ts index 41f63ea..fcf8b31 100644 --- a/dist/multicolor-series.d.ts +++ b/dist/multicolor-series.d.ts @@ -6,7 +6,7 @@ import * as _Highcharts from "highcharts"; -interface SeriesColoredPoint extends Highcharts.Point { +interface SeriesColoredPoint extends _Highcharts.Point { segmentColor?: string; } @@ -63,12 +63,12 @@ declare module "highcharts" { segmentColor?: string; } - interface SeriesMulticolorLineOptions extends PlotLineOptions, SeriesOptions { + interface SeriesMulticolorLineOptions extends _Highcharts.PlotLineOptions, _Highcharts.SeriesOptions { type: 'coloredline', data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>; } - interface SeriesMulticolorAreaOptions extends PlotAreaOptions, SeriesOptions { + interface SeriesMulticolorAreaOptions extends _Highcharts.PlotAreaOptions, _Highcharts.SeriesOptions { type: 'coloredarea', data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>; } From c44feb89e83e4caa7c797157a1d6594d4c5247cd Mon Sep 17 00:00:00 2001 From: KamilKubik Date: Wed, 2 Oct 2024 14:42:37 +0200 Subject: [PATCH 53/66] Formatted index.html file. --- css/styles.css | 7 +- demo.js | 392 +++++++++++++++++++++++++++++++++++++++++++++++++ index.html | 93 +++++++++--- js/demo.js | 290 ------------------------------------ pnpm-lock.yaml | 17 +-- 5 files changed, 471 insertions(+), 328 deletions(-) create mode 100644 demo.js delete mode 100644 js/demo.js diff --git a/css/styles.css b/css/styles.css index 8d23a45..e267e7e 100644 --- a/css/styles.css +++ b/css/styles.css @@ -59,9 +59,9 @@ header .chart { } header h1 { - font-size: 40px; - line-height: 56px; - font-weight: 300; + font-size: 42px; + line-height: 48px; + font-weight: 500; } header p { @@ -130,6 +130,7 @@ ul { code { border-radius: 4px; + line-height: 18px; } pre { diff --git a/demo.js b/demo.js new file mode 100644 index 0000000..507757a --- /dev/null +++ b/demo.js @@ -0,0 +1,392 @@ +Highcharts.chart("showcase-demo", { + chart: { + spacing: [30, 30, 20, 30], + }, + title: { + text: "Multicolor Series", + }, + subtitle: { + useHTML: true, + align: "right", + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + `, + }, + credits: { + position: { + x: -35, + y: -30, + }, + }, + plotOptions: { + series: { + marker: { + enabled: false, + }, + }, + }, + yAxis: [ + { + title: { + text: "", + }, + labels: { + enabled: false, + }, + height: "50%", + top: "0%", + }, + { + title: { + text: "", + }, + labels: { + enabled: false, + }, + height: "50%", + top: "50%", + }, + ], + series: [ + { + type: "coloredline", + name: "Line series", + data: [ + { + y: 20, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#2D2357"], + [1, "#3C346C"], + ], + }, + }, + { + y: 30, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#3C346C"], + [1, "#521B65"], + ], + }, + }, + { + y: 50, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#521B65"], + [1, "#721F87"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#721F87"], + [1, "#AE1785"], + ], + }, + }, + { + y: 30, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#AE1785"], + [1, "#962A6F"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#962A6F"], + [1, "#0F0B22"], + ], + }, + }, + { + y: 50, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#0F0B22"], + [1, "#1B1534"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#1B1534"], + [1, "#2D2357"], + ], + }, + }, + ], + }, + { + type: "coloredarea", + name: "Area series", + data: [ + { + y: 20, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#2D2357"], + [1, "#3C346C"], + ], + }, + }, + { + y: 30, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#3C346C"], + [1, "#521B65"], + ], + }, + }, + { + y: 50, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#521B65"], + [1, "#721F87"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#721F87"], + [1, "#AE1785"], + ], + }, + }, + { + y: 30, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#AE1785"], + [1, "#962A6F"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#962A6F"], + [1, "#0F0B22"], + ], + }, + }, + { + y: 50, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#0F0B22"], + [1, "#1B1534"], + ], + }, + }, + { + y: 40, + segmentColor: { + linearGradient: { x1: 0, x2: 1, y1: 0, y2: 0 }, + stops: [ + [0, "#1B1534"], + [1, "#2D2357"], + ], + }, + }, + ], + yAxis: 1, + }, + ], +}); + +Highcharts.chart("coloredline", { + title: { + text: "Colored line series", + }, + subtitle: { + useHTML: true, + align: "right", + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + `, + }, + plotOptions: { + series: { + marker: { + enabled: false, + }, + }, + }, + series: [ + { + type: "coloredline", + name: "Line series", + data: [ + { + y: 12, + segmentColor: "#2caffe" + }, + { + y: 15, + segmentColor: "#544fc5" + }, + { + y: 18, + segmentColor: "#00e272" + }, + { + y: 23, + segmentColor: "#fe6a35" + }, + { + y: 29, + segmentColor: "#6b8abc" + }, + { + y: 24, + segmentColor: "#d568fb" + }, + { + y: 11, + segmentColor: "#2ee0ca" + }, + { + y: 8, + segmentColor: "#fa4b42" + }, + { + y: 9, + segmentColor: "#feb56a" + }, + ], + }, + ], +}); + +Highcharts.chart("coloredarea", { + title: { + text: "Colored area series", + }, + subtitle: { + useHTML: true, + align: "right", + floating: true, + x: 5, + y: 5, + text: ` + + BlackLabel + + `, + }, + plotOptions: { + series: { + marker: { + enabled: false, + }, + }, + }, + series: [ + { + type: "coloredarea", + name: "Area series", + data: [ + { + y: 10, + segmentColor: "#2caffe" + }, + { + y: 13, + segmentColor: "#544fc5" + }, + { + y: 19, + segmentColor: "#00e272" + }, + { + y: 22, + segmentColor: "#fe6a35" + }, + { + y: 20, + segmentColor: "#6b8abc" + }, + { + y: 18, + segmentColor: "#d568fb" + }, + { + y: 17, + segmentColor: "#2ee0ca" + }, + { + y: 14, + segmentColor: "#fa4b42" + }, + { + y: 15, + segmentColor: "#feb56a" + }, + ], + }, + ], +}); diff --git a/index.html b/index.html index 2c8d2e3..d384352 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ + href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css"> - + @@ -57,9 +57,7 @@ alt="Black Label">

    Multicolor Series Highcharts Module

    -

    Highcharts plugin that adds a new multicolor series, where you can define color for each part of a path, - between - two points.

    +

    Typescript-supported Highcharts plugin that adds both line/area multicolor series, where you can define color for each part of a path.

    @@ -99,7 +97,7 @@

    Multicolor Series Highcharts Module

    The latest code is available on GitHub: - + https://github.com/blacklabel/multicolor_series/

    @@ -108,8 +106,8 @@

    Multicolor Series Highcharts Module

    General prerequisites

    This module requires highcharts package with the following versions installed in your project:

      -
    • For version 3.0.0: Highcharts v11.4.8+
    • -
    • For version 2.4.0 - 3.0.0: Highcharts v10.0.0 - v11.4.8
    • +
    • For version 3.0.0: Highcharts v11.3.0+
    • +
    • For version 2.4.0 - 3.0.0: Highcharts v10.0.0 - v11.2.0
    • For version 2.3.0: Highcharts v9.2.0 - v9.3.3
    • For version 2.x.x: Highcharts v4.2.2 - v9.2.0
    • For version 1.x.x: Highcharts v4.0.0 - v4.2.2
    • @@ -137,6 +135,7 @@

      CDN

      Usage

      Basic usage example:

      +

      The Live example is available here.

      Highcharts.chart('container', {
         series: [{
           type: 'coloredline',
      @@ -159,13 +158,64 @@ 

      Basic usage example:

      }] });
      -

      Basic usage example with Typescript:

      -

      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quaerat, nemo veniam. Iste, nesciunt quae? Beatae nam - odio excepturi vero itaque tempora tempore natus minima odit. Beatae nesciunt perspiciatis hic a.

      -

      Multicolor series typing:

      -

      Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ut blanditiis fugit possimus adipisci. Culpa nostrum, - perferendis tempora obcaecati recusandae debitis fugit, provident dolore id repudiandae consequatur ipsam ut - dolorum dolores.

      +

      Basic usage example with Typescript (React):

      +

      The Live example is available here.

      +
      import * as Highcharts from "highcharts";
      +import HighchartsReact from "highcharts-react-official";
      +
      +// Implement the package module.
      +import MulticolorSeries from "highcharts-multicolor-series";
      +MulticolorSeries(Highcharts);
      +
      +// The package allows you to import both `Highcharts.SeriesMulticolorLineOptions` and
      +// `Highcharts.SeriesMulticolorAreaOptions` interfaces, accordingly to the series.
      +// Interfaces extend the default series options.
      +        
      +const App = () => {
      +  // Type the chart options.
      +  const options: Highcharts.Options = {
      +    series: [
      +      {
      +        type: "coloredarea",
      +        data: [
      +          {
      +            y: 40,
      +            segmentColor: "red"
      +          },
      +          {
      +            y: 60,
      +            segmentColor: "blue"
      +          },
      +          {
      +            y: 30,
      +            segmentColor: "yellow"
      +          },
      +          {
      +            y: 10,
      +            segmentColor: "green"
      +          },
      +          {
      +            y: 50,
      +            segmentColor: "brown"
      +          },
      +          {
      +            y: 20,
      +            segmentColor: "pink"
      +          },
      +          {
      +            y: 70,
      +            segmentColor: "orange"
      +          },
      +        ]
      +      }
      +    ]
      +  };
      +
      +  return <HighchartsReact highcharts={Highcharts} options={options} />;
      +};
      +        
      +export default App;
      +      

      Parameters

      @@ -192,7 +242,7 @@

      Parameters

      point.segmentColor String - Yes + No - Controls line/area color between n and n+1 point. @@ -205,10 +255,7 @@

      Demos

      -
      -

      Changelog

      -

      The changelog is available here.

      -
      +

    FAQ

    Lorem ipsum, dolor sit amet consectetur adipisicing elit. Reprehenderit facilis id totam quaerat expedita @@ -228,9 +275,13 @@

    FAQ

    blanditiis cumque architecto delectus temporibus incidunt assumenda! Enim expedita laboriosam repellendus? Eius illo iusto quae corrupti.

    +
    +

    Changelog

    +

    The changelog is available here.

    +

    License

    -

    Link to the license?

    +

    The package is built on top of the Highcharts library which requires a commercial license. Non-commercial use may qualify for a free educational or personal license. Read more about licenses here.