diff --git a/manifest.json b/manifest.json index e0b1b21..a7199b1 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "OpenAPI DevTools", - "version": "1.4.0", + "version": "1.4.1", "devtools_page": "index.html", "permissions": [], "icons": { diff --git a/package-lock.json b/package-lock.json index 10d81cd..4b63173 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,37 +8,29 @@ "name": "openapi-devtools", "version": "1.0.0", "dependencies": { + "@andrew_walsh/openapi-spec-generator": "^1.0.0", "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "cookie": "^0.6.0", "copy-to-clipboard": "^3.3.3", "decode-uri-component": "^0.4.1", - "fast-querystring": "^1.1.2", "framer-motion": "^10.16.4", "fuse.js": "^6.6.2", "genson-js": "^0.0.8", - "json-stable-stringify": "^1.0.2", "lodash": "^4.17.21", "openapi3-ts": "^4.1.2", - "radix3": "^1.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-select": "^5.7.7", "react-virtualized-auto-sizer": "^1.0.20", "react-window": "^1.8.9", "redoc": "^2.1.3", - "store2": "^2.14.2", "truncate-middle": "^1.0.6" }, "devDependencies": { "@crxjs/vite-plugin": "^2.0.0-beta.19", - "@seriousme/openapi-schema-validator": "^2.1.2", "@types/chrome": "^0.0.246", - "@types/cookie": "^0.5.4", - "@types/har-format": "^1.2.15", - "@types/json-stable-stringify": "^1.0.35", "@types/lodash": "^4.14.199", "@types/react": "^18.2.28", "@types/react-dom": "^18.2.13", @@ -48,8 +40,6 @@ "@vitejs/plugin-react": "^4.1.0", "eslint": "^8.51.0", "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", "rimraf": "^5.0.5", "typescript": "^5.2.2", "vite": "^4.4.11", @@ -58,18 +48,16 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -78,10 +66,28 @@ "node": ">=6.0.0" } }, + "node_modules/@andrew_walsh/openapi-spec-generator": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "cookie": "^0.6.0", + "decode-uri-component": "^0.4.1", + "fast-querystring": "^1.1.2", + "genson-js": "^0.0.8", + "json-stable-stringify": "^1.0.2", + "lodash": "^4.17.21", + "openapi3-ts": "^4.1.2", + "radix3": "^1.1.0", + "store2": "^2.14.2" + }, + "engines": { + "node": "^21.2.0", + "npm": "^10.2.3" + } + }, "node_modules/@babel/code-frame": { "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" @@ -92,18 +98,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", @@ -131,24 +135,21 @@ }, "node_modules/@babel/core/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", @@ -161,9 +162,8 @@ }, "node_modules/@babel/generator/node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -173,9 +173,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.9", "@babel/helper-validator-option": "^7.22.15", @@ -189,27 +188,24 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -220,9 +216,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -232,8 +227,7 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -243,9 +237,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -262,18 +255,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -283,9 +274,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -295,34 +285,30 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/traverse": "^7.23.2", @@ -334,8 +320,7 @@ }, "node_modules/@babel/highlight": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -347,9 +332,8 @@ }, "node_modules/@babel/parser": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -359,9 +343,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", - "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -374,9 +357,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", - "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -389,8 +371,7 @@ }, "node_modules/@babel/runtime": { "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -400,9 +381,8 @@ }, "node_modules/@babel/template": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/parser": "^7.22.15", @@ -414,9 +394,8 @@ }, "node_modules/@babel/traverse": { "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.23.0", @@ -435,8 +414,7 @@ }, "node_modules/@babel/types": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20", @@ -448,8 +426,7 @@ }, "node_modules/@chakra-ui/accordion": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz", - "integrity": "sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==", + "license": "MIT", "dependencies": { "@chakra-ui/descendant": "3.1.0", "@chakra-ui/icon": "3.2.0", @@ -467,8 +444,7 @@ }, "node_modules/@chakra-ui/alert": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.1.tgz", - "integrity": "sha512-GduIqqWCkvID8hxRlKw29Jp3w93r/E9S30J2F8By3ODon9Bhk1o/KVolcPiSiQvRwKNBJCd/rBTpPpLkB+s7pw==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0", "@chakra-ui/react-context": "2.1.0", @@ -482,13 +458,11 @@ }, "node_modules/@chakra-ui/anatomy": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.1.tgz", - "integrity": "sha512-bbmyWTGwQo+aHYDMtLIj7k7hcWvwE7GFVDViLFArrrPhfUTDdQTNqhiDp1N7eh2HLyjNhc2MKXV8s2KTQqkmTg==" + "license": "MIT" }, "node_modules/@chakra-ui/avatar": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", - "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "license": "MIT", "dependencies": { "@chakra-ui/image": "2.1.0", "@chakra-ui/react-children-utils": "2.0.6", @@ -502,8 +476,7 @@ }, "node_modules/@chakra-ui/breadcrumb": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", - "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "license": "MIT", "dependencies": { "@chakra-ui/react-children-utils": "2.0.6", "@chakra-ui/react-context": "2.1.0", @@ -516,16 +489,14 @@ }, "node_modules/@chakra-ui/breakpoint-utils": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", - "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5" } }, "node_modules/@chakra-ui/button": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", - "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0", "@chakra-ui/react-use-merge-refs": "2.1.0", @@ -539,8 +510,7 @@ }, "node_modules/@chakra-ui/card": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", - "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5" }, @@ -551,8 +521,7 @@ }, "node_modules/@chakra-ui/checkbox": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.1.tgz", - "integrity": "sha512-e6qL9ntVI/Ui6g0+iljUV2chX86YMsXafldpTHBNYDEoNLjGo1lqLFzq3y6zs3iuB3DHI0X7eAG3REmMVs0A0w==", + "license": "MIT", "dependencies": { "@chakra-ui/form-control": "2.1.1", "@chakra-ui/react-context": "2.1.0", @@ -573,8 +542,7 @@ }, "node_modules/@chakra-ui/clickable": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", - "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-merge-refs": "2.1.0", "@chakra-ui/shared-utils": "2.0.5" @@ -585,8 +553,7 @@ }, "node_modules/@chakra-ui/close-button": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", - "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0" }, @@ -597,8 +564,7 @@ }, "node_modules/@chakra-ui/color-mode": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", - "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-safe-layout-effect": "2.1.0" }, @@ -608,8 +574,7 @@ }, "node_modules/@chakra-ui/control-box": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", - "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "license": "MIT", "peerDependencies": { "@chakra-ui/system": ">=2.0.0", "react": ">=18" @@ -617,8 +582,7 @@ }, "node_modules/@chakra-ui/counter": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", - "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "license": "MIT", "dependencies": { "@chakra-ui/number-utils": "2.0.7", "@chakra-ui/react-use-callback-ref": "2.1.0", @@ -630,8 +594,7 @@ }, "node_modules/@chakra-ui/css-reset": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.3.0.tgz", - "integrity": "sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==", + "license": "MIT", "peerDependencies": { "@emotion/react": ">=10.0.35", "react": ">=18" @@ -639,8 +602,7 @@ }, "node_modules/@chakra-ui/descendant": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", - "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0", "@chakra-ui/react-use-merge-refs": "2.1.0" @@ -651,13 +613,11 @@ }, "node_modules/@chakra-ui/dom-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", - "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + "license": "MIT" }, "node_modules/@chakra-ui/editable": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", - "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0", "@chakra-ui/react-types": "2.0.7", @@ -676,13 +636,11 @@ }, "node_modules/@chakra-ui/event-utils": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", - "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + "license": "MIT" }, "node_modules/@chakra-ui/focus-lock": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", - "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "license": "MIT", "dependencies": { "@chakra-ui/dom-utils": "2.1.0", "react-focus-lock": "^2.9.4" @@ -693,8 +651,7 @@ }, "node_modules/@chakra-ui/form-control": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.1.1.tgz", - "integrity": "sha512-LJPDzA1ITc3lhd/iDiINqGeca5bJD09PZAjePGEmmZyLPZZi8nPh/iii0RMxvKyJArsTBwXymCh+dEqK9aDzGQ==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0", "@chakra-ui/react-context": "2.1.0", @@ -709,8 +666,7 @@ }, "node_modules/@chakra-ui/hooks": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.1.tgz", - "integrity": "sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==", + "license": "MIT", "dependencies": { "@chakra-ui/react-utils": "2.0.12", "@chakra-ui/utils": "2.0.15", @@ -723,8 +679,7 @@ }, "node_modules/@chakra-ui/icon": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", - "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5" }, @@ -735,8 +690,7 @@ }, "node_modules/@chakra-ui/icons": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-2.1.1.tgz", - "integrity": "sha512-3p30hdo4LlRZTT5CwoAJq3G9fHI0wDc0pBaMHj4SUn0yomO+RcDRlzhdXqdr5cVnzax44sqXJVnf3oQG0eI+4g==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0" }, @@ -747,8 +701,7 @@ }, "node_modules/@chakra-ui/image": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", - "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-safe-layout-effect": "2.1.0", "@chakra-ui/shared-utils": "2.0.5" @@ -760,8 +713,7 @@ }, "node_modules/@chakra-ui/input": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.1.tgz", - "integrity": "sha512-RQYzQ/qcak3eCuCfvSqc1kEFx0sCcnIeiSi7i0r70CeBnAUK/CP1/4Uz849FpKz81K4z2SikC9MkHPQd8ZpOwg==", + "license": "MIT", "dependencies": { "@chakra-ui/form-control": "2.1.1", "@chakra-ui/object-utils": "2.1.0", @@ -776,8 +728,7 @@ }, "node_modules/@chakra-ui/layout": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.1.tgz", - "integrity": "sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==", + "license": "MIT", "dependencies": { "@chakra-ui/breakpoint-utils": "2.0.8", "@chakra-ui/icon": "3.2.0", @@ -793,21 +744,18 @@ }, "node_modules/@chakra-ui/lazy-utils": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", - "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + "license": "MIT" }, "node_modules/@chakra-ui/live-region": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", - "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/media-query": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", - "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "license": "MIT", "dependencies": { "@chakra-ui/breakpoint-utils": "2.0.8", "@chakra-ui/react-env": "3.1.0", @@ -820,8 +768,7 @@ }, "node_modules/@chakra-ui/menu": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.1.tgz", - "integrity": "sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==", + "license": "MIT", "dependencies": { "@chakra-ui/clickable": "2.1.0", "@chakra-ui/descendant": "3.1.0", @@ -847,8 +794,7 @@ }, "node_modules/@chakra-ui/modal": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.1.tgz", - "integrity": "sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==", + "license": "MIT", "dependencies": { "@chakra-ui/close-button": "2.1.1", "@chakra-ui/focus-lock": "2.1.0", @@ -870,8 +816,7 @@ }, "node_modules/@chakra-ui/number-input": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.1.tgz", - "integrity": "sha512-B4xwUPyr0NmjGN/dBhOmCD2xjX6OY1pr9GmGH3GQRozMsLAClD3TibwiZetwlyCp02qQqiFwEcZmUxaX88794Q==", + "license": "MIT", "dependencies": { "@chakra-ui/counter": "2.1.0", "@chakra-ui/form-control": "2.1.1", @@ -893,18 +838,15 @@ }, "node_modules/@chakra-ui/number-utils": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", - "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + "license": "MIT" }, "node_modules/@chakra-ui/object-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", - "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + "license": "MIT" }, "node_modules/@chakra-ui/pin-input": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", - "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "license": "MIT", "dependencies": { "@chakra-ui/descendant": "3.1.0", "@chakra-ui/react-children-utils": "2.0.6", @@ -920,8 +862,7 @@ }, "node_modules/@chakra-ui/popover": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.1.tgz", - "integrity": "sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==", + "license": "MIT", "dependencies": { "@chakra-ui/close-button": "2.1.1", "@chakra-ui/lazy-utils": "2.0.5", @@ -943,8 +884,7 @@ }, "node_modules/@chakra-ui/popper": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", - "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-types": "2.0.7", "@chakra-ui/react-use-merge-refs": "2.1.0", @@ -956,8 +896,7 @@ }, "node_modules/@chakra-ui/portal": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", - "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0", "@chakra-ui/react-use-safe-layout-effect": "2.1.0" @@ -969,8 +908,7 @@ }, "node_modules/@chakra-ui/progress": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", - "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0" }, @@ -981,8 +919,7 @@ }, "node_modules/@chakra-ui/provider": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.1.tgz", - "integrity": "sha512-u4g02V9tJ9vVYfkLz5jBn/bKlAyjLdg4Sh3f7uckmYVAZpOL/uUlrStyADrynu3tZhI+BE8XdmXC4zs/SYD7ow==", + "license": "MIT", "dependencies": { "@chakra-ui/css-reset": "2.3.0", "@chakra-ui/portal": "2.1.0", @@ -999,8 +936,7 @@ }, "node_modules/@chakra-ui/radio": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.1.tgz", - "integrity": "sha512-5JXDVvMWsF/Cprh6BKfcTLbLtRcgD6Wl2zwbNU30nmKIE8+WUfqD7JQETV08oWEzhi3Ea4e5EHvyll2sGx8H3w==", + "license": "MIT", "dependencies": { "@chakra-ui/form-control": "2.1.1", "@chakra-ui/react-context": "2.1.0", @@ -1016,8 +952,7 @@ }, "node_modules/@chakra-ui/react": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.1.tgz", - "integrity": "sha512-UL9Rtj4DovP3+oVbI06gsdfyJJb+wmS2RYnGNXjW9tsjCyXxjlBw9TAUj0jyOfWe0+zd/4juL8+J+QCwmdhptg==", + "license": "MIT", "dependencies": { "@chakra-ui/accordion": "2.3.1", "@chakra-ui/alert": "2.2.1", @@ -1083,24 +1018,21 @@ }, "node_modules/@chakra-ui/react-children-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", - "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-context": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", - "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-env": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", - "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-safe-layout-effect": "2.1.0" }, @@ -1110,16 +1042,14 @@ }, "node_modules/@chakra-ui/react-types": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", - "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-animation-state": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", - "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "license": "MIT", "dependencies": { "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.1.0" @@ -1130,16 +1060,14 @@ }, "node_modules/@chakra-ui/react-use-callback-ref": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", - "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-controllable-state": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", - "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1149,8 +1077,7 @@ }, "node_modules/@chakra-ui/react-use-disclosure": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", - "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1160,8 +1087,7 @@ }, "node_modules/@chakra-ui/react-use-event-listener": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", - "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1171,8 +1097,7 @@ }, "node_modules/@chakra-ui/react-use-focus-effect": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", - "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "license": "MIT", "dependencies": { "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/react-use-event-listener": "2.1.0", @@ -1185,8 +1110,7 @@ }, "node_modules/@chakra-ui/react-use-focus-on-pointer-down": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", - "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-event-listener": "2.1.0" }, @@ -1196,8 +1120,7 @@ }, "node_modules/@chakra-ui/react-use-interval": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", - "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1207,24 +1130,21 @@ }, "node_modules/@chakra-ui/react-use-latest-ref": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", - "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-merge-refs": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", - "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-outside-click": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", - "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1234,8 +1154,7 @@ }, "node_modules/@chakra-ui/react-use-pan-event": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", - "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "license": "MIT", "dependencies": { "@chakra-ui/event-utils": "2.0.8", "@chakra-ui/react-use-latest-ref": "2.1.0", @@ -1247,24 +1166,21 @@ }, "node_modules/@chakra-ui/react-use-previous": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", - "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-safe-layout-effect": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", - "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-use-size": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", - "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "license": "MIT", "dependencies": { "@zag-js/element-size": "0.10.5" }, @@ -1274,8 +1190,7 @@ }, "node_modules/@chakra-ui/react-use-timeout": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", - "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "license": "MIT", "dependencies": { "@chakra-ui/react-use-callback-ref": "2.1.0" }, @@ -1285,16 +1200,14 @@ }, "node_modules/@chakra-ui/react-use-update-effect": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", - "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "license": "MIT", "peerDependencies": { "react": ">=18" } }, "node_modules/@chakra-ui/react-utils": { "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", - "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "license": "MIT", "dependencies": { "@chakra-ui/utils": "2.0.15" }, @@ -1304,8 +1217,7 @@ }, "node_modules/@chakra-ui/select": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.1.tgz", - "integrity": "sha512-CERDATncv5w05Zo5/LrFtf1yKp1deyMUyDGv6eZvQG/etyukH4TstsuIHt/0GfNXrCF3CJLZ8lINzpv5wayVjQ==", + "license": "MIT", "dependencies": { "@chakra-ui/form-control": "2.1.1", "@chakra-ui/shared-utils": "2.0.5" @@ -1317,13 +1229,11 @@ }, "node_modules/@chakra-ui/shared-utils": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", - "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + "license": "MIT" }, "node_modules/@chakra-ui/skeleton": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", - "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "license": "MIT", "dependencies": { "@chakra-ui/media-query": "3.3.0", "@chakra-ui/react-use-previous": "2.1.0", @@ -1336,8 +1246,7 @@ }, "node_modules/@chakra-ui/skip-nav": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", - "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "license": "MIT", "peerDependencies": { "@chakra-ui/system": ">=2.0.0", "react": ">=18" @@ -1345,8 +1254,7 @@ }, "node_modules/@chakra-ui/slider": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", - "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "license": "MIT", "dependencies": { "@chakra-ui/number-utils": "2.0.7", "@chakra-ui/react-context": "2.1.0", @@ -1366,8 +1274,7 @@ }, "node_modules/@chakra-ui/spinner": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", - "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5" }, @@ -1378,8 +1285,7 @@ }, "node_modules/@chakra-ui/stat": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.1.tgz", - "integrity": "sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0", "@chakra-ui/react-context": "2.1.0", @@ -1392,8 +1298,7 @@ }, "node_modules/@chakra-ui/stepper": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.1.tgz", - "integrity": "sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0", "@chakra-ui/react-context": "2.1.0", @@ -1406,8 +1311,7 @@ }, "node_modules/@chakra-ui/styled-system": { "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.1.tgz", - "integrity": "sha512-jhYKBLxwOPi9/bQt9kqV3ELa/4CjmNNruTyXlPp5M0v0+pDMUngPp48mVLoskm9RKZGE0h1qpvj/jZ3K7c7t8w==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5", "csstype": "^3.0.11", @@ -1416,8 +1320,7 @@ }, "node_modules/@chakra-ui/switch": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.1.tgz", - "integrity": "sha512-cOHIhW5AlLZSFENxFEBYTBniqiduOowa1WdzslP1Fd0usBFaD5iAgOY1Fvr7xKhE8nmzzeMCkPB3XBvUSWnawQ==", + "license": "MIT", "dependencies": { "@chakra-ui/checkbox": "2.3.1", "@chakra-ui/shared-utils": "2.0.5" @@ -1430,8 +1333,7 @@ }, "node_modules/@chakra-ui/system": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.1.tgz", - "integrity": "sha512-P5Q/XRWy3f1pXJ7IxDkV+Z6AT7GJeR2JlBnQl109xewVQcBLWWMIp702fFMFw8KZ2ALB/aYKtWm5EmQMddC/tg==", + "license": "MIT", "dependencies": { "@chakra-ui/color-mode": "2.2.0", "@chakra-ui/object-utils": "2.1.0", @@ -1449,8 +1351,7 @@ }, "node_modules/@chakra-ui/table": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", - "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "license": "MIT", "dependencies": { "@chakra-ui/react-context": "2.1.0", "@chakra-ui/shared-utils": "2.0.5" @@ -1462,8 +1363,7 @@ }, "node_modules/@chakra-ui/tabs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-3.0.0.tgz", - "integrity": "sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==", + "license": "MIT", "dependencies": { "@chakra-ui/clickable": "2.1.0", "@chakra-ui/descendant": "3.1.0", @@ -1482,8 +1382,7 @@ }, "node_modules/@chakra-ui/tag": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.1.tgz", - "integrity": "sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==", + "license": "MIT", "dependencies": { "@chakra-ui/icon": "3.2.0", "@chakra-ui/react-context": "2.1.0" @@ -1495,8 +1394,7 @@ }, "node_modules/@chakra-ui/textarea": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.1.tgz", - "integrity": "sha512-28bpwgmXg3BzSpg8i1Ao9h7pHaE1j2mBBFJpWaqPgMhS0IHm0BQsqqyWU6PsxxJDvrC4HN6MTzrIL4C1RA1I0A==", + "license": "MIT", "dependencies": { "@chakra-ui/form-control": "2.1.1", "@chakra-ui/shared-utils": "2.0.5" @@ -1508,8 +1406,7 @@ }, "node_modules/@chakra-ui/theme": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.0.tgz", - "integrity": "sha512-VHY2ax5Wqgfm83U/zYBk0GS0TGD8m41s/rxQgnEq8tU+ug1YZjvOZmtOq/VjfKP/bQraFhCt05zchcxXmDpEYg==", + "license": "MIT", "dependencies": { "@chakra-ui/anatomy": "2.2.1", "@chakra-ui/shared-utils": "2.0.5", @@ -1521,8 +1418,7 @@ }, "node_modules/@chakra-ui/theme-tools": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.1.tgz", - "integrity": "sha512-n14L5L3ej3Zy+Xm/kDKO1G6/DkmieT7Li1C7NzMRcUj5C9YybQpyo7IZZ0BBUh3u+OVnKVhNC3d4P2NYDGRXmA==", + "license": "MIT", "dependencies": { "@chakra-ui/anatomy": "2.2.1", "@chakra-ui/shared-utils": "2.0.5", @@ -1534,8 +1430,7 @@ }, "node_modules/@chakra-ui/theme-utils": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.20.tgz", - "integrity": "sha512-IkAzSmwBlRIZ3dN2InDz0tf9SldbckVkgwylCobSFmYP8lnMjykL8Lex1BBo9U8UQjZxEDVZ+Qw6SeayKRntOQ==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5", "@chakra-ui/styled-system": "2.9.1", @@ -1545,8 +1440,7 @@ }, "node_modules/@chakra-ui/toast": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.1.tgz", - "integrity": "sha512-V5JUhw6RZxbGRTijvd5k4iEMLCfbzTLNWbZLZhRZk10YvFfAP5OYfRCm68zpE/t3orN/f+4ZLL3P+Wb4E7oSmw==", + "license": "MIT", "dependencies": { "@chakra-ui/alert": "2.2.1", "@chakra-ui/close-button": "2.1.1", @@ -1567,8 +1461,7 @@ }, "node_modules/@chakra-ui/tooltip": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.0.tgz", - "integrity": "sha512-2s23f93YIij1qEDwIK//KtEu4LLYOslhR1cUhDBk/WUzyFR3Ez0Ee+HlqlGEGfGe9x77E6/UXPnSAKKdF/cpsg==", + "license": "MIT", "dependencies": { "@chakra-ui/dom-utils": "2.1.0", "@chakra-ui/popper": "3.1.0", @@ -1588,8 +1481,7 @@ }, "node_modules/@chakra-ui/transition": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", - "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", + "license": "MIT", "dependencies": { "@chakra-ui/shared-utils": "2.0.5" }, @@ -1600,8 +1492,7 @@ }, "node_modules/@chakra-ui/utils": { "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", - "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", + "license": "MIT", "dependencies": { "@types/lodash.mergewith": "4.6.7", "css-box-model": "1.2.1", @@ -1611,8 +1502,7 @@ }, "node_modules/@chakra-ui/visually-hidden": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz", - "integrity": "sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==", + "license": "MIT", "peerDependencies": { "@chakra-ui/system": ">=2.0.0", "react": ">=18" @@ -1620,9 +1510,8 @@ }, "node_modules/@crxjs/vite-plugin": { "version": "2.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@crxjs/vite-plugin/-/vite-plugin-2.0.0-beta.19.tgz", - "integrity": "sha512-MHJgSwRktpb436ANPoR67cosjCZ6cpq472h4ImAs8POVw8NxZyNMTX4ayoRgTzmCNy2Xve3oOYt/pm+GO9+XfQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^4.1.2", "@webcomponents/custom-elements": "^1.5.0", @@ -1644,8 +1533,7 @@ }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", @@ -1662,8 +1550,7 @@ }, "node_modules/@emotion/cache": { "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.8.1", "@emotion/sheet": "^1.2.2", @@ -1674,26 +1561,22 @@ }, "node_modules/@emotion/hash": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", - "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.8.1" } }, "node_modules/@emotion/memoize": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "license": "MIT" }, "node_modules/@emotion/react": { "version": "11.11.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", - "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -1715,8 +1598,7 @@ }, "node_modules/@emotion/serialize": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", - "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", @@ -1727,13 +1609,11 @@ }, "node_modules/@emotion/sheet": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + "license": "MIT" }, "node_modules/@emotion/styled": { "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", - "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -1754,83 +1634,30 @@ }, "node_modules/@emotion/unitless": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + "license": "MIT" }, "node_modules/@emotion/weak-memoize": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1839,299 +1666,10 @@ "node": ">=12" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2144,18 +1682,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2176,9 +1712,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2192,9 +1727,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2207,36 +1741,31 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@exodus/schemasafe": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==" + "license": "MIT" }, "node_modules/@floating-ui/core": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.1.3" } }, "node_modules/@floating-ui/dom": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "license": "MIT", "dependencies": { "@floating-ui/core": "^1.4.2", "@floating-ui/utils": "^0.1.3" @@ -2244,14 +1773,12 @@ }, "node_modules/@floating-ui/utils": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -2263,9 +1790,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2276,9 +1802,8 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -2378,9 +1903,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2390,9 +1914,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2404,33 +1927,29 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2438,9 +1957,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2451,18 +1969,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2483,8 +1999,7 @@ }, "node_modules/@popperjs/core": { "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -2492,8 +2007,7 @@ }, "node_modules/@redocly/ajv": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2507,8 +2021,7 @@ }, "node_modules/@redocly/openapi-core": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.2.0.tgz", - "integrity": "sha512-Ccft2n/JiF4u2crmj1cdDzPq6C40U7NgLZ+p/BxzAFXbfrddr/5FN0HMJPHT/op329qqv2P2jUrXsV2Bp+rzEQ==", + "license": "MIT", "dependencies": { "@redocly/ajv": "^8.11.0", "@types/node": "^14.11.8", @@ -2527,16 +2040,14 @@ }, "node_modules/@redocly/openapi-core/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@redocly/openapi-core/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2546,9 +2057,8 @@ }, "node_modules/@rollup/pluginutils": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, + "license": "MIT", "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -2557,32 +2067,15 @@ "node": ">= 8.0.0" } }, - "node_modules/@seriousme/openapi-schema-validator": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@seriousme/openapi-schema-validator/-/openapi-schema-validator-2.1.2.tgz", - "integrity": "sha512-1qQg8gb1rzuw4XFeIgmxW0tpLoz6l6dNoM65e1/kOxat75Vq9vIQYbvYElwOW3k6gYpjFpCABsiXDtgZbluUBw==", - "dev": true, - "dependencies": { - "ajv": "^8.12.0", - "ajv-draft-04": "^1.0.0", - "ajv-formats": "^2.1.1", - "js-yaml": "^4.1.0" - }, - "bin": { - "validate-api": "bin/validate-api-cli.js" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2593,18 +2086,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -2612,108 +2103,82 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/chai": { "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.8.tgz", - "integrity": "sha512-yW/qTM4mRBBcsA9Xw9FbcImYtFPY7sgr+G/O5RDYVmxiy9a+pE5FyoFUi8JYCZY5nicj8atrr1pcfPiYpeNGOA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/chai-subset": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/chrome": { "version": "0.0.246", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.246.tgz", - "integrity": "sha512-MxGxEomGxsJiL9xe/7ZwVgwdn8XVKWbPvxpVQl3nWOjrS0Ce63JsfzxUc4aU3GvRcUPYsfufHmJ17BFyKxeA4g==", "dev": true, + "license": "MIT", "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" } }, - "node_modules/@types/cookie": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz", - "integrity": "sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==", - "dev": true - }, "node_modules/@types/filesystem": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.33.tgz", - "integrity": "sha512-2KedRPzwu2K528vFkoXnnWdsG0MtUwPjuA7pRy4vKxlxHEe8qUDZibYHXJKZZr2Cl/ELdCWYqyb/MKwsUuzBWw==", "dev": true, + "license": "MIT", "dependencies": { "@types/filewriter": "*" } }, "node_modules/@types/filewriter": { "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.30.tgz", - "integrity": "sha512-lB98tui0uxc7erbj0serZfJlHKLNJHwBltPnbmO1WRpL5T325GOHRiQfr2E29V2q+S1brDO63Fpdt6vb3bES9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/har-format": { "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz", - "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - }, - "node_modules/@types/json-stable-stringify": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.35.tgz", - "integrity": "sha512-zlCWqsRBI0+ANN7dzGeDFJ4CHaVFTLqBNRS11GjR2mHCW6XxNtnMxhQzBKMzfsnjI8oI+kWq2vBwinyQpZVSsg==", - "dev": true + "license": "MIT" }, "node_modules/@types/lodash": { "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + "license": "MIT" }, "node_modules/@types/lodash.mergewith": { "version": "4.6.7", - "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", - "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/node": { "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.8", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", - "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" + "license": "MIT" }, "node_modules/@types/react": { "version": "18.2.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", - "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2722,58 +2187,50 @@ }, "node_modules/@types/react-dom": { "version": "18.2.13", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.13.tgz", - "integrity": "sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-transition-group": { "version": "4.4.7", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.7.tgz", - "integrity": "sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg==", + "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-window": { "version": "1.8.7", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.7.tgz", - "integrity": "sha512-FpPHEhmGVOBKomuR4LD2nvua1Ajcw6PfnfbDysuCwwPae3JNulcq3+uZIpQNbDN2AI1z+Y4tKj2xQ4ELiQ4QDw==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/scheduler": { "version": "0.16.4", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", - "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/stylis": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.1.tgz", - "integrity": "sha512-OSaMrXUKxVigGlKRrET39V2xdhzlztQ9Aqumn1WbCBKHOi9ry7jKSd7rkyj0GzmWaU960Rd+LpOFpLfx5bMQAg==", + "license": "MIT", "peer": true }, "node_modules/@types/truncate-middle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/truncate-middle/-/truncate-middle-1.0.3.tgz", - "integrity": "sha512-va2ApH8QJ8ty/j8WJR3KzHwI+NLmLCvYgUmwApXVXioD9zpAaSmTDaVfiYyCZmY3sjQpPmo/8nqpdOz0F3nOrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz", - "integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.8.0", @@ -2806,9 +2263,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz", - "integrity": "sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "6.8.0", @@ -2835,9 +2291,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz", - "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.8.0", "@typescript-eslint/visitor-keys": "6.8.0" @@ -2852,9 +2307,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz", - "integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.8.0", "@typescript-eslint/utils": "6.8.0", @@ -2879,9 +2333,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz", - "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -2892,9 +2345,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz", - "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.8.0", "@typescript-eslint/visitor-keys": "6.8.0", @@ -2919,9 +2371,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz", - "integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -2944,9 +2395,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz", - "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.8.0", "eslint-visitor-keys": "^3.4.1" @@ -2961,9 +2411,8 @@ }, "node_modules/@vitejs/plugin-react": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz", - "integrity": "sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.22.20", "@babel/plugin-transform-react-jsx-self": "^7.22.5", @@ -2980,18 +2429,16 @@ }, "node_modules/@vitejs/plugin-react/node_modules/react-refresh": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@vitest/expect": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", - "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "0.34.6", "@vitest/utils": "0.34.6", @@ -3003,9 +2450,8 @@ }, "node_modules/@vitest/runner": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", - "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "0.34.6", "p-limit": "^4.0.0", @@ -3017,9 +2463,8 @@ }, "node_modules/@vitest/runner/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -3032,9 +2477,8 @@ }, "node_modules/@vitest/runner/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -3044,9 +2488,8 @@ }, "node_modules/@vitest/snapshot": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", - "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", "dev": true, + "license": "MIT", "dependencies": { "magic-string": "^0.30.1", "pathe": "^1.1.1", @@ -3058,9 +2501,8 @@ }, "node_modules/@vitest/snapshot/node_modules/magic-string": { "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -3070,9 +2512,8 @@ }, "node_modules/@vitest/spy": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", - "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^2.1.1" }, @@ -3082,9 +2523,8 @@ }, "node_modules/@vitest/utils": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", - "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", "dev": true, + "license": "MIT", "dependencies": { "diff-sequences": "^29.4.3", "loupe": "^2.3.6", @@ -3096,33 +2536,28 @@ }, "node_modules/@webcomponents/custom-elements": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.6.0.tgz", - "integrity": "sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@zag-js/dom-query": { "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.16.0.tgz", - "integrity": "sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==" + "license": "MIT" }, "node_modules/@zag-js/element-size": { "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", - "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + "license": "MIT" }, "node_modules/@zag-js/focus-visible": { "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.16.0.tgz", - "integrity": "sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==", + "license": "MIT", "dependencies": { "@zag-js/dom-query": "0.16.0" } }, "node_modules/acorn": { "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3132,81 +2567,30 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -3216,13 +2600,11 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "license": "Python-2.0" }, "node_modules/aria-hidden": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -3232,9 +2614,8 @@ }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -3245,9 +2626,8 @@ }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3264,18 +2644,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3291,9 +2669,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3309,9 +2686,8 @@ }, "node_modules/array.prototype.tosorted": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3322,9 +2698,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -3343,27 +2718,24 @@ }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/asynciterator.prototype": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" } }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3373,8 +2745,7 @@ }, "node_modules/babel-plugin-macros": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -3387,20 +2758,17 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3408,9 +2776,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -3420,8 +2787,6 @@ }, "node_modules/browserslist": { "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -3437,6 +2802,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001541", "electron-to-chromium": "^1.4.535", @@ -3452,18 +2818,16 @@ }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -3474,21 +2838,18 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelize": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3496,8 +2857,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001549", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", - "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", "dev": true, "funding": [ { @@ -3512,13 +2871,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chai": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -3534,8 +2893,7 @@ }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3547,17 +2905,15 @@ }, "node_modules/chalk/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -3567,9 +2923,8 @@ }, "node_modules/cheerio": { "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dev": true, + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -3588,9 +2943,8 @@ }, "node_modules/cheerio-select": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -3605,13 +2959,11 @@ }, "node_modules/classnames": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3623,50 +2975,41 @@ }, "node_modules/clsx": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "license": "MIT" }, "node_modules/color2k": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.2.tgz", - "integrity": "sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==" + "license": "MIT" }, "node_modules/colorette": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "license": "MIT" }, "node_modules/compute-scroll-into-view": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", - "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==" + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect-injector": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/connect-injector/-/connect-injector-0.4.4.tgz", - "integrity": "sha512-hdBG8nXop42y2gWCqOV8y1O3uVk4cIU+SoxLCPyCUKRImyPiScoNiSulpHjoktRU1BdI0UzoUdxUa87thrcmHw==", "dev": true, "dependencies": { "debug": "^2.0.0", @@ -3680,45 +3023,39 @@ }, "node_modules/connect-injector/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/connect-injector/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "license": "MIT" }, "node_modules/cookie": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/copy-to-clipboard": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", "dependencies": { "toggle-selection": "^1.0.6" } }, "node_modules/core-js": { "version": "3.33.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.0.tgz", - "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==", "hasInstallScript": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -3727,8 +3064,7 @@ }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -3742,9 +3078,8 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3756,16 +3091,14 @@ }, "node_modules/css-box-model": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "license": "MIT", "dependencies": { "tiny-invariant": "^1.0.6" } }, "node_modules/css-color-keywords": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", "peer": true, "engines": { "node": ">=4" @@ -3773,9 +3106,8 @@ }, "node_modules/css-select": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -3789,8 +3121,7 @@ }, "node_modules/css-to-react-native": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", "peer": true, "dependencies": { "camelize": "^1.0.0", @@ -3800,9 +3131,8 @@ }, "node_modules/css-what": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -3812,14 +3142,12 @@ }, "node_modules/csstype": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -3833,23 +3161,19 @@ } }, "node_modules/decko": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", - "integrity": "sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==" + "version": "1.2.0" }, "node_modules/decode-uri-component": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz", - "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==", + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -3859,15 +3183,13 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -3879,9 +3201,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3896,23 +3217,20 @@ }, "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "license": "MIT" }, "node_modules/diff-sequences": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -3922,9 +3240,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -3934,8 +3251,7 @@ }, "node_modules/dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" @@ -3943,9 +3259,8 @@ }, "node_modules/dom-serializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -3957,21 +3272,19 @@ }, "node_modules/domelementtype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -3984,14 +3297,12 @@ }, "node_modules/dompurify": { "version": "2.4.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", - "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==" + "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/domutils": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -4009,20 +3320,17 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.556", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.556.tgz", - "integrity": "sha512-6RPN0hHfzDU8D56E72YkDvnLw5Cj2NMXZGg3UkgyoHxjVhG99KZpsKgBWMmTy0Ei89xwan+rbRsVB9yzATmYzQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "license": "MIT" }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -4032,17 +3340,15 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -4093,9 +3399,8 @@ }, "node_modules/es-iterator-helpers": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", "dev": true, + "license": "MIT", "dependencies": { "asynciterator.prototype": "^1.0.0", "call-bind": "^1.0.2", @@ -4115,15 +3420,13 @@ }, "node_modules/es-module-lexer": { "version": "0.10.5", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.10.5.tgz", - "integrity": "sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-set-tostringtag": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -4135,18 +3438,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -4161,15 +3462,13 @@ }, "node_modules/es6-promise": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" + "license": "MIT" }, "node_modules/esbuild": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4203,16 +3502,14 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4222,9 +3519,8 @@ }, "node_modules/eslint": { "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4276,9 +3572,8 @@ }, "node_modules/eslint-plugin-react": { "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", @@ -4304,32 +3599,10 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz", - "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==", - "dev": true, - "peerDependencies": { - "eslint": ">=7" - } - }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -4339,9 +3612,8 @@ }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -4356,18 +3628,16 @@ }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4381,9 +3651,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4393,9 +3662,8 @@ }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4409,9 +3677,8 @@ }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4424,9 +3691,8 @@ }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4440,9 +3706,8 @@ }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4452,15 +3717,13 @@ }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eslint/node_modules/globals": { "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -4473,24 +3736,21 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4500,9 +3760,8 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -4517,9 +3776,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -4529,9 +3787,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -4541,48 +3798,41 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "license": "MIT" }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4596,9 +3846,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4608,43 +3857,37 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-querystring": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", - "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "license": "MIT", "dependencies": { "fast-decode-uri-component": "^1.0.1" } }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -4654,9 +3897,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4666,14 +3908,12 @@ }, "node_modules/find-root": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4687,9 +3927,8 @@ }, "node_modules/flat-cache": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -4701,9 +3940,8 @@ }, "node_modules/flat-cache/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4721,9 +3959,8 @@ }, "node_modules/flat-cache/node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -4736,14 +3973,12 @@ }, "node_modules/flatted": { "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/focus-lock": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.0.0.tgz", - "integrity": "sha512-a8Ge6cdKh9za/GZR/qtigTAk7SrGore56EFcoMshClsh7FLk1zwszc/ltuMfKhx56qeuyL/jWQ4J4axou0iJ9w==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" }, @@ -4753,17 +3988,15 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreach": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==" + "license": "MIT" }, "node_modules/foreground-child": { "version": "3.1.1", @@ -4783,8 +4016,7 @@ }, "node_modules/framer-motion": { "version": "10.16.4", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.4.tgz", - "integrity": "sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -4806,8 +4038,7 @@ }, "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "license": "MIT", "optional": true, "dependencies": { "@emotion/memoize": "0.7.4" @@ -4815,28 +4046,24 @@ }, "node_modules/framer-motion/node_modules/@emotion/memoize": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "license": "MIT", "optional": true }, "node_modules/framesync": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", - "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "license": "MIT", "dependencies": { "tslib": "2.4.0" } }, "node_modules/framesync/node_modules/tslib": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "license": "0BSD" }, "node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4848,16 +4075,13 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4868,18 +4092,16 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4895,57 +4117,50 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/fuse.js": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", - "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/genson-js": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/genson-js/-/genson-js-0.0.8.tgz", - "integrity": "sha512-4NUusDTwF+lzYh72uKV+Uvpky9iPO+YDIMpGImA5pbHfLV9HwgRCA4hYjGu78V4J4Cx2IZRTFfRERn9aUs74mw==" + "license": "Apache-2.0" }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -4958,17 +4173,15 @@ }, "node_modules/get-nonce": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -5004,9 +4217,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5040,18 +4252,16 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -5064,9 +4274,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5084,9 +4293,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -5096,46 +4304,40 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -5145,9 +4347,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5157,9 +4358,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5169,9 +4369,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -5184,16 +4383,13 @@ }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, "node_modules/htmlparser2": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -5202,6 +4398,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -5211,22 +4408,19 @@ }, "node_modules/http2-client": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" + "license": "MIT" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5240,18 +4434,16 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5259,15 +4451,13 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -5279,17 +4469,15 @@ }, "node_modules/invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/is-array-buffer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -5301,14 +4489,12 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "license": "MIT" }, "node_modules/is-async-function": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5321,9 +4507,8 @@ }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -5333,9 +4518,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -5349,9 +4533,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5361,8 +4544,7 @@ }, "node_modules/is-core-module": { "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -5372,9 +4554,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5387,18 +4568,16 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -5408,17 +4587,15 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5431,9 +4608,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -5443,18 +4619,16 @@ }, "node_modules/is-map": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5464,18 +4638,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5488,18 +4660,16 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -5513,18 +4683,16 @@ }, "node_modules/is-set": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -5534,9 +4702,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5549,9 +4716,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -5564,9 +4730,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -5579,18 +4744,16 @@ }, "node_modules/is-weakmap": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -5600,9 +4763,8 @@ }, "node_modules/is-weakset": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -5613,21 +4775,18 @@ }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/iterator.prototype": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", @@ -5656,21 +4815,18 @@ }, "node_modules/js-levenshtein": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -5680,9 +4836,8 @@ }, "node_modules/jsesc": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -5692,32 +4847,27 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "license": "MIT" }, "node_modules/json-pointer": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "license": "MIT", "dependencies": { "foreach": "^2.0.4" } }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "license": "MIT" }, "node_modules/json-stable-stringify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "license": "MIT", "dependencies": { "jsonify": "^0.0.1" }, @@ -5727,15 +4877,13 @@ }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -5745,15 +4893,13 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -5763,17 +4909,15 @@ }, "node_modules/jsonify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jsx-ast-utils": { "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -5786,18 +4930,16 @@ }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -5808,14 +4950,12 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "license": "MIT" }, "node_modules/local-pkg": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -5825,9 +4965,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -5840,29 +4979,24 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.mergewith": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -5872,32 +5006,28 @@ }, "node_modules/loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lunr": { "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + "license": "MIT" }, "node_modules/magic-string": { "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" }, @@ -5907,13 +5037,11 @@ }, "node_modules/mark.js": { "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + "license": "MIT" }, "node_modules/marked": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -5923,23 +5051,20 @@ }, "node_modules/memoize-one": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -5950,9 +5075,8 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5971,9 +5095,8 @@ }, "node_modules/mlly": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.10.0", "pathe": "^1.1.1", @@ -5983,8 +5106,7 @@ }, "node_modules/mobx": { "version": "6.10.2", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.10.2.tgz", - "integrity": "sha512-B1UGC3ieK3boCjnMEcZSwxqRDMdzX65H/8zOHbuTY8ZhvrIjTUoLRR2TP2bPqIgYRfb3+dUigu8yMZufNjn0LQ==", + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -5993,8 +5115,7 @@ }, "node_modules/mobx-react": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.6.0.tgz", - "integrity": "sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA==", + "license": "MIT", "dependencies": { "mobx-react-lite": "^3.4.0" }, @@ -6017,8 +5138,7 @@ }, "node_modules/mobx-react-lite": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz", - "integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mobx" @@ -6038,20 +5158,18 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6061,14 +5179,12 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -6086,8 +5202,7 @@ }, "node_modules/node-fetch-h2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "license": "MIT", "dependencies": { "http2-client": "^1.2.5" }, @@ -6097,23 +5212,20 @@ }, "node_modules/node-readfiles": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", + "license": "MIT", "dependencies": { "es6-promise": "^3.2.1" } }, "node_modules/node-releases": { "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -6123,16 +5235,14 @@ }, "node_modules/oas-kit-common": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "license": "BSD-3-Clause", "dependencies": { "fast-safe-stringify": "^2.0.7" } }, "node_modules/oas-linter": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "license": "BSD-3-Clause", "dependencies": { "@exodus/schemasafe": "^1.0.0-rc.2", "should": "^13.2.1", @@ -6144,8 +5254,7 @@ }, "node_modules/oas-resolver": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", + "license": "BSD-3-Clause", "dependencies": { "node-fetch-h2": "^2.3.0", "oas-kit-common": "^1.0.8", @@ -6162,16 +5271,14 @@ }, "node_modules/oas-schema-walker": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", + "license": "BSD-3-Clause", "funding": { "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, "node_modules/oas-validator": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", + "license": "BSD-3-Clause", "dependencies": { "call-me-maybe": "^1.0.1", "oas-kit-common": "^1.0.8", @@ -6188,35 +5295,31 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", - "integrity": "sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6232,9 +5335,8 @@ }, "node_modules/object.entries": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6246,9 +5348,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6263,9 +5364,8 @@ }, "node_modules/object.hasown": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.0", "es-abstract": "^1.22.1" @@ -6276,9 +5376,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6293,17 +5392,15 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/openapi-sampler": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.3.1.tgz", - "integrity": "sha512-Ert9mvc2tLPmmInwSyGZS+v4Ogu9/YoZuq9oP3EdUklg2cad6+IGndP9yqJJwbgdXwZibiq5fpv6vYujchdJFg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.7", "json-pointer": "0.6.2" @@ -6311,25 +5408,22 @@ }, "node_modules/openapi3-ts": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-4.1.2.tgz", - "integrity": "sha512-B7gOkwsYMZO7BZXwJzXCuVagym2xhqsrilVvV0dnq2Di4+iLUXKVX9gOK23ZqaAHZOwABXN0QTdW8QnkUTX6DA==", + "license": "MIT", "dependencies": { "yaml": "^2.2.2" } }, "node_modules/openapi3-ts/node_modules/yaml": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", + "license": "ISC", "engines": { "node": ">= 14" } }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -6344,9 +5438,8 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -6359,9 +5452,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -6374,8 +5466,7 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -6385,8 +5476,7 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -6402,9 +5492,8 @@ }, "node_modules/parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -6414,9 +5503,8 @@ }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dev": true, + "license": "MIT", "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" @@ -6427,40 +5515,35 @@ }, "node_modules/path-browserify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.10.1", @@ -6479,9 +5562,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -6489,42 +5572,36 @@ }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathe": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/perfect-scrollbar": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz", - "integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==" + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -6534,9 +5611,8 @@ }, "node_modules/pkg-types": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.2.0", "mlly": "^1.2.0", @@ -6545,16 +5621,14 @@ }, "node_modules/pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/polished": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", - "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.8" }, @@ -6564,8 +5638,6 @@ }, "node_modules/postcss": { "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -6580,6 +5652,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -6591,24 +5664,21 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT", "peer": true }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6620,9 +5690,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6632,22 +5701,19 @@ }, "node_modules/pretty-format/node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/prismjs": { "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -6656,17 +5722,15 @@ }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -6674,8 +5738,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -6690,17 +5752,16 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/radix3": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.0.tgz", - "integrity": "sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==" + "license": "MIT" }, "node_modules/react": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -6710,8 +5771,7 @@ }, "node_modules/react-clientside-effect": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", - "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13" }, @@ -6721,8 +5781,7 @@ }, "node_modules/react-dom": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -6733,13 +5792,11 @@ }, "node_modules/react-fast-compare": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "license": "MIT" }, "node_modules/react-focus-lock": { "version": "2.9.6", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.6.tgz", - "integrity": "sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "focus-lock": "^1.0.0", @@ -6760,22 +5817,19 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "license": "MIT" }, "node_modules/react-refresh": { "version": "0.13.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", - "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-remove-scroll": { "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.4", "react-style-singleton": "^2.2.1", @@ -6798,8 +5852,7 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -6819,8 +5872,7 @@ }, "node_modules/react-select": { "version": "5.7.7", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.7.tgz", - "integrity": "sha512-HhashZZJDRlfF/AKj0a0Lnfs3sRdw/46VJIRd8IbB9/Ovr74+ZIwkAdSBjSPXsFMG+u72c5xShqwLSKIJllzqw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -6839,8 +5891,7 @@ }, "node_modules/react-style-singleton": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -6861,8 +5912,7 @@ }, "node_modules/react-tabs": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-4.3.0.tgz", - "integrity": "sha512-2GfoG+f41kiBIIyd3gF+/GRCCYtamC8/2zlAcD8cqQmqI9Q+YVz7fJLHMmU9pXDVYYHpJeCgUSBJju85vu5q8Q==", + "license": "MIT", "dependencies": { "clsx": "^1.1.0", "prop-types": "^15.5.0" @@ -6873,8 +5923,7 @@ }, "node_modules/react-transition-group": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -6888,8 +5937,7 @@ }, "node_modules/react-virtualized-auto-sizer": { "version": "1.0.20", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz", - "integrity": "sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==", + "license": "MIT", "peerDependencies": { "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc", "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc" @@ -6897,8 +5945,7 @@ }, "node_modules/react-window": { "version": "1.8.9", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.9.tgz", - "integrity": "sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "memoize-one": ">=3.1.1 <6" @@ -6913,13 +5960,11 @@ }, "node_modules/react-window/node_modules/memoize-one": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + "license": "MIT" }, "node_modules/redoc": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.1.3.tgz", - "integrity": "sha512-d7F9qLLxaiFW4GC03VkwlX9wuRIpx9aiIIf3o6mzMnqPfhxrn2IRKGndrkJeVdItgCfmg9jXZiFEowm60f1meQ==", + "license": "MIT", "dependencies": { "@redocly/openapi-core": "^1.0.0-rc.2", "classnames": "^2.3.1", @@ -6957,9 +6002,8 @@ }, "node_modules/reflect.getprototypeof": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6977,22 +6021,19 @@ }, "node_modules/reftools": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", + "license": "BSD-3-Clause", "funding": { "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, "node_modules/regenerator-runtime": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7007,24 +6048,21 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -7039,17 +6077,15 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -7075,9 +6111,8 @@ }, "node_modules/rollup": { "version": "2.78.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", - "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -7090,8 +6125,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -7107,24 +6140,23 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -7140,9 +6172,8 @@ }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -7154,17 +6185,15 @@ }, "node_modules/scheduler": { "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7177,9 +6206,8 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7189,15 +6217,13 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -7209,15 +6235,13 @@ }, "node_modules/shallowequal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT", "peer": true }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7227,17 +6251,15 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/should": { "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "license": "MIT", "dependencies": { "should-equal": "^2.0.0", "should-format": "^3.0.3", @@ -7248,16 +6270,14 @@ }, "node_modules/should-equal": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "license": "MIT", "dependencies": { "should-type": "^1.4.0" } }, "node_modules/should-format": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "license": "MIT", "dependencies": { "should-type": "^1.3.0", "should-type-adaptors": "^1.0.1" @@ -7265,13 +6285,11 @@ }, "node_modules/should-type": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" + "license": "MIT" }, "node_modules/should-type-adaptors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "license": "MIT", "dependencies": { "should-type": "^1.3.0", "should-util": "^1.0.0" @@ -7279,14 +6297,12 @@ }, "node_modules/should-util": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + "license": "MIT" }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -7298,9 +6314,8 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/signal-exit": { "version": "4.1.0", @@ -7316,70 +6331,57 @@ }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slugify": { "version": "1.4.7", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", - "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/sourcemap-codec": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/std-env": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stickyfill": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", - "integrity": "sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==" + "version": "1.1.1" }, "node_modules/store2": { "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + "license": "(MIT OR GPL-3.0)" }, "node_modules/stream-buffers": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", - "integrity": "sha512-ZRpmWyuCdg0TtNKk8bEqvm13oQvXMmzXDsfD4cBgcx5LouborvU5pm3JMkdTP3HcszyUI08AM1dHMXA5r2g6Sg==", "dev": true, "engines": { "node": ">= 0.3.0" @@ -7387,8 +6389,7 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7415,9 +6416,8 @@ }, "node_modules/string.prototype.matchall": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7435,9 +6435,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7452,9 +6451,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7466,9 +6464,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7480,8 +6477,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7504,9 +6500,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7516,9 +6511,8 @@ }, "node_modules/strip-literal": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.10.0" }, @@ -7528,8 +6522,7 @@ }, "node_modules/styled-components": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.0.tgz", - "integrity": "sha512-VWNfYYBuXzuLS/QYEeoPgMErP26WL+dX9//rEh80B2mmlS1yRxRxuL5eax4m6ybYEUoHWlTy2XOU32767mlMkg==", + "license": "MIT", "peer": true, "dependencies": { "@emotion/is-prop-valid": "^1.2.1", @@ -7556,19 +6549,16 @@ }, "node_modules/styled-components/node_modules/stylis": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", - "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==", + "license": "MIT", "peer": true }, "node_modules/stylis": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + "license": "MIT" }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -7578,8 +6568,7 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7589,8 +6578,7 @@ }, "node_modules/swagger2openapi": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", - "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", + "license": "BSD-3-Clause", "dependencies": { "call-me-maybe": "^1.0.1", "node-fetch": "^2.6.1", @@ -7615,52 +6603,45 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tiny-invariant": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + "license": "MIT" }, "node_modules/tinybench": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinypool": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", - "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", - "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -7670,24 +6651,20 @@ }, "node_modules/toggle-selection": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/truncate-middle": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/truncate-middle/-/truncate-middle-1.0.6.tgz", - "integrity": "sha512-oJLDTdHAk27V+JUUu1vKYezKehx/tECV0vnJ1e8JV/rvre5oLoFMaCLP53ZwiPsw4ZIJzyLoZr/TKQABnaNF6A==" + "license": "MIT" }, "node_modules/ts-api-utils": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=16.13.0" }, @@ -7697,14 +6674,12 @@ }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -7714,18 +6689,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7735,9 +6708,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -7749,9 +6721,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -7767,9 +6738,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -7786,9 +6756,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -7800,9 +6769,8 @@ }, "node_modules/typescript": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7813,8 +6781,6 @@ }, "node_modules/uberproto": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/uberproto/-/uberproto-1.2.0.tgz", - "integrity": "sha512-pGtPAQmLwh+R9w81WVHzui1FfedpQWQpiaIIfPCwhtsBez4q6DYbJFfyXPVHPUTNFnedAvNEnkoFiLuhXIR94w==", "dev": true, "engines": { "node": "*" @@ -7822,15 +6788,13 @@ }, "node_modules/ufo": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz", - "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -7843,17 +6807,14 @@ }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -7869,6 +6830,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -7882,21 +6844,18 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-template": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + "license": "BSD" }, "node_modules/use-callback-ref": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -7915,8 +6874,7 @@ }, "node_modules/use-isomorphic-layout-effect": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, @@ -7928,8 +6886,7 @@ }, "node_modules/use-sidecar": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -7949,9 +6906,8 @@ }, "node_modules/vite": { "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -8004,9 +6960,8 @@ }, "node_modules/vite-node": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", - "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", @@ -8027,9 +6982,8 @@ }, "node_modules/vite/node_modules/rollup": { "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -8043,9 +6997,8 @@ }, "node_modules/vitest": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", - "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "^4.3.5", "@types/chai-subset": "^1.3.3", @@ -8120,9 +7073,8 @@ }, "node_modules/vitest/node_modules/magic-string": { "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -8132,13 +7084,11 @@ }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -8146,9 +7096,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8161,9 +7110,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -8177,9 +7125,8 @@ }, "node_modules/which-builtin-type": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", "dev": true, + "license": "MIT", "dependencies": { "function.prototype.name": "^1.1.5", "has-tostringtag": "^1.0.0", @@ -8203,9 +7150,8 @@ }, "node_modules/which-collection": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.1", "is-set": "^2.0.1", @@ -8218,9 +7164,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -8237,9 +7182,8 @@ }, "node_modules/why-is-node-running": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -8253,8 +7197,7 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8320,8 +7263,7 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -8334,8 +7276,7 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8345,46 +7286,39 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yaml-ast-parser": { "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==" + "license": "Apache-2.0" }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -8400,17 +7334,15 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index fd13ce4..8b8a939 100644 --- a/package.json +++ b/package.json @@ -12,37 +12,29 @@ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0 --fix" }, "dependencies": { + "@andrew_walsh/openapi-spec-generator": "^1.0.0", "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "cookie": "^0.6.0", "copy-to-clipboard": "^3.3.3", "decode-uri-component": "^0.4.1", - "fast-querystring": "^1.1.2", "framer-motion": "^10.16.4", "fuse.js": "^6.6.2", "genson-js": "^0.0.8", - "json-stable-stringify": "^1.0.2", "lodash": "^4.17.21", "openapi3-ts": "^4.1.2", - "radix3": "^1.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-select": "^5.7.7", "react-virtualized-auto-sizer": "^1.0.20", "react-window": "^1.8.9", "redoc": "^2.1.3", - "store2": "^2.14.2", "truncate-middle": "^1.0.6" }, "devDependencies": { "@crxjs/vite-plugin": "^2.0.0-beta.19", - "@seriousme/openapi-schema-validator": "^2.1.2", "@types/chrome": "^0.0.246", - "@types/cookie": "^0.5.4", - "@types/har-format": "^1.2.15", - "@types/json-stable-stringify": "^1.0.35", "@types/lodash": "^4.14.199", "@types/react": "^18.2.28", "@types/react-dom": "^18.2.13", @@ -52,8 +44,6 @@ "@vitejs/plugin-react": "^4.1.0", "eslint": "^8.51.0", "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", "rimraf": "^5.0.5", "typescript": "^5.2.2", "vite": "^4.4.11", diff --git a/resources/dist.zip b/resources/dist.zip index 07b150a..93b58f1 100644 Binary files a/resources/dist.zip and b/resources/dist.zip differ diff --git a/src/lib/RequestStore.test.ts b/src/lib/RequestStore.test.ts deleted file mode 100644 index 76f3629..0000000 --- a/src/lib/RequestStore.test.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { it, expect, vi } from "vitest"; -import { createSimpleRequest } from "./__fixtures__/simple-request"; -import RequestStore from "./RequestStore"; -import { defaultOptions } from "./store-helpers/persist-options"; - -vi.mock('./store-helpers/persist-options', async () => { - const actual = await vi.importActual("./store-helpers/persist-options"); - return { - // @ts-expect-error ignored - ...actual, - get: vi.fn(() => defaultOptions), - set: vi.fn(), - }; -}); - -const host = "test.com"; -const base = `https://${host}`; -const POST = "POST"; - -const getResBodyJSONTypes = (store: RequestStore, host: string, path: string, propName = 'foo') => { - const match = store.get()[host].lookup(path); - if (!match) throw new Error("Could not match path"); - const properties = - match.data.methods[POST][200].response['application/json'].body?.properties?.[propName].type; - return properties; -}; - -it("parameterises and merges paths", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/a`); - const req2 = createSimpleRequest(`${base}/1/2/b`); - const req3 = createSimpleRequest(`${base}/1/2/c`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: 1 }); - store.parameterise(2, "/1/2/a", host); - store.insert(req3, { foo: null }); - store.parameterise(1, "/1/2/:param2", host); - const properties = getResBodyJSONTypes(store, host, "/1/zzz/asbds"); - expect(properties).toContain("string"); - expect(properties).toContain("integer"); - expect(properties).toContain("null"); - expect(properties).toHaveLength(3); -}); - -it("inserts data and can retrieve it", () => { - const store = new RequestStore(); - const req = createSimpleRequest(`${base}/1/2/a`); - store.insert(req, { foo: 1 }); - const properties = getResBodyJSONTypes(store, host, "/1/2/a"); - expect(properties).toBe("integer"); -}); - -it("sets leafMap correctly after multiple add and parameterise operations", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/a`); - const req2 = createSimpleRequest(`${base}/staticPath/2/3/4/5`); - const req3 = createSimpleRequest(`${base}/1/2/b`); - const req4 = createSimpleRequest(`${base}/1/2/c`); - const req5 = createSimpleRequest(`${base}/dynamicPath/2/a`); - const req6 = createSimpleRequest(`${base}/dynamicPath/2/b`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: "bar" }); - store.insert(req3, { foo: 1 }); - store.parameterise(2, "/1/2/a", host); - store.insert(req4, { foo: null }); - store.parameterise(1, "/1/2/:param2", host); - store.insert(req5, { foo: "bar" }); - store.insert(req6, { foo: 1 }); - store.parameterise(2, "/dynamicPath/2/b", host); - store.parameterise(1, "/dynamicPath/2/:param2", host); - const expected = { - [host]: { - '/1/:param1/:param2': expect.any(Object), - '/dynamicPath/:param1/:param2': expect.any(Object), - '/staticPath/2/3/4/5': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); - expect(getResBodyJSONTypes(store, host, "/1/x/x")).toEqual(["null", "integer", "string"]); - expect(getResBodyJSONTypes(store, host, "/dynamicPath/2/x")).toEqual(["integer", "string"]); - expect(getResBodyJSONTypes(store, host, "/staticPath/2/3/4/5")).toBe('string'); -}); - -it("sets leafMap correctly after many parameterise operations", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/3/4/a`); - const req2 = createSimpleRequest(`${base}/1/2/3/z/b`); - const req3 = createSimpleRequest(`${base}/1/x/y/z/b`); - const req4 = createSimpleRequest(`${base}/1/2/b`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: null }); - store.insert(req3, { foo: 1 }); - store.insert(req4, { foo: true }); - store.parameterise(4, "/1/2/3/4/a", host); - store.parameterise(3, "/1/x/y/z/b", host); - store.parameterise(3, "/1/2/3/4/:param4", host); - const expected = { - [host]: { - '/1/2/3/:param3/:param4': expect.any(Object), - '/1/2/b': expect.any(Object), - '/1/x/y/:param3/b': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); - expect(getResBodyJSONTypes(store, host, "/1/2/3/ANY/ANY")).toEqual(["null", "string"]); - expect(getResBodyJSONTypes(store, host, "/1/2/b")).toBe("boolean"); - expect(getResBodyJSONTypes(store, host, "/1/x/y/ANY/b")).toBe('integer'); -}); - -it("collapses into a single route when paramaterised", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/3/4/a`); - const req2 = createSimpleRequest(`${base}/1/2/3/4/b`); - const req3 = createSimpleRequest(`${base}/1/2/3/4/c`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: null }); - store.insert(req3, { foo: 1 }); - store.parameterise(3, "/1/2/3/4/a", host); - store.parameterise(4, "/1/2/3/:param3/a", host); - const expected = { - [host]: { - '/1/2/3/:param3/:param4': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); - expect(getResBodyJSONTypes(store, host, "/1/2/3/ANY/ANY")).toEqual(["null", "integer", "string"]); -}); - -it("can parameterise paths that are subsets of another path", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/a`); - const req2 = createSimpleRequest(`${base}/1/2`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: 1 }); - store.parameterise(1, "/1/2", host); - const expected = { - [host]: { - '/1/2/a': expect.any(Object), - '/1/:param1': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); - expect(getResBodyJSONTypes(store, host, "/1/2/a")).toBe("string"); - expect(getResBodyJSONTypes(store, host, "/1/ANY")).toBe("integer"); -}); - -it("can parameterise paths that exist along the same segment", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/a`); - const req2 = createSimpleRequest(`${base}/1/2`); - const req3 = createSimpleRequest(`${base}/1`); - const req4 = createSimpleRequest(`${base}/1/2/3/4`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: 1 }); - store.insert(req3, { foo: null }); - store.insert(req4, { foo: null }); - store.parameterise(1, "/1/2/a", host); - // Bug happens below. When /1/2 is parameterised, router.remove removes /1/2/3/4 - store.parameterise(1, "/1/2", host); - const expected = { - [host]: { - '/1': expect.any(Object), - '/1/2/3/4': expect.any(Object), - '/1/:param1/a': expect.any(Object), - '/1/:param1': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); - expect(getResBodyJSONTypes(store, host, "/1/ANY/a")).toBe("string"); - expect(getResBodyJSONTypes(store, host, "/1/ANY")).toBe("integer"); -}); - -it("parameterising a path catches future requests to the same path", () => { - const store = new RequestStore(); - const req1 = createSimpleRequest(`${base}/1/2/a`); - const req2 = createSimpleRequest(`${base}/1/2/b`); - store.insert(req1, { foo: "bar" }); - store.insert(req2, { foo: "bar" }); - store.parameterise(1, "/1/2/a", host); - store.insert(req1, { foo: 1 }); - store.insert(req2, { foo: 1 }); - const expected = { - [host]: { - '/1/:param1/a': expect.any(Object), - '/1/2/b': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); -}); - -it("parameterisation works after export and import", () => { - const store = new RequestStore(); - const req = createSimpleRequest(`${base}/1/2/a`); - store.insert(req, { foo: 1 }); - store.parameterise(2, "/1/2/a", host); - const exported = store.export(); - store.clear(); - store.import(exported); - store.insert(req, { foo: 1 }); - const expected = { - [host]: { - '/1/2/:param2': expect.any(Object), - } - }; - // @ts-expect-error accessing private property - expect(store.leafMap).toEqual(expected); -}); diff --git a/src/lib/RequestStore.ts b/src/lib/RequestStore.ts deleted file mode 100644 index 52ff4d6..0000000 --- a/src/lib/RequestStore.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { JSONType, RouterMap, LeafMap, Endpoint } from "../utils/types"; -import { - parameterise, - insertLeafMap, - upsert, - persistOptions, - leafMapToRouterMap, -} from "./store-helpers"; -import { omit, unset } from "lodash"; -import leafMapToEndpoints from "./leafmap-to-endpoints"; -import stringify from "json-stable-stringify"; -import type { Entry } from 'har-format'; - -export type Options = { - // Includes additional data such as response samples - enableMoreInfo: boolean; -}; - -/** - * RequestStore handles routing to endpoints - * Optimised for fast lookups & insertion via a Radix Tree - */ -export default class RequestStore { - private store: RouterMap; - private leafMap: LeafMap; - private disabledHosts: Set; - private storeOptions: Options; - - constructor(storeOptions = persistOptions.get()) { - this.leafMap = {}; // persist.get() || {}; - this.store = {}; // leafMapToRouterMap(this.leafMap); - this.disabledHosts = new Set(); - this.storeOptions = storeOptions; - } - - public options = (options?: Partial): Readonly => { - if (!options) return this.storeOptions; - this.storeOptions = { ...this.storeOptions, ...options }; - persistOptions.set(this.storeOptions); - return Object.freeze(this.storeOptions); - }; - - public import(json: string): boolean { - try { - const { leafMap, disabledHosts } = JSON.parse(json); - this.disabledHosts = new Set(disabledHosts); - this.store = leafMapToRouterMap(leafMap); - this.leafMap = leafMap; - return true; - } catch { - return false; - } - } - - public export = (): string => { - return stringify({ - leafMap: this.leafMap, - disabledHosts: Array.from(this.disabledHosts), - }).trim(); - }; - - public clear(): void { - this.store = {}; - this.leafMap = {}; - this.disabledHosts = new Set(); - // persist.clear(); - } - - public endpoints(): Array { - const withoutDisabled = omit( - this.leafMap, - Array.from(this.disabledHosts) - ) as Readonly; - return leafMapToEndpoints(withoutDisabled); - } - - public get(): Readonly { - return omit(this.store, Array.from(this.disabledHosts)) as Readonly< - typeof this.store - >; - } - - public hosts(): Array { - return Object.keys(this.store); - } - - public insert( - harRequest: Entry, - responseBody: JSONType - ) { - const result = upsert({ - harRequest, - responseBody, - store: this.store, - options: this.storeOptions, - }); - if (!result) return; - const { insertedPath, insertedLeaf, insertedHost } = result; - insertLeafMap({ - leafMap: this.leafMap, - host: insertedHost, - leaf: insertedLeaf, - path: insertedPath, - }); - // persist.set(this.leafMap); - } - - public parameterise(index: number, path: string, host: string): void { - const result = parameterise({ store: this.store, index, path, host }); - if (!result) return; - const { removedPaths, insertedPath, insertedLeaf } = result; - const unsetLeafMap = (path: string) => unset(this.leafMap[host], path); - removedPaths.concat([path]).forEach(unsetLeafMap); - insertLeafMap({ - leafMap: this.leafMap, - host, - leaf: insertedLeaf, - path: insertedPath, - }); - // persist.set(this.leafMap); - } - - public setDisabledHosts(disabledHosts: Set): void { - this.disabledHosts = disabledHosts; - } -} diff --git a/src/lib/__fixtures__/apikey.ts b/src/lib/__fixtures__/apikey.ts deleted file mode 100644 index 4af7a2b..0000000 --- a/src/lib/__fixtures__/apikey.ts +++ /dev/null @@ -1,83 +0,0 @@ -import type { Entry } from 'har-format'; - -// Has header x-api-key -// Has cookie foo -const apikey: Entry = { - _priority: "High", - _resourceType: "fetch", - cache: {}, - connection: "14048", - request: { - method: "GET", - url: "https://httpbin.org/basic-auth/d/d", - httpVersion: "http/2.0", - headers: [ - { - name: "x-api-key", - value: "123", - }, - { - name: "cookie", - value: "foo=bar;sessionid=123", - }, - ], - queryString: [], - cookies: [], - headersSize: -1, - bodySize: 0, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-allow-credentials", - value: "true", - }, - { - name: "access-control-allow-origin", - value: "*", - }, - { - name: "content-length", - value: "44", - }, - { - name: "content-type", - value: "application/json", - }, - { - name: "date", - value: "Mon, 30 Oct 2023 07:51:43 GMT", - }, - { - name: "server", - value: "gunicorn/19.9.0", - }, - ], - cookies: [], - content: { - size: 44, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 184, - }, - serverIPAddress: "54.83.187.171", - startedDateTime: "2023-10-30T07:51:43.115Z", - time: 428.73000000250715, - timings: { - blocked: 123.52900002598763, - dns: 0.012999999999991019, - ssl: 104.29100000000003, - connect: 204.75600000000003, - send: 0.6009999999999991, - wait: 98.76400000092758, - receive: 1.066999975591898, - }, -}; - -export default apikey; diff --git a/src/lib/__fixtures__/basic.ts b/src/lib/__fixtures__/basic.ts deleted file mode 100644 index a29ebd4..0000000 --- a/src/lib/__fixtures__/basic.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { Entry } from 'har-format'; - -const basic: Entry = { - _priority: "High", - _resourceType: "fetch", - cache: {}, - connection: "14048", - request: { - method: "GET", - url: "https://httpbin.org/basic-auth/d/d", - httpVersion: "http/2.0", - headers: [ - { - name: "authorization", - value: "Basic ZDpk", - }, - ], - queryString: [], - cookies: [], - headersSize: -1, - bodySize: 0, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-allow-credentials", - value: "true", - }, - { - name: "access-control-allow-origin", - value: "*", - }, - { - name: "content-length", - value: "44", - }, - { - name: "content-type", - value: "application/json", - }, - { - name: "date", - value: "Mon, 30 Oct 2023 07:51:43 GMT", - }, - { - name: "server", - value: "gunicorn/19.9.0", - }, - ], - cookies: [], - content: { - size: 44, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 184, - }, - serverIPAddress: "54.83.187.171", - startedDateTime: "2023-10-30T07:51:43.115Z", - time: 428.73000000250715, - timings: { - blocked: 123.52900002598763, - dns: 0.012999999999991019, - ssl: 104.29100000000003, - connect: 204.75600000000003, - send: 0.6009999999999991, - wait: 98.76400000092758, - receive: 1.066999975591898, - }, -}; - -export default basic; diff --git a/src/lib/__fixtures__/bearer.ts b/src/lib/__fixtures__/bearer.ts deleted file mode 100644 index 5c0dfbb..0000000 --- a/src/lib/__fixtures__/bearer.ts +++ /dev/null @@ -1,212 +0,0 @@ -import type { Entry } from 'har-format'; - -const bearer: Entry = { - cache: {}, - _resourceType: "xhr", - connection: "194622", - pageref: "page_3", - request: { - method: "GET", - url: "https://api.example.co/api/board/644efa113e96ce003e4082be/jobs/644efa113e96ce003e4082c9", - httpVersion: "http/2.0", - headers: [ - { - name: ":authority", - value: "api.example.com", - }, - { - name: ":method", - value: "GET", - }, - { - name: ":path", - value: - "/api/board/644efa113e96ce003e4082be/jobs/644efa113e96ce003e4082c9", - }, - { - name: ":scheme", - value: "https", - }, - { - name: "accept", - value: "application/json, text/plain, */*", - }, - { - name: "accept-encoding", - value: "gzip, deflate, br", - }, - { - name: "accept-language", - value: "en-GB,en-US;q=0.9,en;q=0.8", - }, - { - name: "authorization", - value: - "Bearer eyJhbGciOiJSUzIxxxxxxET2U0MHhPMllsWm9KTlMiLCJ0eXAxxxxxxxxxxxRyLmNvIiwiZXhwIjoxNjk4NTYxMTQ0LCJpYxxxxxxxxxvY2xlcmsuaHVudHIuY28iLCJuYmYiOjE2OTg1NjEwxxxxxxxxLQnZxOGdYbThXUmNaaVJvbUtOxxxxxxxxxGU1MW1Nb0x5OVhmMWR4WxxxxxxfQ.ZoGFqLqLzond7ww0x1guXxCMLsWlN2KM62qWTSfoyRrTFsx0ou6nstn22N_1q-7x11NJL1w6HSrjjMo6qABevrIyEfQAosLsh1Jjch_FK_Y-pP7e16lXnjof8y6hi3YFwR7rTssRz3foQKcJZC_v_y4NPZaEgQzr6ZkzwMDExKR_MjeLblzh6LcQ6Ny0qTbw4O-mPSrya1sliMiPx1MrCKe7GfpjypzEWCsiL1A7mBa-nA8HDF4AQfP2EK5MDpYT60FnyF2dsbxI3PqoEaRulsstsKiE4X947bkUe-cI27LSOYr-NXpetHhYFq-4LGUkKnj0f9UwbrweDr-so4-IEw", - }, - { - name: "cache-control", - value: "no-cache", - }, - { - name: "origin", - value: "https://example.com", - }, - { - name: "pragma", - value: "no-cache", - }, - { - name: "referer", - value: "https://example.com/", - }, - { - name: "sec-ch-ua", - value: - '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"', - }, - { - name: "sec-ch-ua-mobile", - value: "?0", - }, - { - name: "sec-ch-ua-platform", - value: '"macOS"', - }, - { - name: "sec-fetch-dest", - value: "empty", - }, - { - name: "sec-fetch-mode", - value: "cors", - }, - { - name: "sec-fetch-site", - value: "same-site", - }, - { - name: "user-agent", - value: - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", - }, - ], - queryString: [], - cookies: [], - headersSize: -1, - bodySize: 0, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-allow-credentials", - value: "true", - }, - { - name: "access-control-allow-origin", - value: "https://example.com", - }, - { - name: "cf-cache-status", - value: "DYNAMIC", - }, - { - name: "cf-ray", - value: "81d960dbbcd539fb-YYZ", - }, - { - name: "content-encoding", - value: "br", - }, - { - name: "content-type", - value: "application/json; charset=utf-8", - }, - { - name: "date", - value: "Sun, 29 Oct 2023 06:31:55 GMT", - }, - { - name: "etag", - value: 'W/"RWY0ZNBvNXEP0LB2sU80EQ=="', - }, - { - name: "nel", - value: - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}', - }, - { - name: "report-to", - value: - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1698561115&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=L3cRSWh4mrStaCTqmkJOwhEZcdhCjn2tyQStcNUdWRE%3D"}]}', - }, - { - name: "reporting-endpoints", - value: - "heroku-nel=https://nel.heroku.com/reports?ts=1698561115&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=L3cRSWh4mrStaCTqmkJOwhEZcdhCjn2tyQStcNUdWRE%3D", - }, - { - name: "server", - value: "cloudflare", - }, - { - name: "strict-transport-security", - value: "max-age=2592000; includeSubDomains", - }, - { - name: "vary", - value: "Origin, Accept-Encoding", - }, - { - name: "via", - value: "1.1 vegur", - }, - { - name: "x-content-type-options", - value: "nosniff", - }, - { - name: "x-powered-by", - value: "Express", - }, - { - name: "x-ratelimit-limit", - value: "3000", - }, - { - name: "x-ratelimit-remaining", - value: "2999", - }, - { - name: "x-ratelimit-reset", - value: "1698561155", - }, - ], - cookies: [], - content: { - size: 18097, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 5955, - }, - serverIPAddress: "104.26.14.205", - startedDateTime: "2023-10-29T06:31:54.137Z", - time: 790.8520000055432, - timings: { - blocked: 462.0410000013709, - dns: -1, - ssl: -1, - connect: -1, - send: 0.14100000000000001, - wait: 327.99000000679865, - receive: 0.6799999973736703, - }, -}; - -export default bearer; diff --git a/src/lib/__fixtures__/digest.ts b/src/lib/__fixtures__/digest.ts deleted file mode 100644 index 2507c10..0000000 --- a/src/lib/__fixtures__/digest.ts +++ /dev/null @@ -1,212 +0,0 @@ -import type { Entry } from 'har-format'; - -const bearer: Entry = { - cache: {}, - _resourceType: "xhr", - connection: "194622", - pageref: "page_3", - request: { - method: "GET", - url: "https://api.example.co/api/board/644efa113e96ce003e4082be/jobs/644efa113e96ce003e4082c9", - httpVersion: "http/2.0", - headers: [ - { - name: ":authority", - value: "api.example.com", - }, - { - name: ":method", - value: "GET", - }, - { - name: ":path", - value: - "/api/board/644efa113e96ce003e4082be/jobs/644efa113e96ce003e4082c9", - }, - { - name: ":scheme", - value: "https", - }, - { - name: "accept", - value: "application/json, text/plain, */*", - }, - { - name: "accept-encoding", - value: "gzip, deflate, br", - }, - { - name: "accept-language", - value: "en-GB,en-US;q=0.9,en;q=0.8", - }, - { - name: "authorization", - value: - "Digest username=\"Mufasa\", realm=\"testrealm@host.com\", nonce=\"dcd98b7102dd2f0e8b11d0f600bfb0c093\", uri=\"/dir/index.html\",", - }, - { - name: "cache-control", - value: "no-cache", - }, - { - name: "origin", - value: "https://example.com", - }, - { - name: "pragma", - value: "no-cache", - }, - { - name: "referer", - value: "https://example.com/", - }, - { - name: "sec-ch-ua", - value: - '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"', - }, - { - name: "sec-ch-ua-mobile", - value: "?0", - }, - { - name: "sec-ch-ua-platform", - value: '"macOS"', - }, - { - name: "sec-fetch-dest", - value: "empty", - }, - { - name: "sec-fetch-mode", - value: "cors", - }, - { - name: "sec-fetch-site", - value: "same-site", - }, - { - name: "user-agent", - value: - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", - }, - ], - queryString: [], - cookies: [], - headersSize: -1, - bodySize: 0, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-allow-credentials", - value: "true", - }, - { - name: "access-control-allow-origin", - value: "https://example.com", - }, - { - name: "cf-cache-status", - value: "DYNAMIC", - }, - { - name: "cf-ray", - value: "81d960dbbcd539fb-YYZ", - }, - { - name: "content-encoding", - value: "br", - }, - { - name: "content-type", - value: "application/json; charset=utf-8", - }, - { - name: "date", - value: "Sun, 29 Oct 2023 06:31:55 GMT", - }, - { - name: "etag", - value: 'W/"RWY0ZNBvNXEP0LB2sU80EQ=="', - }, - { - name: "nel", - value: - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}', - }, - { - name: "report-to", - value: - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1698561115&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=L3cRSWh4mrStaCTqmkJOwhEZcdhCjn2tyQStcNUdWRE%3D"}]}', - }, - { - name: "reporting-endpoints", - value: - "heroku-nel=https://nel.heroku.com/reports?ts=1698561115&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=L3cRSWh4mrStaCTqmkJOwhEZcdhCjn2tyQStcNUdWRE%3D", - }, - { - name: "server", - value: "cloudflare", - }, - { - name: "strict-transport-security", - value: "max-age=2592000; includeSubDomains", - }, - { - name: "vary", - value: "Origin, Accept-Encoding", - }, - { - name: "via", - value: "1.1 vegur", - }, - { - name: "x-content-type-options", - value: "nosniff", - }, - { - name: "x-powered-by", - value: "Express", - }, - { - name: "x-ratelimit-limit", - value: "3000", - }, - { - name: "x-ratelimit-remaining", - value: "2999", - }, - { - name: "x-ratelimit-reset", - value: "1698561155", - }, - ], - cookies: [], - content: { - size: 18097, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 5955, - }, - serverIPAddress: "104.26.14.205", - startedDateTime: "2023-10-29T06:31:54.137Z", - time: 790.8520000055432, - timings: { - blocked: 462.0410000013709, - dns: -1, - ssl: -1, - connect: -1, - send: 0.14100000000000001, - wait: 327.99000000679865, - receive: 0.6799999973736703, - }, -}; - -export default bearer; diff --git a/src/lib/__fixtures__/post-application-json.ts b/src/lib/__fixtures__/post-application-json.ts deleted file mode 100644 index 40299c3..0000000 --- a/src/lib/__fixtures__/post-application-json.ts +++ /dev/null @@ -1,141 +0,0 @@ -import type { Entry } from 'har-format'; - -const postJson: Entry = { - cache: {}, - _resourceType: "xhr", - request: { - method: "POST", - url: "https://www.example.com/v1/track", - httpVersion: "http/2.0", - headers: [ - { - name: ":method", - value: "POST", - }, - { - name: ":path", - value: "/v1/track", - }, - { - name: ":scheme", - value: "https", - }, - { - name: "accept", - value: "*/*", - }, - { - name: "accept-encoding", - value: "gzip, deflate, br", - }, - { - name: "accept-language", - value: "en-GB,en-US;q=0.9,en;q=0.8", - }, - { - name: "anonymousid", - value: "aa", - }, - { - name: "content-length", - value: "6798", - }, - { - name: "content-type", - value: "application/json", - }, - ], - queryString: [ - { - name: "alt", - value: "json", - }, - { - name: "key", - value: "abc", - }, - ], - cookies: [ - { - name: "VISITOR_INFO1_LIVE", - value: "abc", - path: "/", - domain: ".example.com", - expires: "2024-04-12T07:45:16.478Z", - httpOnly: true, - secure: true, - }, - { - name: "YSC", - value: "abc", - path: "/", - domain: ".example.com", - expires: "1969-12-31T23:59:59.000Z", - httpOnly: true, - secure: true, - }, - ], - headersSize: -1, - bodySize: 6798, - postData: { - mimeType: "application/json", - text: '{ "test": "integer" }' - }, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-expose-headers", - value: "", - }, - { - name: "content-length", - value: "2", - }, - { - name: "content-type", - value: "text/plain; charset=utf-8", - }, - { - name: "date", - value: "Sun, 15 Oct 2023 07:42:54 GMT", - }, - { - name: "server", - value: "openresty/1.21.4.2", - }, - { - name: "vary", - value: "Origin", - }, - ], - cookies: [], - content: { - size: 28, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 166, - }, - serverIPAddress: "44.219.182.139", - startedDateTime: "2023-10-15T07:42:54.694Z", - time: 318.07399999186396, - timings: { - blocked: 1.4950000001639128, - dns: 0.010000000000000009, - ssl: 105.26800000000001, - connect: 203.84, - send: 0.21299999999999386, - wait: 112.1749999562949, - receive: 0.341000035405159, - }, -}; - -export const postHost = 'www.example.com'; - -export default postJson; diff --git a/src/lib/__fixtures__/post-application-x-www-form-urlencoded.ts b/src/lib/__fixtures__/post-application-x-www-form-urlencoded.ts deleted file mode 100644 index 7d49bcb..0000000 --- a/src/lib/__fixtures__/post-application-x-www-form-urlencoded.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Entry } from "har-format"; - -const postXWWWFormUrlEncoded: Entry = { - _priority: "VeryHigh", - _resourceType: "document", - cache: {}, - connection: "17359", - pageref: "page_10", - request: { - method: "POST", - url: "https://httpbin.org/post", - httpVersion: "http/2.0", - headers: [], - queryString: [], - cookies: [], - headersSize: -1, - bodySize: 94, - postData: { - mimeType: "application/x-www-form-urlencoded", - text: "custname=asdf&custtel=sadf&custemail=&size=medium&topping=cheese&delivery=11%3A00&comments=sdg", - }, - }, - response: { - status: 200, - statusText: "", - httpVersion: "http/2.0", - headers: [], - cookies: [], - content: { - size: 1411, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 1566, - }, - serverIPAddress: "75.101.210.237", - startedDateTime: "2023-11-26T03:21:54.665Z", - time: 1121.7940000324434, - timings: { - blocked: 197.47300002474338, - dns: 0.007999999999981355, - ssl: 348.39799999999997, - connect: 615.2149999999999, - send: 0.31799999999998363, - wait: 307.29200002782795, - receive: 1.4879999798722565, - }, -}; - -export default postXWWWFormUrlEncoded; diff --git a/src/lib/__fixtures__/simple-request.ts b/src/lib/__fixtures__/simple-request.ts deleted file mode 100644 index 4837a7e..0000000 --- a/src/lib/__fixtures__/simple-request.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { cloneDeep } from "lodash"; -import type { Entry } from 'har-format'; - -const simpleBody = { test: 'test' }; -const simpleURLHost = "www.example.com"; -const simpleURLBase = `https://${simpleURLHost}/`; -const simpleURLParts: Array = ["posts", "1", "new"]; - -const simpleRequest: Entry = { - cache: {}, - _resourceType: "xhr", - request: { - method: "POST", - url: simpleURLBase + simpleURLParts.join("/"), - httpVersion: "http/2.0", - headers: [ - { - name: "accept", - value: "*/*", - }, - ], - queryString: [ - { - name: "alt", - value: "json", - }, - ], - cookies: [ - { - name: "YSC", - value: "abc", - path: "/", - domain: ".example.com", - expires: "1969-12-31T23:59:59.000Z", - httpOnly: true, - secure: true, - }, - ], - headersSize: -1, - bodySize: 10, - postData: { - mimeType: "application/json", - text: JSON.stringify(simpleBody), - }, - }, - response: { - status: 200, - statusText: "OK", - httpVersion: "http/2.0", - headers: [ - { - name: "access-control-expose-headers", - value: "", - }, - ], - cookies: [], - content: { - size: 28, - mimeType: "application/json", - }, - redirectURL: "", - headersSize: -1, - bodySize: -1, - _transferSize: 166, - }, - serverIPAddress: "44.219.182.139", - startedDateTime: "2023-10-15T07:42:54.694Z", - time: 318.07399999186396, - timings: { - blocked: 1.4950000001639128, - dns: 0.010000000000000009, - ssl: 105.26800000000001, - connect: 203.84, - send: 0.21299999999999386, - wait: 112.1749999562949, - receive: 0.341000035405159, - }, -}; - -export const createSimpleRequest = (url: string) => { - const request = cloneDeep(simpleRequest); - request.request.url = url; - return request; -} diff --git a/src/lib/__snapshots__/leafmap-to-endpoints.test.ts.snap b/src/lib/__snapshots__/leafmap-to-endpoints.test.ts.snap deleted file mode 100644 index 83e2a6c..0000000 --- a/src/lib/__snapshots__/leafmap-to-endpoints.test.ts.snap +++ /dev/null @@ -1,542 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`flattens data into endpoints 1`] = ` -[ - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - ], - "pathname": "/1/2/3", - }, - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": ":param1", - "type": 1, - }, - { - "part": "3", - "type": 0, - }, - ], - "pathname": "/1/:param1/3", - }, - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "4", - "type": 0, - }, - ], - "pathname": "/1/2/3/4", - }, - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "4a", - "type": 0, - }, - ], - "pathname": "/1/2/3/4a", - }, - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "", - "type": 0, - }, - ], - "pathname": "/1/2/3/", - }, - { - "data": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "request": { - "application/json": { - "body": { - "properties": { - "test": { - "type": "string", - }, - }, - "required": [ - "test", - ], - "type": "object", - }, - }, - }, - "requestHeaders": { - "properties": { - "anonymousid": { - "type": "string", - }, - }, - "required": [ - "anonymousid", - ], - "type": "object", - }, - "response": { - "application/json": { - "body": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - }, - }, - "responseHeaders": undefined, - }, - }, - }, - "pathname": "/v1/track", - }, - "host": "www.example.com", - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": ":param4", - "type": 1, - }, - { - "part": "param5", - "type": 0, - }, - { - "part": "a", - "type": 0, - }, - { - "part": ":param7", - "type": 1, - }, - { - "part": "b", - "type": 0, - }, - ], - "pathname": "/1/2/3/:param4/param5/a/:param7/b", - }, -] -`; diff --git a/src/lib/endpoints-to-oai31.helpers.ts b/src/lib/endpoints-to-oai31.helpers.ts deleted file mode 100644 index 26966fb..0000000 --- a/src/lib/endpoints-to-oai31.helpers.ts +++ /dev/null @@ -1,160 +0,0 @@ -import type { Schema } from "genson-js"; -import { Endpoint, PartType } from "../utils/types"; -import { - OpenApiBuilder, - ResponsesObject, - ResponseObject, - HeadersObject, - MediaTypeObject, - ContentObject, - RequestBodyObject, - HeaderObject, - ParameterObject, - SecuritySchemeObject, -} from "openapi3-ts/oas31"; -import { Authentication, AuthType, Leaf } from "../utils/types"; -import { Options } from "./RequestStore"; - -export const createSecuritySchemeTypes = (auth?: Authentication): SecuritySchemeObject | undefined => { - if (!auth) return; - const isBearer = auth.authType === AuthType.HTTP_HEADER_BEARER; - const isBasic = auth.authType === AuthType.HTTP_HEADER_BASIC; - const isDigest = auth.authType === AuthType.HTTP_HEADER_DIGEST; - if (isBearer || isBasic || isDigest) { - const httpAuth: SecuritySchemeObject = { - type: auth.type, - in: auth.in, - scheme: auth.scheme, - }; - return httpAuth; - } - const isAPIKeyHeader = auth.authType.startsWith(AuthType.APIKEY_HEADER_); - const isAPIKeyCookie = auth.authType.startsWith(AuthType.APIKEY_COOKIE_); - if (isAPIKeyHeader || isAPIKeyCookie) { - const apiKeyHeader: SecuritySchemeObject = { - type: auth.type, - in: auth.in, - name: auth.name, - }; - return apiKeyHeader; - } -} - -export const shouldIncludeRequestBody = (method: string) => { - return !new Set(["get", "delete", "head"]).has(method.toLowerCase()); -}; - -type RequestType = Leaf["methods"]["get"]["200"]["request"]; -export const createRequestTypes = (requestType: RequestType, options: Options) => { - if (!requestType) return; - const contentObject: ContentObject = {}; - Object.entries(requestType).forEach(([mediaType, data]) => { - const mediaTypeObject: MediaTypeObject = { - schema: data.body, - ...(!!options.enableMoreInfo && { example: data.mostRecent }), - }; - contentObject[mediaType] = mediaTypeObject; - }); - const requestBodyObject: RequestBodyObject = { - content: contentObject, - }; - return requestBodyObject; -}; - -type ResponseType = Leaf["methods"]["get"]["200"]["response"]; -export const createResponseTypes = ( - responseType: ResponseType, - headers: Schema | undefined, - statusCode: string, - options: Options, -) => { - const contentObject: ContentObject = {}; - Object.entries(responseType).forEach(([mediaType, data]) => { - const mediaTypeObject: MediaTypeObject = { - schema: data.body, - ...(!!options.enableMoreInfo && { example: data.mostRecent }), - }; - contentObject[mediaType] = mediaTypeObject; - }); - const headersObject: HeadersObject = {}; - - if (headers && headers.properties) { - if (headers.properties) { - Object.entries(headers.properties).forEach(([name, schema]) => { - const headerObj: HeaderObject = { - required: false, - schema, - }; - headersObject[name] = headerObj; - }); - } - } - - const responseObject: ResponseObject = { - content: contentObject, - description: "", - headers: headersObject, - }; - const responsesObject: ResponsesObject = { - [statusCode]: responseObject, - }; - - return responsesObject; -}; - -export const createBuilderAndDocRoot = ( - endpoints: Array -): OpenApiBuilder => { - const builder = OpenApiBuilder.create({ - openapi: "3.1.0", - info: { - title: "OpenAPI Specification", - version: "1.0.0", - description: `A specification generated by [openapi-devtools](https://github.com/AndrewWalsh/openapi-devtools). Contains ${ - endpoints.length - } endpoint${endpoints.length === 1 ? "" : "s"}.`, - }, - paths: {}, - }); - return builder; -}; - -export const createPathParameterTypes = ( - endpoint: Endpoint -): Array => { - const dynamicParts = endpoint.parts.filter( - ({ type }) => type === PartType.Dynamic - ); - const parameters: ParameterObject[] = dynamicParts.map(({ part: name }) => ({ - name, - in: "path", - required: true, - schema: { - type: "string", - }, - })); - return parameters; -}; - -export const createQueryParameterTypes = ( - queryParameters: Schema | undefined -): Array => { - if (!queryParameters?.properties) return []; - const namesAndSchemas = Object.entries(queryParameters.properties); - return namesAndSchemas.map(([name, schema]) => { - const parameterObject: ParameterObject = { - name, - in: "query", - required: false, - schema, - }; - return parameterObject; - }); -}; - -// Format THIS_TXT_STR to this text str -export const formatAuthType = (str: string) => { - return str - .replace(/_/g, " ") - .toLowerCase(); -}; diff --git a/src/lib/endpoints-to-oai31.test.ts b/src/lib/endpoints-to-oai31.test.ts deleted file mode 100644 index d44a0fc..0000000 --- a/src/lib/endpoints-to-oai31.test.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { it, expect } from "vitest"; -import { Validator } from "@seriousme/openapi-schema-validator"; -import RequestStore, { Options } from "./RequestStore"; -import endpointsToOAI31 from "./endpoints-to-oai31"; -import postJson from "./__fixtures__/post-application-json"; -import bearer from "./__fixtures__/bearer"; -import basic from "./__fixtures__/basic"; -import digest from "./__fixtures__/digest"; -import apikey from "./__fixtures__/apikey"; -import { cloneDeep } from "lodash"; -import { AuthType } from "../utils/types"; -import { defaultOptions } from "./store-helpers/persist-options"; -import { formatAuthType } from './endpoints-to-oai31.helpers'; - -const createRequestStoreWithDefaults = () => { - const store = new RequestStore(); - const req1 = cloneDeep(postJson); - req1.request.url = "https://example.com/api/v1/1a"; - const req2 = cloneDeep(postJson); - req2.request.url = "https://example.com/api/v1/2 . "; - store.insert(req1, { test: "string" }); - store.insert(req2, { test: "string" }); - return store; -}; - -// test leafMapToEndpoints via the public store method that uses it -it("produces valid openapi 3.1 specifications", () => { - const validator = new Validator({ strict: true }); - const store = createRequestStoreWithDefaults(); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, defaultOptions); - expect(validator.validate(oai31.getSpec())).resolves.toEqual({ valid: true }); -}); - -it("sets most recent request when enabled", () => { - const options: Options = { enableMoreInfo: true }; - const store = new RequestStore(options); - store.insert(postJson, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, options); - const result = - // @ts-expect-error ignored - oai31.rootDoc.paths?.["/v1/track"].post?.requestBody?.content[ - "application/json" - ].example; - expect(result).toEqual({ test: "integer" }); -}); - -it("sets most recent response when enabled", () => { - const options: Options = { enableMoreInfo: true }; - const store = new RequestStore(options); - store.insert(postJson, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, options); - const result = - oai31.rootDoc.paths?.["/v1/track"].post?.responses["200"].content[ - "application/json" - ].example; - expect(result).toEqual({ test: "string" }); -}); - -it("sets bearer auth security schema when available", () => { - const store = new RequestStore(); - store.insert(bearer, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, defaultOptions); - expect(oai31.rootDoc.components?.securitySchemes).toEqual({ - [formatAuthType(AuthType.APIKEY_HEADER_ + 'AUTHORIZATION')]: { - in: "header", - name: "AUTHORIZATION", - type: "apiKey", - }, - [formatAuthType(AuthType.HTTP_HEADER_BEARER)]: { - in: "header", - scheme: "Bearer", - type: "http", - }, - }); -}); - -it("sets basic auth security schema when available", () => { - const store = new RequestStore(); - store.insert(basic, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, defaultOptions); - expect(oai31.rootDoc.components?.securitySchemes).toEqual({ - [formatAuthType(AuthType.APIKEY_HEADER_ + 'AUTHORIZATION')]: { - in: "header", - name: "AUTHORIZATION", - type: "apiKey", - }, - [formatAuthType(AuthType.HTTP_HEADER_BASIC)]: { - in: "header", - scheme: "Basic", - type: "http", - }, - }); -}); - -it("sets digest auth security schema when available", () => { - const store = new RequestStore(); - store.insert(digest, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, defaultOptions); - expect(oai31.rootDoc.components?.securitySchemes).toEqual({ - [formatAuthType(AuthType.APIKEY_HEADER_ + 'AUTHORIZATION')]: { - in: "header", - name: "AUTHORIZATION", - type: "apiKey", - }, - [formatAuthType(AuthType.HTTP_HEADER_DIGEST)]: { - in: "header", - scheme: "Digest", - type: "http", - }, - }); -}); - -it("sets api keys from headers", () => { - const store = new RequestStore(); - store.insert(apikey, { test: "string" }); - const endpoints = store.endpoints(); - const oai31 = endpointsToOAI31(endpoints, defaultOptions); - expect(oai31.rootDoc.components?.securitySchemes).toEqual({ - [formatAuthType(AuthType.APIKEY_COOKIE_ + "SESSIONID")]: { - in: "cookie", - name: "sessionid", - type: "apiKey", - }, - [formatAuthType(AuthType.APIKEY_HEADER_ + "COOKIE")]: { - in: "header", - name: "COOKIE", - type: "apiKey", - }, - [formatAuthType(AuthType.APIKEY_HEADER_ + "X-API-KEY")]: { - in: "header", - name: "X-API-KEY", - type: "apiKey", - }, - }); -}); diff --git a/src/lib/endpoints-to-oai31.ts b/src/lib/endpoints-to-oai31.ts deleted file mode 100644 index bd5fb05..0000000 --- a/src/lib/endpoints-to-oai31.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Endpoint, AuthTypeString } from "../utils/types"; -import { - OpenApiBuilder, - PathItemObject, - OperationObject, - SecuritySchemeObject, - SecurityRequirementObject, -} from "openapi3-ts/oas31"; -import { - shouldIncludeRequestBody, - createBuilderAndDocRoot, - createQueryParameterTypes, - createPathParameterTypes, - createRequestTypes, - createResponseTypes, - createSecuritySchemeTypes, - formatAuthType, -} from "./endpoints-to-oai31.helpers"; -import { Options } from "./RequestStore"; -import { defaultOptions } from "./store-helpers/persist-options"; -import { isEmpty } from "lodash"; - -const endpointsToOAI31 = (endpoints: Array, options: Options = defaultOptions): OpenApiBuilder => { - const builder = createBuilderAndDocRoot(endpoints); - const uniqueHosts = new Set(); - const uniqueAuth = new Map(); - - for (const endpoint of endpoints) { - const fullPath = `/${endpoint.parts.map((p) => p.part).join("/")}`; - const pathParameterObjects = createPathParameterTypes(endpoint); - uniqueHosts.add(endpoint.host); - - const auth = endpoint.data.authentication; - if (auth) { - Object.values(auth).forEach(value => { - const securitySchema = createSecuritySchemeTypes( - value - ); - if (securitySchema) { - uniqueAuth.set(formatAuthType(value.authType), securitySchema); - } - }); - } - - for (const [method, statusCodes] of Object.entries(endpoint.data.methods)) { - for (const [statusCode, schema] of Object.entries(statusCodes)) { - const methodLower = method.toLowerCase(); - const queryParameterObjects = createQueryParameterTypes( - endpoint.data.methods[method][statusCode].queryParameters - ); - const requestBody = createRequestTypes(schema.request, options); - const responses = createResponseTypes( - schema.response, - schema.responseHeaders, - statusCode, - options, - ); - const security: SecurityRequirementObject[] = []; - if (!isEmpty(endpoint.data.authentication)) { - Object.values(endpoint.data.authentication).forEach(value => { - security.push({ [formatAuthType(value.authType)]: [] }); - }); - } - const operation: OperationObject = { - summary: fullPath, - description: `**Host**: http://${endpoint.host}`, - responses, - ...(security && { security }), - }; - const allParameterObjects = [ - ...pathParameterObjects, - ...queryParameterObjects, - ]; - if (allParameterObjects.length) { - operation.parameters = allParameterObjects; - } - if (requestBody && shouldIncludeRequestBody(method)) { - operation.requestBody = requestBody; - } - // The method (e.g. get) and the operation on it - const pathItemObject: PathItemObject = { - [methodLower]: operation, - }; - const path = endpoint.pathname; - // const pathObject: PathObject = { - // [path]: pathItemObject, - // }; - // Assign into doc - const { rootDoc } = builder; - rootDoc.paths = rootDoc.paths || {}; - const specPath = rootDoc.paths?.[path]; - if (specPath) { - specPath[methodLower as "get"] = operation; - } else { - rootDoc.paths[path] = pathItemObject; - } - } - } - } - - uniqueAuth.forEach((auth, key) => { - if (!builder.rootDoc.components) { - builder.rootDoc.components = {}; - } - if (!builder.rootDoc.components.securitySchemes) { - builder.rootDoc.components.securitySchemes = {}; - } - builder.rootDoc.components.securitySchemes[key] = auth; - }); - - return builder; -}; - -export default endpointsToOAI31; diff --git a/src/lib/leafmap-to-endpoints.test.ts b/src/lib/leafmap-to-endpoints.test.ts deleted file mode 100644 index 8b0fc96..0000000 --- a/src/lib/leafmap-to-endpoints.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { it, expect } from "vitest"; -import leafMapToEndpoints from "./leafmap-to-endpoints"; -import postJson, { postHost } from "./__fixtures__/post-application-json"; -import { createLeaf } from "./store-helpers"; -import { LeafMap } from "../utils/types"; -import { defaultOptions } from "./store-helpers/persist-options"; - -const leaf = createLeaf({ - harRequest: postJson, - responseBody: { foo: "bar" }, - options: defaultOptions, -}); - -it("flattens data into endpoints", () => { - const leafMap: LeafMap = { - [postHost]: { - "/1/2/3": { data: leaf }, - "/1/:param1/3": { data: leaf }, - "/1/2/3/4": { data: leaf }, - "/1/2/3/4a": { data: leaf }, - "/1/2/3/": { data: leaf }, - "/1/2/3/:param4/param5/a/:param7/b": { data: leaf }, - }, - }; - const endpoints = leafMapToEndpoints(leafMap); - expect(endpoints).toHaveLength(6); - expect(endpoints).toMatchSnapshot(); -}); diff --git a/src/lib/leafmap-to-endpoints.ts b/src/lib/leafmap-to-endpoints.ts deleted file mode 100644 index ad227c2..0000000 --- a/src/lib/leafmap-to-endpoints.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Endpoint, LeafMap } from "../utils/types"; -import { pathToParts } from "./store-helpers/helpers"; - -const leafMapToEndpoints = (leafMap: LeafMap): Array => { - const endpoints: Array = []; - for (const [host, pathData] of Object.entries(leafMap)) { - for (const [path, leaf] of Object.entries(pathData)) { - const endpoint: Endpoint = { - host, - parts: pathToParts(path), - pathname: path, - data: leaf.data, - }; - endpoints.push(endpoint); - } - } - return endpoints; -}; - -export default leafMapToEndpoints; diff --git a/src/lib/store-helpers/__snapshots__/leafmap-to-endpoints.test.ts.snap b/src/lib/store-helpers/__snapshots__/leafmap-to-endpoints.test.ts.snap deleted file mode 100644 index 4d4199b..0000000 --- a/src/lib/store-helpers/__snapshots__/leafmap-to-endpoints.test.ts.snap +++ /dev/null @@ -1,3254 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`flattens data into endpoints 1`] = ` -[ - { - "fullPath": "/1/2/3", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - ], - }, - { - "fullPath": "/1/:param1/3", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": ":param1", - "type": 1, - }, - { - "part": "3", - "type": 0, - }, - ], - }, - { - "fullPath": "/1/2/3/4", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "4", - "type": 0, - }, - ], - }, - { - "fullPath": "/1/2/3/4a", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "4a", - "type": 0, - }, - ], - }, - { - "fullPath": "/1/2/3/", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": "", - "type": 0, - }, - ], - }, - { - "fullPath": "/1/2/3/:param4/param5/a/:param7/b", - "host": "www.example.com", - "leaf": { - "methods": { - "POST": { - "200": { - "queryParameters": { - "properties": { - "alt": { - "type": "string", - }, - "key": { - "type": "string", - }, - }, - "required": [ - "alt", - "key", - ], - "type": "object", - }, - "requestBody": { - "properties": { - "anonymousId": { - "type": "string", - }, - "channel": { - "type": "string", - }, - "context": { - "properties": { - "app": { - "properties": { - "name": { - "type": "string", - }, - "namespace": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "namespace", - "version", - ], - "type": "object", - }, - "campaign": { - "type": "object", - }, - "library": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "locale": { - "type": "string", - }, - "os": { - "properties": { - "name": { - "type": "string", - }, - "version": { - "type": "string", - }, - }, - "required": [ - "name", - "version", - ], - "type": "object", - }, - "page": { - "properties": { - "initial_referrer": { - "type": "string", - }, - "initial_referring_domain": { - "type": "string", - }, - "path": { - "type": "string", - }, - "referrer": { - "type": "string", - }, - "referring_domain": { - "type": "string", - }, - "search": { - "type": "string", - }, - "tab_url": { - "type": "string", - }, - "title": { - "type": "string", - }, - "url": { - "type": "string", - }, - }, - "required": [ - "path", - "referrer", - "referring_domain", - "search", - "title", - "url", - "tab_url", - "initial_referrer", - "initial_referring_domain", - ], - "type": "object", - }, - "screen": { - "properties": { - "density": { - "type": "integer", - }, - "height": { - "type": "integer", - }, - "innerHeight": { - "type": "integer", - }, - "innerWidth": { - "type": "integer", - }, - "width": { - "type": "integer", - }, - }, - "required": [ - "density", - "width", - "height", - "innerWidth", - "innerHeight", - ], - "type": "object", - }, - "sessionId": { - "type": "integer", - }, - "traits": { - "type": "object", - }, - "userAgent": { - "type": "string", - }, - }, - "required": [ - "app", - "traits", - "library", - "userAgent", - "os", - "locale", - "screen", - "sessionId", - "campaign", - "page", - ], - "type": "object", - }, - "event": { - "type": "string", - }, - "integrations": { - "properties": { - "All": { - "type": "boolean", - }, - }, - "required": [ - "All", - ], - "type": "object", - }, - "messageId": { - "type": "string", - }, - "originalTimestamp": { - "type": "string", - }, - "properties": { - "properties": { - "abstract url": { - "type": "string", - }, - "asid - clean": { - "type": "string", - }, - "asid - gdGlobals": { - "type": "string", - }, - "asid - raw": { - "type": "string", - }, - "device type id": { - "type": "integer", - }, - "document referrer": { - "type": "string", - }, - "domain id": { - "type": "integer", - }, - "dos2 a/b test id list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "dos2 a/b test treatment list": { - "items": { - "type": "string", - }, - "type": "array", - }, - "engaged employer status": { - "type": "string", - }, - "event origin": { - "type": "string", - }, - "full page url": { - "type": "string", - }, - "gtm container id": { - "type": "string", - }, - "gtm container version": { - "type": "string", - }, - "guid - event": { - "type": "string", - }, - "history length": { - "type": "integer", - }, - "hostname": { - "type": "string", - }, - "ip location id": { - "type": "string", - }, - "ip location type": { - "type": "string", - }, - "java enabled": { - "type": "string", - }, - "lashed employer": { - "type": "string", - }, - "lashed employer id": { - "type": "integer", - }, - "lashed industry": { - "type": "string", - }, - "lashed industry id": { - "type": "integer", - }, - "lashed location": { - "type": "string", - }, - "lashed sector": { - "type": "string", - }, - "lashed sector id": { - "type": "integer", - }, - "locale": { - "type": "string", - }, - "locked state": { - "type": "string", - }, - "module type": { - "type": "string", - }, - "onetrust groups": { - "type": "string", - }, - "page content type": { - "type": "string", - }, - "page group": { - "type": "string", - }, - "page title": { - "type": "string", - }, - "page url minus query": { - "type": "string", - }, - "platform type id": { - "type": "integer", - }, - "profile id": { - "type": "integer", - }, - "referrer data": { - "properties": { - "currentPageAbstract": { - "type": "string", - }, - "currentPageFull": { - "type": "string", - }, - "currentPageRollup": { - "type": "string", - }, - }, - "required": [ - "currentPageRollup", - "currentPageAbstract", - "currentPageFull", - ], - "type": "object", - }, - "responsive design breakpoint": { - "type": "string", - }, - "rollup url": { - "type": "string", - }, - "untranslated url": { - "type": "string", - }, - "user agent string": { - "type": "string", - }, - "view type id": { - "type": "integer", - }, - }, - "required": [ - "module type", - "hostname", - "rollup url", - "abstract url", - "full page url", - "event origin", - "gtm container id", - "gtm container version", - "page url minus query", - "lashed employer", - "lashed employer id", - "lashed location", - "lashed industry", - "lashed industry id", - "lashed sector", - "lashed sector id", - "locale", - "user agent string", - "asid - raw", - "asid - clean", - "asid - gdGlobals", - "dos2 a/b test id list", - "dos2 a/b test treatment list", - "responsive design breakpoint", - "locked state", - "document referrer", - "domain id", - "engaged employer status", - "untranslated url", - "guid - event", - "page group", - "page title", - "page content type", - "history length", - "ip location id", - "ip location type", - "onetrust groups", - "platform type id", - "device type id", - "view type id", - "referrer data", - "java enabled", - "profile id", - ], - "type": "object", - }, - "sentAt": { - "type": "string", - }, - "type": { - "type": "string", - }, - "userId": { - "type": "string", - }, - }, - "required": [ - "channel", - "context", - "type", - "messageId", - "originalTimestamp", - "anonymousId", - "userId", - "event", - "properties", - "integrations", - "sentAt", - ], - "type": "object", - }, - "requestHeaders": { - "properties": { - ":method": { - "type": "string", - }, - ":path": { - "type": "string", - }, - ":scheme": { - "type": "string", - }, - "accept": { - "type": "string", - }, - "accept-encoding": { - "type": "string", - }, - "accept-language": { - "type": "string", - }, - "anonymousid": { - "type": "string", - }, - "authorization": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - }, - "required": [ - ":method", - ":path", - ":scheme", - "accept", - "accept-encoding", - "accept-language", - "anonymousid", - "authorization", - "content-length", - "content-type", - ], - "type": "object", - }, - "responseBody": { - "properties": { - "foo": { - "type": "string", - }, - }, - "required": [ - "foo", - ], - "type": "object", - }, - "responseHeaders": { - "properties": { - "access-control-expose-headers": { - "type": "string", - }, - "content-length": { - "type": "string", - }, - "content-type": { - "type": "string", - }, - "date": { - "type": "string", - }, - "server": { - "type": "string", - }, - "vary": { - "type": "string", - }, - }, - "required": [ - "access-control-expose-headers", - "content-length", - "content-type", - "date", - "server", - "vary", - ], - "type": "object", - }, - }, - }, - }, - "pathname": "/v1/track", - }, - "parts": [ - { - "part": "1", - "type": 0, - }, - { - "part": "2", - "type": 0, - }, - { - "part": "3", - "type": 0, - }, - { - "part": ":param4", - "type": 1, - }, - { - "part": "param5", - "type": 0, - }, - { - "part": "a", - "type": 0, - }, - { - "part": ":param7", - "type": 1, - }, - { - "part": "b", - "type": 0, - }, - ], - }, -] -`; diff --git a/src/lib/store-helpers/authentication-headers.test.ts b/src/lib/store-helpers/authentication-headers.test.ts deleted file mode 100644 index 9568194..0000000 --- a/src/lib/store-helpers/authentication-headers.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { it, expect } from "vitest"; -import type { Entry } from 'har-format'; -import { defaultAuthHeaders } from "../../utils/headers"; -import { parseAuthHeaders } from "./authentication-headers"; -import { AuthType } from "../../utils/types"; - -const setupHeaders = () => { - type H = Entry["request"]["headers"]; - let headers: H = defaultAuthHeaders.map((name) => ({ name, value: "123" })); - - // Duplicate headers should resolve to a single auth header, case insensitive - const upperCase = headers.map((h) => ({ - name: h.name.toUpperCase(), - value: h.value, - })); - const lowerCase = headers.map((h) => ({ - name: h.name.toLowerCase(), - value: h.value, - })); - headers = [...headers, ...upperCase, ...lowerCase]; - - // Add a header that should be ignored - headers.push({ name: "x-something-else", value: "123" }); - return headers; -}; - -it("extracts api key names from headers", () => { - const headers = setupHeaders(); - const result = parseAuthHeaders(headers); - expect(result).toEqual( - defaultAuthHeaders.map((name) => ({ - authType: AuthType.APIKEY_HEADER_ + name.toUpperCase(), - name: name.toUpperCase(), - type: "apiKey", - in: "header", - description: "", - })) - ); -}); - -it("extracts api key names from cookies", () => { - const headers = setupHeaders(); - const cookieidx = headers.findIndex((h) => h.name.toUpperCase() === "COOKIE"); - headers[cookieidx] = { - name: "cookie", - value: "foo=bar; equation=E%3Dmc%5E2; sessionid=123", - }; - const result = parseAuthHeaders(headers); - const cookieResults = result.filter((api) => - api.authType.startsWith(AuthType.APIKEY_COOKIE_) - ); - expect(cookieResults).toEqual([ - { - authType: AuthType.APIKEY_COOKIE_ + "SESSIONID", - description: "", - in: "cookie", - name: "sessionid", - type: "apiKey", - } - ]); -}); diff --git a/src/lib/store-helpers/authentication-headers.ts b/src/lib/store-helpers/authentication-headers.ts deleted file mode 100644 index d3c6583..0000000 --- a/src/lib/store-helpers/authentication-headers.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { Entry } from 'har-format'; -import { Authentication, AuthType } from "../../utils/types"; -import { isAuthHeader } from "../../utils/headers"; -import { parseHTTPAuthHeader, HTTP } from "./authentication-http"; -import cookie from "cookie"; - -const AUTHORIZATION = "AUTHORIZATION"; -const COOKIE = "COOKIE"; - -/** - * Helpers and utilities for endpoint Authentication details - * Modelled on a Security Scheme Object https://spec.openapis.org/oas/v3.1.0#security-scheme-object - */ -export interface APIKeyAuth extends Authentication { - type: "apiKey"; - name: string; -} - -export interface APIKeyAuthHeader extends APIKeyAuth { - in: "header"; -} - -export interface APIKeyAuthCookie extends APIKeyAuth { - in: "cookie"; -} - -export type APIKey = APIKeyAuthHeader | APIKeyAuthCookie; - -// Include cookie keys as api keys when they contain a string below -const cookieSecurityNames = ["token", "session", "id", "jwt", "auth", "cookie", "key", "api"]; - -const parseAPIKeyAuthCookie = (cookieStr: string): Array => { - const cookies = cookie.parse(cookieStr); - const filteredSecurityNames = Object.keys(cookies).filter((cookieKey) => cookieSecurityNames.some(str => cookieKey.toLowerCase().includes(str))); - return filteredSecurityNames.map((cookieKey) => { - const lowerName = cookieKey.toLowerCase(); - const upperName = cookieKey.toUpperCase(); - return { - authType: AuthType.APIKEY_COOKIE_ + upperName, - name: lowerName, - type: "apiKey", - in: "cookie", - description: "", - }; - }); -}; - -type OpenAPIAuth = APIKey | HTTP; - -/** - * Extract all auth info from request headers - */ -export const parseAuthHeaders = ( - headers: Entry["request"]["headers"] -): Array => { - const visited = new Set(); - let results: Array = []; - for (const header of headers) { - const upperName = header.name.toUpperCase(); - const isAPIKey = isAuthHeader(upperName); - const wasVisited = visited.has(upperName); - // Type: http, in: header - if (upperName === AUTHORIZATION && !wasVisited) { - const httpAuth = parseHTTPAuthHeader(header.value); - if (httpAuth) results.push(httpAuth); - } - // Type: apiKey, in: cookie - if (upperName === COOKIE && !wasVisited) { - results = results.concat(parseAPIKeyAuthCookie(header.value)); - } - // Type: apiKey, in: header - if (isAPIKey && !wasVisited) { - visited.add(upperName); - const apiKey: APIKeyAuthHeader = { - authType: AuthType.APIKEY_HEADER_ + upperName, - name: upperName, - type: "apiKey", - in: "header", - description: "", - }; - results.push(apiKey); - } - } - return results; -}; diff --git a/src/lib/store-helpers/authentication-http.test.ts b/src/lib/store-helpers/authentication-http.test.ts deleted file mode 100644 index 4d3888c..0000000 --- a/src/lib/store-helpers/authentication-http.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { it, expect } from "vitest"; -import type { Entry } from 'har-format'; -import { parseHTTPAuthHeader } from "./authentication-http"; - -it("identifies basic auth", () => { - const header: Entry["request"]["headers"][0] = { - name: "Authorization", - value: "Basic 1234", - }; - const result = parseHTTPAuthHeader(header.value); - expect(result).toEqual({ - description: "", - authType: "Basic", - in: "header", - scheme: "Basic", - type: "http", - }); -}); - -it("identifies bearer auth", () => { - const header: Entry["request"]["headers"][0] = { - name: "Authorization", - value: "Bearer 1234", - }; - const result = parseHTTPAuthHeader(header.value); - expect(result).toEqual({ - description: "", - authType: "Bearer", - in: "header", - scheme: "Bearer", - type: "http", - }); -}); - -it("identifies digest auth", () => { - const header: Entry["request"]["headers"][0] = { - name: "Authorization", - value: "Digest 1234", - }; - const result = parseHTTPAuthHeader(header.value); - expect(result).toEqual({ - description: "", - authType: "Digest", - in: "header", - scheme: "Digest", - type: "http", - }); -}); diff --git a/src/lib/store-helpers/authentication-http.ts b/src/lib/store-helpers/authentication-http.ts deleted file mode 100644 index be04b68..0000000 --- a/src/lib/store-helpers/authentication-http.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Authentication, AuthType } from "../../utils/types"; -import { getAuthType } from "./authentication"; - -/** - * Helpers and utilities for endpoint Authentication details - * Modelled on a Security Scheme Object https://spec.openapis.org/oas/v3.1.0#security-scheme-object - */ -export interface HTTPAuth extends Authentication { - type: "http"; -} - -export interface BearerAuthHeader extends HTTPAuth { - scheme: "Bearer"; - in: "header"; -} - -export interface BasicAuthHeader extends HTTPAuth { - scheme: "Basic"; - in: "header"; -} - -export interface DigestAuthHeader extends HTTPAuth { - scheme: "Digest"; - in: "header"; -} - -export type HTTP = - | DigestAuthHeader - | BasicAuthHeader - | BearerAuthHeader; - -export const parseHTTPAuthHeader = (value: string): HTTP | undefined => { - const authType = getAuthType(value); - if (authType === "basic") { - const basicAuth: BasicAuthHeader = { - authType: AuthType.HTTP_HEADER_BASIC, - type: "http", - in: "header", - scheme: "Basic", - description: "", - }; - return basicAuth; - } else if (authType === "bearer") { - const bearerAuth: BearerAuthHeader = { - authType: AuthType.HTTP_HEADER_BEARER, - type: "http", - in: "header", - scheme: "Bearer", - description: "", - }; - return bearerAuth; - } else if (authType === "digest") { - const digestAuth: DigestAuthHeader = { - authType: AuthType.HTTP_HEADER_DIGEST, - type: "http", - in: "header", - scheme: "Digest", - description: "", - }; - return digestAuth; - } -}; diff --git a/src/lib/store-helpers/authentication.ts b/src/lib/store-helpers/authentication.ts deleted file mode 100644 index fe6e71d..0000000 --- a/src/lib/store-helpers/authentication.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { isEmpty } from "lodash"; -import { Leaf } from "../../utils/types"; -import { parseAuthHeaders } from "./authentication-headers"; -import type { Entry } from 'har-format'; - -export const getAuthType = (auth: string) => { - const split = auth.split(" "); - if (!split.length) return ""; - return split[0].toLowerCase(); -}; - -type DetermineAuthFromHAR = ( - harRequest: Entry -) => Leaf["authentication"] | undefined; -const determineAuthFromHAR: DetermineAuthFromHAR = (harRequest) => { - const finalAuth: Leaf["authentication"] = {}; - const authItems = parseAuthHeaders(harRequest.request.headers); - authItems.forEach((auth) => { - finalAuth[auth.authType] = auth; - }); - if (isEmpty(finalAuth)) return; - return finalAuth; -}; - -export default determineAuthFromHAR; diff --git a/src/lib/store-helpers/create-leaf.test.ts b/src/lib/store-helpers/create-leaf.test.ts deleted file mode 100644 index 2c078be..0000000 --- a/src/lib/store-helpers/create-leaf.test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { it, expect } from "vitest"; -import { defaultOptions } from "./persist-options"; -import postJson from "../__fixtures__/post-application-json"; -import postXWWWFormUrlEncoded from "../__fixtures__/post-application-x-www-form-urlencoded"; -import createLeaf, { Params } from "./create-leaf"; - -it("creates a leaf when request mime = application/x-www-form-urlencoded", () => { - const harRequest = postXWWWFormUrlEncoded; - const responseBody: Params["responseBody"] = { test: 1 }; - const options = defaultOptions; - const leaf = createLeaf({ harRequest, responseBody, options }); - expect(leaf).toEqual({ - pathname: "/post", - methods: { - POST: { - "200": { - request: { - "application/x-www-form-urlencoded": { - body: { - type: "object", - properties: { - custname: { - type: "string", - }, - custtel: { - type: "string", - }, - custemail: { - type: "string", - }, - size: { - type: "string", - }, - topping: { - type: "string", - }, - delivery: { - type: "string", - }, - comments: { - type: "string", - }, - }, - required: [ - "custname", - "custtel", - "custemail", - "size", - "topping", - "delivery", - "comments", - ], - }, - }, - }, - requestHeaders: undefined, - response: { - "application/json": { - body: { - type: "object", - properties: { - test: { - type: "integer", - }, - }, - required: ["test"], - }, - }, - }, - responseHeaders: undefined, - queryParameters: undefined, - }, - }, - }, - }); -}); - -it("creates a leaf when mime = application/json for req and res", () => { - const harRequest = postJson; - const responseBody: Params["responseBody"] = { test: 1 }; - const options = defaultOptions; - const leaf = createLeaf({ harRequest, responseBody, options }); - expect(leaf).toEqual({ - pathname: "/v1/track", - methods: { - POST: { - "200": { - request: { - "application/json": { - body: { - type: "object", - properties: { - test: { - type: "string", - }, - }, - required: ["test"], - }, - }, - }, - requestHeaders: { - type: "object", - properties: { - anonymousid: { - type: "string", - }, - }, - required: ["anonymousid"], - }, - response: { - "application/json": { - body: { - type: "object", - properties: { - test: { - type: "integer", - }, - }, - required: ["test"], - }, - }, - }, - responseHeaders: undefined, - queryParameters: { - type: "object", - properties: { - alt: { - type: "string", - }, - key: { - type: "string", - }, - }, - required: ["alt", "key"], - }, - }, - }, - }, - }); -}); diff --git a/src/lib/store-helpers/create-leaf.ts b/src/lib/store-helpers/create-leaf.ts deleted file mode 100644 index 42905e1..0000000 --- a/src/lib/store-helpers/create-leaf.ts +++ /dev/null @@ -1,76 +0,0 @@ -import decodeUriComponent from "decode-uri-component"; -import { - createSchemaElseUndefined, - entriesToJSONType, - parseJSON, -} from "../../utils/helpers"; -import { JSONType, Leaf } from "../../utils/types"; -import determineAuthFromHAR from "./authentication"; -import { filterIgnoreHeaders } from "../../utils/headers"; -import type { Options } from "../RequestStore"; -import type { Entry } from "har-format"; -import qs from 'fast-querystring'; - -const APPLICATION_JSON = "application/json"; -const APPLICATION_X_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded"; - -export type Params = { - harRequest: Entry; - responseBody: JSONType; - options: Options; -}; - -const parseRequestBody = (harRequest: Entry): JSONType => { - const { mimeType, text } = harRequest.request.postData || {}; - if (mimeType === APPLICATION_JSON) return parseJSON(text); - else if (mimeType === APPLICATION_X_WWW_FORM_URLENCODED && text) return qs.parse(text) as JSONType; - return null; -}; - -function createLeaf({ harRequest, responseBody, options }: Params): Leaf { - const { enableMoreInfo } = options; - const authentication = determineAuthFromHAR(harRequest); - harRequest.request.headers = filterIgnoreHeaders(harRequest.request.headers); - harRequest.response.headers = filterIgnoreHeaders( - harRequest.response.headers - ); - const method = harRequest.request.method; - const statusCode = harRequest.response.status.toString(); - const requestMime = harRequest.request.postData?.mimeType; - const responseMime = harRequest.response.content.mimeType; - const requestBody = parseRequestBody(harRequest); - const requestHeaders = entriesToJSONType(harRequest.request.headers); - const responseHeaders = entriesToJSONType(harRequest.response.headers); - const queryParameters = entriesToJSONType(harRequest.request.queryString); - const pathname = decodeUriComponent(new URL(harRequest.request.url).pathname); - const leafPart: Leaf = { - ...(authentication && { authentication }), - pathname, - methods: { - [method]: { - [statusCode]: { - ...(requestMime && { - request: { - [requestMime]: { - body: createSchemaElseUndefined(requestBody), - ...(enableMoreInfo && { mostRecent: requestBody }), - }, - }, - }), - requestHeaders: createSchemaElseUndefined(requestHeaders), - response: { - [responseMime]: { - body: createSchemaElseUndefined(responseBody), - ...(enableMoreInfo && { mostRecent: responseBody }), - }, - }, - responseHeaders: createSchemaElseUndefined(responseHeaders), - queryParameters: createSchemaElseUndefined(queryParameters), - }, - }, - }, - }; - return leafPart; -} - -export default createLeaf; diff --git a/src/lib/store-helpers/find-pathnames-in-router.ts b/src/lib/store-helpers/find-pathnames-in-router.ts deleted file mode 100644 index 3b2c908..0000000 --- a/src/lib/store-helpers/find-pathnames-in-router.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { RadixRouterContext, RadixNode } from "radix3"; -import { isParameter } from "./helpers"; -import { Leaf, RouteData } from "../../utils/types"; - -type PathnamesLeaves = Array<{ - pathname: string; - leaf: Leaf; -}>; - -const formatPathname = (parts: Array) => `/${parts.join("/").slice(1)}`; - -const recurse = ( - node: RadixNode, - parts: Array, - walked: Array = [] -): PathnamesLeaves => { - const pathnames: PathnamesLeaves = []; - if (!parts.length || !node.children.size) return pathnames; - const isLast = parts.length === 1; - const part = parts[0]; - const matchAny = isParameter(part); - - if (isLast) { - for (const [lastPart, child] of node.children.entries()) { - if (child.data) { - const value = { - pathname: formatPathname([...walked, lastPart]), - leaf: child.data.data as Leaf, - }; - pathnames.push(value); - } - } - } else if (matchAny) { - for (const [part, child] of node.children.entries()) { - pathnames.push(...recurse(child, parts.slice(1), [...walked, part])); - } - } else if (node.children.has(part)) { - const child = node.children.get(part)!; - pathnames.push(...recurse(child, parts.slice(1), [...walked, part])); - } - - return pathnames; -}; - -const findPathnamesInRouter = ( - routerCtx: RadixRouterContext, - path: string -): PathnamesLeaves => { - return recurse(routerCtx.rootNode, path.split("/")); -}; - -export default findPathnamesInRouter; diff --git a/src/lib/store-helpers/helpers.ts b/src/lib/store-helpers/helpers.ts deleted file mode 100644 index 306e5eb..0000000 --- a/src/lib/store-helpers/helpers.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { MatchedRoute } from "radix3"; -import { arrayToPath, getParamName, pathToArray } from "../../utils/helpers"; -import { Leaf, LeafMap, PartType, Parts, RouteData } from "../../utils/types"; - -const paramRe = /:param(\d+)/; -const paramReExact = /^:param(\d+)$/; - -export const isParameter = (path: string) => { - return paramReExact.test(path); -}; - -export const getParameterisedPath = ( - path: string, - matchedRoute: MatchedRoute -) => { - if (!matchedRoute?.params) return path; - const nextPath = pathToArray(path); - const paramNames = Object.keys(matchedRoute.params); - for (const paramName of paramNames) { - const position = Number(paramName.replace(paramRe, "$1")); - nextPath[position] = `:${paramName}`; - } - return arrayToPath(nextPath); -}; - -export const getNextPath = ( - index: number, - path: string, - matchedRoute: MatchedRoute -) => { - const pathParamaterised = getParameterisedPath(path, matchedRoute); - const nextPathArr = pathToArray(pathParamaterised); - nextPathArr[index] = getParamName(index); - const nextPath = arrayToPath(nextPathArr); - return nextPath; -}; - -export const insertLeafMap = ({ - leafMap, - leaf, - host, - path, -}: { - leafMap: LeafMap; - leaf: Leaf; - host: string; - path: string; -}) => { - if (!leafMap[host]) leafMap[host] = {}; - leafMap[host][path] = { data: leaf }; -}; - -const getPartType = (part: string): PartType => { - const re = /^:param\d+$/; - return re.test(part) ? PartType.Dynamic : PartType.Static; -}; - -export const pathToParts = (path: string): Parts => { - return pathToArray(path).map((part) => ({ - part, - type: getPartType(part), - })); -}; diff --git a/src/lib/store-helpers/index.ts b/src/lib/store-helpers/index.ts deleted file mode 100644 index e5a7375..0000000 --- a/src/lib/store-helpers/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export { default as createLeaf } from "./create-leaf"; -export { default as parameterise } from "./parameterise"; -export { default as leafMapToRouterMap } from "./leafmap-to-routermap"; -export { default as upsert } from "./upsert"; -export { default as findPathnamesInRouter } from "./find-pathnames-in-router"; -export { default as pruneRouter } from "./prune-router"; -export { default as persistOptions } from "./persist-options"; -export { default as determineAuthFromHAR } from "./authentication"; -export { default as remove } from "./remove"; -export * from "./merge"; -export * from "./helpers"; diff --git a/src/lib/store-helpers/leafmap-to-routermap.ts b/src/lib/store-helpers/leafmap-to-routermap.ts deleted file mode 100644 index 3467434..0000000 --- a/src/lib/store-helpers/leafmap-to-routermap.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { createRouter } from "radix3"; -import { LeafMap, RouterMap, RouteData } from "../../utils/types"; - -const leafMapToStore = (leafMap: LeafMap): RouterMap => { - const routerMap: RouterMap = {}; - Object.entries(leafMap).forEach(([host, routeData]) => { - const router = createRouter({ - routes: routeData, - }); - routerMap[host] = router; - }); - return routerMap; -}; - -export default leafMapToStore; diff --git a/src/lib/store-helpers/merge.test.ts b/src/lib/store-helpers/merge.test.ts deleted file mode 100644 index fd91035..0000000 --- a/src/lib/store-helpers/merge.test.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { it, expect } from "vitest"; -import { defaultOptions } from "./persist-options"; -import postJson from "../__fixtures__/post-application-json"; -import { mergeLeaves } from "./merge"; -import { JSONType } from "../../utils/types"; -import createLeaf from "./create-leaf"; -import { cloneDeep } from "lodash"; -import { Options } from "../RequestStore"; - -const setup = (options: Options) => { - const harRequest1 = postJson; - const harRequest2 = cloneDeep(postJson); - harRequest2.request.postData!.text = '{ "test": true }'; - const responseBody: JSONType = { test: 1 }; - const leaf1 = createLeaf({ harRequest: harRequest1, responseBody, options }); - const leaf2 = createLeaf({ harRequest: harRequest2, responseBody, options }); - const merged = mergeLeaves(leaf1, leaf2); - return merged; -}; - -it("merges leaves", () => { - const options = defaultOptions; - const result = setup(options); - expect(result).toEqual({ - pathname: "/v1/track", - methods: { - POST: { - "200": { - request: { - "application/json": { - body: { - type: "object", - properties: { - test: { - type: ["boolean", "string"], - }, - }, - required: ["test"], - }, - }, - }, - requestHeaders: { - type: "object", - properties: { - anonymousid: { - type: "string", - }, - }, - required: ["anonymousid"], - }, - response: { - "application/json": { - body: { - type: "object", - properties: { - test: { - type: "integer", - }, - }, - required: ["test"], - }, - }, - }, - responseHeaders: undefined, - queryParameters: { - type: "object", - properties: { - alt: { - type: "string", - }, - key: { - type: "string", - }, - }, - required: ["alt", "key"], - }, - }, - }, - }, - }); -}); - -it("sets mostRecentRequest and mostRecentResponse", () => { - const options = { ...defaultOptions, enableMoreInfo: true }; - const result = setup(options); - expect( - result.methods["POST"]["200"]["request"]!["application/json"].mostRecent - ).toEqual({ test: true }); - expect( - result.methods["POST"]["200"]["response"]!["application/json"].mostRecent - ).toEqual({ test: 1 }); -}); diff --git a/src/lib/store-helpers/merge.ts b/src/lib/store-helpers/merge.ts deleted file mode 100644 index f061711..0000000 --- a/src/lib/store-helpers/merge.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Schema, mergeSchemas } from "genson-js"; -import type { Leaf } from "../../utils/types"; - -type Data = Leaf["methods"]["get"]["200"]; -type Req = Leaf["methods"]["get"]["200"]["request"]; -type Res = Leaf["methods"]["get"]["200"]["response"]; -type Body = Leaf["methods"]["get"]["200"]["response"]['mediaType']; - -const mergeAuthentication = (dest: Leaf, src: Leaf): void => { - if (!src.authentication) return; - if (!dest.authentication) dest.authentication = {}; - Object.entries(src.authentication).forEach(([key, value]) => { - dest.authentication![key] = value; - }); -}; - -const mergeReqRes = ( - reqOrRes: "request" | "response", - dest: Data, - src: Req | Res -) => { - type Entries = Array<[string, Body]>; - (Object.entries(src!) as Entries).forEach(([mediaType, srcData]) => { - if (!srcData || !srcData.body) return; - if (!dest[reqOrRes]![mediaType]) { - dest[reqOrRes]![mediaType] = srcData; - } else { - dest[reqOrRes]![mediaType].body = mergeSchemas([ - dest[reqOrRes]![mediaType].body!, - srcData.body, - ]); - dest[reqOrRes]![mediaType].mostRecent = srcData.mostRecent; - } - }); -}; - -export const mergeLeaves = (dest: Leaf, src: Leaf): Leaf => { - mergeAuthentication(dest, src); - for (const [method, statusCodeObj] of Object.entries(src.methods)) { - if (!dest.methods[method]) { - dest.methods[method] = statusCodeObj; - continue; - } - for (const [statusCode, schemaObj] of Object.entries(statusCodeObj)) { - const destSchema = dest.methods[method][statusCode]; - if (!destSchema) { - dest.methods[method][statusCode] = schemaObj; - continue; - } - type DestSchemaEntries = Array< - [keyof typeof destSchema, Schema | Req | Res] - >; - for (const [key, schema] of Object.entries( - schemaObj - ) as DestSchemaEntries) { - if (key === "request") { - if (!destSchema.request) destSchema.request = {}; - mergeReqRes("request", destSchema, schema as Req); - } else if (key === "response") { - mergeReqRes("response", destSchema, schema as Res); - } else if (destSchema[key]) { - destSchema[key] = mergeSchemas([destSchema[key]!, schema as Schema]); - } else { - destSchema[key] = schema; - } - } - } - } - return dest; -}; diff --git a/src/lib/store-helpers/parameterise.ts b/src/lib/store-helpers/parameterise.ts deleted file mode 100644 index e183b24..0000000 --- a/src/lib/store-helpers/parameterise.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { unset } from "lodash"; -import { pathToArray } from "../../utils/helpers"; -import { Leaf, RouterMap } from "../../utils/types"; -import { remove, pruneRouter, findPathnamesInRouter, mergeLeaves, getNextPath } from "."; - -type Params = { - store: RouterMap; - host: string; - path: string; - index: number; -}; - -type Returns = { - removedPaths: Array; - insertedPath: string; - insertedLeaf: Leaf; -}; - -export default function parameterise({ - store, - index, - path, - host, -}: Params): Returns | null { - const removedPaths: Array = []; - const matchedLeaves: Array = []; - const router = store[host]; - if (!router) return null; - const matchedRoute = router.lookup(path); - if (!matchedRoute) return null; - const nextPath = getNextPath(index, path, matchedRoute); - const foundPathnames = findPathnamesInRouter(router.ctx, nextPath); - for (const found of foundPathnames) { - matchedLeaves.push(found.leaf); - removedPaths.push(found.pathname); - remove(router.ctx, found.pathname); - pruneRouter(router.ctx.rootNode, pathToArray(found.pathname)); - } - const mergedLeaf = matchedLeaves.reduce(mergeLeaves); - mergedLeaf.pathname = nextPath; - removedPaths.forEach((path) => unset(store[host].ctx.staticRoutesMap, path)); - unset(store[host].ctx.staticRoutesMap, nextPath); - router.insert(nextPath, { data: mergedLeaf }); - return { - removedPaths, - insertedPath: nextPath, - insertedLeaf: mergedLeaf, - }; -} diff --git a/src/lib/store-helpers/persist-options.ts b/src/lib/store-helpers/persist-options.ts deleted file mode 100644 index cf1c69d..0000000 --- a/src/lib/store-helpers/persist-options.ts +++ /dev/null @@ -1,33 +0,0 @@ -import store2 from "store2"; -import type { Options } from "../RequestStore"; - -const namespace = "openapi-devtools-options"; -const key = "options"; -const store = store2.namespace(namespace); - -export const defaultOptions: Readonly = { - enableMoreInfo: false, -}; - -const get = (): Options => { - const options = store.get(key); - if (options) return options; - store.set(key, defaultOptions); - return defaultOptions; -}; - -const set = (value: Partial): void => { - const options = get(); - const newOptions = { ...options, ...value }; - store.set(key, newOptions); -}; - -const clear = (): void => { - store.clear(); -}; - -export default { - get, - set, - clear, -}; diff --git a/src/lib/store-helpers/persist-store.ts b/src/lib/store-helpers/persist-store.ts deleted file mode 100644 index 360b587..0000000 --- a/src/lib/store-helpers/persist-store.ts +++ /dev/null @@ -1,15 +0,0 @@ -import store2 from "store2"; - -const namespace = "openapi-devtools"; - -const store = store2.namespace(namespace); - -const get = () => store.get(namespace); -const set = (value: unknown) => store.set(namespace, value); -const clear = () => store.clear(); - -export default { - get, - set, - clear, -}; diff --git a/src/lib/store-helpers/prune-router.ts b/src/lib/store-helpers/prune-router.ts deleted file mode 100644 index 6a63946..0000000 --- a/src/lib/store-helpers/prune-router.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { RadixNode } from "radix3"; -import { isParameter } from "./helpers"; -import { RouteData } from "../../utils/types"; - -/** - * When you remove an item in radix3, it only removes the data - * We need to remove the node itself so that lookups won't match with it - */ -const pruneRouter = ( - node: RadixNode, - parts: Array -): void => { - if (!parts.length || !node.children.size) return; - const isLast = parts.length === 1; - const part = parts[0]; - const matchAny = isParameter(part); - if (!matchAny && !node.children.has(part)) return; - if (!isLast) { - if (matchAny) { - for (const child of node.children.values()) { - pruneRouter(child, parts.slice(1)); - } - } else if (node.children.has(part)) { - const child = node.children.get(part)!; - if (child) { - pruneRouter(child, parts.slice(1)); - } - } - } - - const noChildren = node.children.get(part)?.children.size === 0; - const noData = !node.children.get(part)?.data; - if (noChildren && noData) { - node.children.delete(part); - } -}; - -const pruneRouterWrapper: typeof pruneRouter = (node, parts) => { - pruneRouter(node, ["", ...parts]); -}; - -export default pruneRouterWrapper; diff --git a/src/lib/store-helpers/remove.ts b/src/lib/store-helpers/remove.ts deleted file mode 100644 index 1a556ba..0000000 --- a/src/lib/store-helpers/remove.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { RadixRouterContext } from "radix3"; - - -// This can be removed when https://github.com/unjs/radix3/pull/73 is fixed -function remove(ctx: RadixRouterContext, path: string) { - let success = false; - const sections = path.split("/"); - let node = ctx.rootNode; - - for (const section of sections) { - // @ts-expect-error tempfile - node = node.children.get(section); - if (!node) { - return success; - } - } - - if (node.data) { - const lastSection = sections[-1]; - node.data = null; - if (node.children.size === 0) { - const parentNode = node.parent; - // @ts-expect-error tempfile - parentNode.children.delete(lastSection); - // @ts-expect-error tempfile - parentNode.wildcardChildNode = null; - // @ts-expect-error tempfile - parentNode.placeholderChildNode = null; - } - success = true; - } - - return success; -} - -export default remove; diff --git a/src/lib/store-helpers/upsert.ts b/src/lib/store-helpers/upsert.ts deleted file mode 100644 index 73fd231..0000000 --- a/src/lib/store-helpers/upsert.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { createRouter } from "radix3"; -import decodeUriComponent from "decode-uri-component"; -import { pathToArray } from "../../utils/helpers"; -import { JSONType, Leaf, RouterMap } from "../../utils/types"; -import createLeaf from "./create-leaf"; -import { mergeLeaves } from "./merge"; -import type { Options } from "../RequestStore"; -import type { Entry } from 'har-format'; - -type Params = { - harRequest: Entry; - responseBody: JSONType; - store: RouterMap; - options: Options; -}; - -type Returns = { - insertedPath: string; - insertedLeaf: Leaf; - insertedHost: string; -}; - -export default function upsert({ - harRequest, - responseBody, - store, - options, -}: Params): Returns | null { - const url = new URL(harRequest.request.url); - const { host } = url; - const pathname = decodeUriComponent(url.pathname); - const parts = pathToArray(pathname); - if (parts.length === 0) return null; - // Set the host on first visit - if (!store[host]) { - store[host] = createRouter(); - } - // Create or update the leaf - const insertLeaf = createLeaf({ harRequest, responseBody, options }); - const router = store[host]; - const matchedRoute = router.lookup(pathname); - const nextLeaf = matchedRoute - ? mergeLeaves(matchedRoute.data, insertLeaf) - : insertLeaf; - const parameterisedPath = matchedRoute?.data.pathname || pathname; - nextLeaf.pathname = parameterisedPath; - router.insert(parameterisedPath, { data: nextLeaf }); - return { - insertedPath: parameterisedPath, - insertedLeaf: nextLeaf, - insertedHost: host, - }; -} diff --git a/src/ui/Control.tsx b/src/ui/Control.tsx index fa6e357..d6bd9d0 100644 --- a/src/ui/Control.tsx +++ b/src/ui/Control.tsx @@ -1,6 +1,6 @@ import { FC, useState } from "react"; import classes from "./control.module.css"; -import { Status } from "../utils/types"; +import { Status } from "@andrew_walsh/openapi-spec-generator"; import { StartBtn, StopBtn, SettingsBtn, ClearBtn } from "./ControlButtons"; import ControlDrawer from "./ControlDrawer"; diff --git a/src/ui/ControlDynamic.tsx b/src/ui/ControlDynamic.tsx index c5f6fec..f28e92a 100644 --- a/src/ui/ControlDynamic.tsx +++ b/src/ui/ControlDynamic.tsx @@ -2,7 +2,7 @@ import { useContext, useMemo, useState } from "react"; import Context from "./context"; import { FixedSizeList as List } from "react-window"; import { Input } from "@chakra-ui/react"; -import { Endpoint, PartType } from "../utils/types"; +import { Endpoint, PartType } from "@andrew_walsh/openapi-spec-generator"; import classes from "./controlDynamic.module.css"; import { Wrap, WrapItem, Tooltip } from "@chakra-ui/react"; import Fuse from "fuse.js"; diff --git a/src/ui/Main.tsx b/src/ui/Main.tsx index 30506c4..7416215 100644 --- a/src/ui/Main.tsx +++ b/src/ui/Main.tsx @@ -1,16 +1,20 @@ import { useState, useCallback, useEffect } from "react"; import { OpenAPIObject } from "openapi3-ts/oas31"; import { RedocStandalone } from "redoc"; -import type RequestStore from "../lib/RequestStore"; +import RequestStore, { + endpointsToOAI31, + Endpoint, + EndpointsByHost, + JSONType, + Status, +} from "@andrew_walsh/openapi-spec-generator"; import requestStore from "./helpers/request-store"; import { isValidRequest, parseJSON, safelyGetURLHost } from "../utils/helpers"; -import { EndpointsByHost, Endpoint, JSONType, Status } from "../utils/types"; import Context from "./context"; import Control from "./Control"; import Start from "./Start"; import classes from "./main.module.css"; -import endpointsToOAI31 from "../lib/endpoints-to-oai31"; -import { sortEndpoints } from './helpers/endpoints-by-host'; +import { sortEndpoints } from "./helpers/endpoints-by-host"; import { isEmpty } from "lodash"; import decodeUriComponent from "decode-uri-component"; @@ -28,11 +32,13 @@ function Main() { const requestFinishedHandler = useCallback( (harRequest: chrome.devtools.network.Request) => { async function getCurrentTab() { - if (!await isValidRequest(harRequest)) return; + if (!(await isValidRequest(harRequest))) return; try { harRequest.getContent((content) => { try { - harRequest.request.url = decodeUriComponent(harRequest.request.url); + harRequest.request.url = decodeUriComponent( + harRequest.request.url + ); const responseBody: JSONType = parseJSON(content); requestStore.insert(harRequest, responseBody); setSpecEndpoints(); @@ -159,10 +165,9 @@ function Main() { sortPropsAlphabetically: true, hideLoading: true, nativeScrollbars: true, - downloadFileName: 'openapi-devtools-spec.json', + downloadFileName: "openapi-devtools-spec.json", expandDefaultServerVariables: false, expandSingleSchemaField: false, - }} /> diff --git a/src/ui/context.ts b/src/ui/context.ts index 6982462..48f7aa0 100644 --- a/src/ui/context.ts +++ b/src/ui/context.ts @@ -1,7 +1,5 @@ import { createContext } from "react"; -import RequestStore from "../lib/RequestStore"; -import { Endpoint, EndpointsByHost } from "../utils/types"; -import { defaultOptions } from "../lib/store-helpers/persist-options"; +import RequestStore, { defaultOptions, Endpoint, EndpointsByHost } from "@andrew_walsh/openapi-spec-generator"; type ContextType = { endpoints: Endpoint[]; @@ -27,7 +25,7 @@ const defaultContextValue: ContextType = { setDisabledHosts: () => {}, parameterise: () => {}, import: () => false, - export: () => '', + export: () => "", options: () => defaultOptions, }; diff --git a/src/ui/helpers/endpoints-by-host.ts b/src/ui/helpers/endpoints-by-host.ts index 38cb15e..47e02b2 100644 --- a/src/ui/helpers/endpoints-by-host.ts +++ b/src/ui/helpers/endpoints-by-host.ts @@ -1,4 +1,4 @@ -import { Endpoint } from "../../utils/types"; +import type { Endpoint } from "@andrew_walsh/openapi-spec-generator"; const compareEndpoints = (e1: Endpoint, e2: Endpoint) => { const re = /:param\d+/g; diff --git a/src/ui/helpers/request-store.ts b/src/ui/helpers/request-store.ts index d967de3..a2408f2 100644 --- a/src/ui/helpers/request-store.ts +++ b/src/ui/helpers/request-store.ts @@ -1,4 +1,4 @@ -import RequestStore from "../../lib/RequestStore"; +import RequestStore from "@andrew_walsh/openapi-spec-generator"; const requestStore = new RequestStore(); diff --git a/src/utils/constants.ts b/src/utils/constants.ts deleted file mode 100644 index dc94c18..0000000 --- a/src/utils/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -const DEFAULT_PARAM_PREFIX = ':' -export const DEFAULT_PARAM_NAME = `${DEFAULT_PARAM_PREFIX}param`; diff --git a/src/utils/headers.ts b/src/utils/headers.ts deleted file mode 100644 index d515f73..0000000 --- a/src/utils/headers.ts +++ /dev/null @@ -1,242 +0,0 @@ -import type { Entry } from "har-format"; - -// Copied from har-to-openapi https://github.com/jonluca/har-to-openapi -const ignoreTheseHeaders = [ - ":authority", - ":method", - ":path", - ":scheme", - ":status", - "a-im", - "accept-additions", - "accept-ch-lifetime", - "accept-ch", - "accept-charset", - "accept-datetime", - "accept-encoding", - "accept-features", - "accept-language", - "accept-patch", - "accept-post", - "accept-ranges", - "accept", - "access-control-allow-credentials", - "access-control-allow-headers", - "access-control-allow-methods", - "access-control-allow-origin", - "access-control-expose-headers", - "access-control-max-age", - "access-control-request-headers", - "access-control-request-method", - "age", - "allow", - "alpn", - "alt-svc", - "alternate-protocol", - "alternates", - "amp-access-control-allow-source-origin", - "apply-to-redirect-ref", - "authentication-info", - "authorization", - "c-ext", - "c-man", - "c-opt", - "c-pep-info", - "c-pep", - "cache-control", - "ch", - "connection", - "content-base", - "content-disposition", - "content-dpr", - "content-encoding", - "content-id", - "content-language", - "content-length", - "content-location", - "content-md5", - "content-range", - "content-script-type", - "content-security-policy-report-only", - "content-security-policy", - "content-style-type", - "content-type", - "content-version", - "cross-origin-resource-policy", - "dasl", - "date", - "dav", - "default-style", - "delta-base", - "depth", - "derived-from", - "destination", - "differential-id", - "digest", - "dnt", - "dpr", - "encryption-key", - "encryption", - "etag", - "expect-ct", - "expect", - "expires", - "ext", - "forwarded", - "from", - "front-end-https", - "getprofile", - "host", - "http2-settings", - "if-match", - "if-modified-since", - "if-none-match", - "if-range", - "if-schedule-tag-match", - "if-unmodified-since", - "if", - "im", - "keep-alive", - "key", - "label", - "last-event-id", - "last-modified", - "link-template", - "link", - "location", - "lock-token", - "man", - "max-forwards", - "md", - "meter", - "mime-version", - "negotiate", - "nice", - "opt", - "ordering-type", - "origin-trial", - "origin", - "overwrite", - "p3p", - "pep-info", - "pep", - "pics-label", - "poe-links", - "poe", - "position", - "pragma", - "prefer", - "preference-applied", - "profileobject", - "protocol-info", - "protocol-query", - "protocol-request", - "protocol", - "proxy-authenticate", - "proxy-authentication-info", - "proxy-authorization", - "proxy-connection", - "proxy-features", - "proxy-instruction", - "public", - "range", - "redirect-ref", - "referer", - "referrer-policy", - "report-to", - "retry-after", - "rw", - "safe", - "save-data", - "schedule-reply", - "schedule-tag", - "sec-ch-ua-mobile", - "sec-ch-ua-platform", - "sec-ch-ua", - "sec-fetch-dest", - "sec-fetch-mode", - "sec-fetch-site", - "sec-fetch-user", - "sec-websocket-accept", - "sec-websocket-extensions", - "sec-websocket-key", - "sec-websocket-protocol", - "sec-websocket-version", - "security-scheme", - "server-timing", - "server", - "set-cookie", - "set-cookie2", - "setprofile", - "slug", - "soapaction", - "status-uri", - "strict-transport-security", - "sunset", - "surrogate-capability", - "surrogate-control", - "tcn", - "te", - "timeout", - "timing-allow-origin", - "tk", - "trailer", - "transfer-encoding", - "upgrade-insecure-requests", - "upgrade", - "uri", - "user-agent", - "variant-vary", - "vary", - "via", - "want-digest", - "warning", - "www-authenticate", - "x-att-deviceid", - "x-csrf-token", - "x-forwarded-for", - "x-forwarded-host", - "x-forwarded-proto", - "x-frame-options", - "x-frontend", - "x-http-method-override", - "x-powered-by", - "x-request-id", - "x-requested-with", - "x-uidh", - "x-wap-profile", - "x-xss-protection", -] as const; -const headersToIgnore = new Set(ignoreTheseHeaders); - -export const filterIgnoreHeaders = (headers: Entry["request"]["headers"]) => { - return headers.filter(({ name }) => { - return !headersToIgnore.has(name.toLowerCase()); - }); -}; - -export const defaultAuthHeaders = [ - "access-key", - "access-token", - "api-key", - "apikey", - "auth-token", - "authorization-token", - "authorization", - "cookie", - "key", - "secret", - "token", - "x-access-token", - "x-api-key", - "x-auth-token", - "x-auth", - "x-csrf-token", - "x-secret", -] as const; - -export const authHeaders = new Set(defaultAuthHeaders); - -export const isAuthHeader = (header: string) => { - return authHeaders.has(header.toLowerCase()); -}; diff --git a/src/utils/helpers.ts b/src/utils/helpers.ts index 09472df..ca12c81 100644 --- a/src/utils/helpers.ts +++ b/src/utils/helpers.ts @@ -1,6 +1,5 @@ import { Schema, createSchema } from "genson-js"; -import { JSONType } from "./types"; -import { DEFAULT_PARAM_NAME } from "./constants"; +import { JSONType, DEFAULT_PARAM_NAME } from "@andrew_walsh/openapi-spec-generator"; const isGraphQLURI = (url: string): boolean => url.toLowerCase().endsWith("graphql"); diff --git a/src/utils/types.ts b/src/utils/types.ts deleted file mode 100644 index 143e7d5..0000000 --- a/src/utils/types.ts +++ /dev/null @@ -1,105 +0,0 @@ -import type { Schema } from "genson-js"; -import { SecuritySchemeType } from "openapi3-ts/oas31"; -import type { RadixRouter } from "radix3"; - -export type JSONType = - | string - | number - | boolean - | null - | { [key: string]: JSONType } - | Array; - -// Unique identifier for each type of authentication, aligned to oai31 -export enum AuthType { - HTTP_HEADER_BEARER = "Bearer", - HTTP_HEADER_BASIC = "Basic", - HTTP_HEADER_DIGEST = "Digest", - APIKEY_HEADER_ = "APIKEY_HEADER_", - APIKEY_COOKIE_ = "APIKEY_COOKIE_", -} - -// Can be dynamic e.g. APIKEY_HEADER_ + name -export type AuthTypeString = AuthType | string; - -// Modelled on a Security Scheme Object https://spec.openapis.org/oas/v3.1.0#security-scheme-object -export interface Authentication { - // So there is a straightforward way of identifying the type - authType: AuthTypeString; - // One of: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect' - type: SecuritySchemeType; - // Could potentially generate some form of description from token values - description?: string; - // The name of the header, query or cookie parameter to be used. Used only with apiKey - name?: string; - // The location of the API key, "query", "header" or "cookie" - in: "query" | "header" | "cookie"; - // A valid HTTP auth scheme defined in RFC9110. Only used when type = http - scheme?: "Basic" | "Bearer" | "Digest"; -} - -// A Leaf stores data about an endpoint -export type Leaf = { - // Name is based on authType, which should be unique per authentication variant - authentication?: { - [name: AuthTypeString]: Authentication; - }; - // The current pathname of this endpoint, which may be static or parameterised - pathname: string; - // Methods such as GET, POST and schema values for requests - methods: { - [method: string]: { - [statusCode: string]: { - // Requests may not contain a body - request?: { - // mediaType is a a mime type such as application/json - [mediaType: string]: { - body?: Schema; - // Sample of the most recent request - mostRecent?: unknown; - }; - }; - requestHeaders?: Schema; - response: { - [mediaType: string]: { - body?: Schema; - // Sample of the most recent response - mostRecent?: unknown; - }; - }; - responseHeaders?: Schema; - queryParameters?: Schema; - }; - }; - }; -}; - -export enum PartType { - Static, - Dynamic, -} -export type Parts = Array<{ part: string; type: PartType }>; -// An Endpoint wraps a Leaf with additional data. Used as an intermediary step to simplify conversion into OAI. -export type Endpoint = { - // A host e.g. example.com - host: string; - // The full path including parameters, such as /1/:param1/:param2/4 - pathname: string; - // An array of parts such as 1, 2, and 3 in /1/2/3. Includes their type, static or dynamic (parameter) - parts: Parts; - // Data for this endpoint - data: Leaf; -}; - -export enum Status { - INIT, - RECORDING, - STOPPED, -} - -export type RouteData = { data: Leaf }; -type Router = RadixRouter; -export type RouterMap = { [host: string]: Router }; -export type LeafMap = { [host: string]: Record }; - -export type EndpointsByHost = Array<{ endpoints: Endpoint[]; host: string }>;