diff --git a/.eslintignore b/.eslintignore index 6f90512..c894ae4 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,3 @@ -commitlint.config.js -prettier.config.js -rspack.*.js \ No newline at end of file +commitlint.config.cjs +prettier.config.cjs +vite.*.js \ No newline at end of file diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 100% rename from commitlint.config.js rename to commitlint.config.cjs diff --git a/index.html b/index.html index 81bbb47..8553886 100644 --- a/index.html +++ b/index.html @@ -19,6 +19,7 @@
+ \ No newline at end of file diff --git a/package.json b/package.json index 3673e92..6bfe023 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,11 @@ "version": "0.0.1", "description": "canvas image text editor", "main": "index.js", + "type": "module", "scripts": { - "start": "rspack serve -c ./rspack.dev.js", + "start": "vite", "test": "jest", - "build": "npx rspack build -c ./rspack.prod.js", + "build": "vite build", "lint": "eslint src/", "prepare": "husky install" }, @@ -28,13 +29,15 @@ "devDependencies": { "@commitlint/cli": "^17.4.1", "@commitlint/config-conventional": "^17.4.0", - "@rspack/cli": "^0.7.5", "@soda/friendly-errors-webpack-plugin": "^1.8.1", "@svgr/webpack": "^8.1.0", "@types/jest": "^29.5.12", "@types/react": "^18.3.2", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.0.0", + "@vitejs/plugin-react": "^4.3.1", + "browserslist": "^4.23.2", + "browserslist-to-esbuild": "^2.1.1", "css-loader": "^6.8.1", "eslint": "^8.31.0", "eslint-config-airbnb-base": "^15.0.0", @@ -46,8 +49,9 @@ "jest": "^29.7.0", "lint-staged": "^14.0.1", "prettier": "2.8.2", - "style-loader": "^3.3.3", "typescript": "^4.9.4", + "vite": "^5.3.4", + "vite-plugin-svgr": "^4.2.0", "webpack-merge": "^5.9.0", "webpackbar": "^5.0.2" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92a0d34..8dfec39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,9 +43,6 @@ devDependencies: '@commitlint/config-conventional': specifier: ^17.4.0 version: 17.4.0 - '@rspack/cli': - specifier: ^0.7.5 - version: 0.7.5(@rspack/core@0.7.5)(webpack@5.76.0) '@soda/friendly-errors-webpack-plugin': specifier: ^1.8.1 version: 1.8.1(webpack@5.76.0) @@ -64,6 +61,15 @@ devDependencies: '@typescript-eslint/parser': specifier: ^5.0.0 version: 5.0.0(eslint@8.31.0)(typescript@4.9.4) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.3.4) + browserslist: + specifier: ^4.23.2 + version: 4.23.2 + browserslist-to-esbuild: + specifier: ^2.1.1 + version: 2.1.1(browserslist@4.23.2) css-loader: specifier: ^6.8.1 version: 6.8.1(webpack@5.76.0) @@ -97,12 +103,15 @@ devDependencies: prettier: specifier: 2.8.2 version: 2.8.2 - style-loader: - specifier: ^3.3.3 - version: 3.3.4(webpack@5.76.0) typescript: specifier: ^4.9.4 version: 4.9.4 + vite: + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.3.1) + vite-plugin-svgr: + specifier: ^4.2.0 + version: 4.2.0(vite@5.3.4) webpack-merge: specifier: ^5.9.0 version: 5.9.0 @@ -187,7 +196,7 @@ packages: dependencies: '@babel/compat-data': 7.24.4 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -290,6 +299,11 @@ packages: resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} + /@babel/helper-plugin-utils@7.24.8: + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} @@ -1075,6 +1089,26 @@ packages: '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) dev: true + /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.5): + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.5): + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} @@ -1581,10 +1615,212 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.9 - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@eslint/eslintrc@1.4.1: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} @@ -1905,34 +2141,6 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - dev: true - - /@module-federation/runtime-tools@0.1.6: - resolution: {integrity: sha512-7ILVnzMIa0Dlc0Blck5tVZG1tnk1MmLnuZpLOMpbdW+zl+N6wdMjjHMjEZFCUAJh2E5XJ3BREwfX8Ets0nIkLg==} - dependencies: - '@module-federation/runtime': 0.1.6 - '@module-federation/webpack-bundler-runtime': 0.1.6 - dev: true - - /@module-federation/runtime@0.1.6: - resolution: {integrity: sha512-nj6a+yJ+QxmcE89qmrTl4lphBIoAds0PFPVGnqLRWflwAP88jrCcrrTqRhARegkFDL+wE9AE04+h6jzlbIfMKg==} - dependencies: - '@module-federation/sdk': 0.1.6 - dev: true - - /@module-federation/sdk@0.1.6: - resolution: {integrity: sha512-qifXpyYLM7abUeEOIfv0oTkguZgRZuwh89YOAYIZJlkP6QbRG7DJMQvtM8X2yHXm9PTk0IYNnOJH0vNQCo6auQ==} - dev: true - - /@module-federation/webpack-bundler-runtime@0.1.6: - resolution: {integrity: sha512-K5WhKZ4RVNaMEtfHsd/9CNCgGKB0ipbm/tgweNNeC11mEuBTNxJ09Y630vg3WPkKv9vfMCuXg2p2Dk+Q/KWTSA==} - dependencies: - '@module-federation/runtime': 0.1.6 - '@module-federation/sdk': 0.1.6 - dev: true - /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1954,28 +2162,72 @@ packages: fastq: 1.15.0 dev: true - /@polka/url@1.0.0-next.23: - resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.18.1: + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.18.1: + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} + cpu: [arm64] + os: [android] + requiresBuild: true dev: true + optional: true - /@rspack/binding-darwin-arm64@0.7.5: - resolution: {integrity: sha512-mNBIm36s1BA7v4SL/r4f3IXIsjyH5CZX4eXMRPE52lBc3ClVuUB7d/8zk8dkyjJCMAj8PsZSnAJ3cfXnn7TN4g==} + /@rollup/rollup-darwin-arm64@4.18.1: + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rspack/binding-darwin-x64@0.7.5: - resolution: {integrity: sha512-teLK0TB1x0CsvaaiCopsFx4EvJe+/Hljwii6R7C9qOZs5zSOfbT/LQ202eA0sAGodCncARCGaXVrsekbrRYqeA==} + /@rollup/rollup-darwin-x64@4.18.1: + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rspack/binding-linux-arm64-gnu@0.7.5: - resolution: {integrity: sha512-/24UytJXrK+7CsucDb30GCKYIJ8nG6ceqbJyOtsJv9zeArNLHkxrYGSyjHJIpQfwVN17BPP4RNOi+yIZ3ZgDyA==} + /@rollup/rollup-linux-arm-gnueabihf@4.18.1: + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} + cpu: [arm] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.18.1: + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} + cpu: [arm] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.18.1: + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] libc: [glibc] @@ -1983,8 +2235,8 @@ packages: dev: true optional: true - /@rspack/binding-linux-arm64-musl@0.7.5: - resolution: {integrity: sha512-6RcxG42mLM01Pa6UYycACu/Nu9qusghAPUJumb8b8x5TRIDEtklYC5Ck6Rmagm+8E0ucMude2E/D4rMdIFcS3A==} + /@rollup/rollup-linux-arm64-musl@4.18.1: + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] libc: [musl] @@ -1992,8 +2244,35 @@ packages: dev: true optional: true - /@rspack/binding-linux-x64-gnu@0.7.5: - resolution: {integrity: sha512-R0Lu4CJN2nWMW7WzPBuCIju80cQPpcaqwKJDj/quwQySpJJZ6c5qGwB8mntqjxIzZDrNH6u0OkpiUTbvWZj8ww==} + /@rollup/rollup-linux-powerpc64le-gnu@4.18.1: + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.18.1: + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.18.1: + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.18.1: + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] libc: [glibc] @@ -2001,8 +2280,8 @@ packages: dev: true optional: true - /@rspack/binding-linux-x64-musl@0.7.5: - resolution: {integrity: sha512-dDgi/ThikMy1m4llxPeEXDCA2I8F8ezFS/eCPLZGU2/J1b4ALwDjuRsMmo+VXSlFCKgIt98V6h1woeg7nu96yg==} + /@rollup/rollup-linux-x64-musl@4.18.1: + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] libc: [musl] @@ -2010,111 +2289,30 @@ packages: dev: true optional: true - /@rspack/binding-win32-arm64-msvc@0.7.5: - resolution: {integrity: sha512-nEF4cUdLfgEK6FrgJSJhUlr2/7LY1tmqBNQCFsCjtDtUkQbJIEo1b8edT94G9tJcQoFE4cD+Re30yBYbQO2Thg==} + /@rollup/rollup-win32-arm64-msvc@4.18.1: + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding-win32-ia32-msvc@0.7.5: - resolution: {integrity: sha512-hEcHRwJIzpZsePr+5x6V/7TGhrPXhSZYG4sIhsrem1za9W+qqCYYLZ7KzzbRODU07QaAH2RxjcA1bf8F2QDYAQ==} + /@rollup/rollup-win32-ia32-msvc@4.18.1: + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding-win32-x64-msvc@0.7.5: - resolution: {integrity: sha512-PpVpP6J5/2b4T10hzSUwjLvmdpAOj3ozARl1Nrf/lsbYwhiXivoB8Gvoy/xe/Xpgr732Dk9VCeeW8rreWOOUVQ==} + /@rollup/rollup-win32-x64-msvc@4.18.1: + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding@0.7.5: - resolution: {integrity: sha512-XcdOvaCz1mWWwr5vmEY9zncdInrjINEh60EWkYdqtCA67v7X7rB1fe6n4BeAI1+YLS2Eacj+lytlr+n7I+DYVg==} - optionalDependencies: - '@rspack/binding-darwin-arm64': 0.7.5 - '@rspack/binding-darwin-x64': 0.7.5 - '@rspack/binding-linux-arm64-gnu': 0.7.5 - '@rspack/binding-linux-arm64-musl': 0.7.5 - '@rspack/binding-linux-x64-gnu': 0.7.5 - '@rspack/binding-linux-x64-musl': 0.7.5 - '@rspack/binding-win32-arm64-msvc': 0.7.5 - '@rspack/binding-win32-ia32-msvc': 0.7.5 - '@rspack/binding-win32-x64-msvc': 0.7.5 - dev: true - - /@rspack/cli@0.7.5(@rspack/core@0.7.5)(webpack@5.76.0): - resolution: {integrity: sha512-3Lp1RSyTRzBUi232hjRmF6wLHaMJXXMJIlX5dR662HwfCRwgm+q/Nz3829/UbjHXI2aGN4fFBgNI+LJU1TOZVQ==} - hasBin: true - peerDependencies: - '@rspack/core': '>=0.4.0' - dependencies: - '@discoveryjs/json-ext': 0.5.7 - '@rspack/core': 0.7.5(@swc/helpers@0.5.12) - '@rspack/dev-server': 0.7.5(@rspack/core@0.7.5)(webpack@5.76.0) - colorette: 2.0.19 - exit-hook: 3.2.0 - interpret: 3.1.1 - rechoir: 0.8.0 - semver: 6.3.1 - webpack-bundle-analyzer: 4.6.1 - yargs: 17.6.2 - transitivePeerDependencies: - - '@types/express' - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack - - webpack-cli - dev: true - - /@rspack/core@0.7.5(@swc/helpers@0.5.12): - resolution: {integrity: sha512-zVTe4WCyc3qsLPattosiDYZFeOzaJ32/BYukPP2I1VJtCVFa+PxGVRPVZhSoN6fXw5oy48yHg9W9v1T8CaEFhw==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@swc/helpers': 0.5.12 - peerDependenciesMeta: - '@swc/helpers': - optional: true - dependencies: - '@module-federation/runtime-tools': 0.1.6 - '@rspack/binding': 0.7.5 - '@swc/helpers': 0.5.12 - caniuse-lite: 1.0.30001621 - tapable: 2.2.1 - webpack-sources: 3.2.3 - dev: true - - /@rspack/dev-server@0.7.5(@rspack/core@0.7.5)(webpack@5.76.0): - resolution: {integrity: sha512-jDXfccjlHMXOxOK++uxWhLUKb0L3NuA6Ujc/J75NhWYq1YxmVhNOtUWCdunuJQ1BNeLlgG/S5X5iBCbZ09S0Jg==} - peerDependencies: - '@rspack/core': '*' - dependencies: - '@rspack/core': 0.7.5(@swc/helpers@0.5.12) - chokidar: 3.5.3 - connect-history-api-fallback: 2.0.0 - express: 4.19.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.17) - mime-types: 2.1.35 - webpack-dev-middleware: 6.1.2(webpack@5.76.0) - webpack-dev-server: 4.13.1(webpack@5.76.0) - ws: 8.8.1 - transitivePeerDependencies: - - '@types/express' - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack - - webpack-cli - dev: true - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -2298,6 +2496,7 @@ packages: resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} dependencies: tslib: 2.5.3 + dev: false /@trysound/sax@0.2.0: resolution: {integrity: sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=} @@ -2341,66 +2540,26 @@ packages: dependencies: '@babel/types': 7.24.5 - /@types/body-parser@1.19.2: - resolution: {integrity: sha1-rqIFnii3ZYY5CBNHrE+rPeFm5vA=} + /@types/eslint-scope@3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: - '@types/connect': 3.4.35 - '@types/node': 20.3.1 + '@types/eslint': 8.40.2 + '@types/estree': 1.0.5 dev: true - /@types/bonjour@3.5.10: - resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + /@types/eslint@8.40.2: + resolution: {integrity: sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==} dependencies: - '@types/node': 20.3.1 + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.12 dev: true - /@types/connect-history-api-fallback@1.5.0: - resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} - dependencies: - '@types/express-serve-static-core': 4.17.35 - '@types/node': 20.3.1 + /@types/estree@0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true - /@types/connect@3.4.35: - resolution: {integrity: sha1-X89q5EXkAh0fwiGaSHPMc6O7KtE=} - dependencies: - '@types/node': 20.3.1 - dev: true - - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} - dependencies: - '@types/eslint': 8.40.2 - '@types/estree': 0.0.51 - dev: true - - /@types/eslint@8.40.2: - resolution: {integrity: sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==} - dependencies: - '@types/estree': 0.0.51 - '@types/json-schema': 7.0.12 - dev: true - - /@types/estree@0.0.51: - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - dev: true - - /@types/express-serve-static-core@4.17.35: - resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} - dependencies: - '@types/node': 20.3.1 - '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 - dev: true - - /@types/express@4.17.17: - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} - dependencies: - '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.35 - '@types/qs': 6.9.7 - '@types/serve-static': 1.15.1 + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true /@types/graceful-fs@4.1.9: @@ -2412,12 +2571,6 @@ packages: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: true - /@types/http-proxy@1.17.11: - resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} - dependencies: - '@types/node': 20.3.1 - dev: true - /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2446,14 +2599,6 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/mime@1.3.2: - resolution: {integrity: sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o=} - dev: true - - /@types/mime@3.0.1: - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - dev: true - /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true @@ -2469,14 +2614,6 @@ packages: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} dev: true - /@types/qs@6.9.7: - resolution: {integrity: sha1-Y7t9Bn2xB8weRXwwO8JdUR/r9ss=} - dev: true - - /@types/range-parser@1.2.4: - resolution: {integrity: sha1-zWZ7z90CUhOq+3ylkVqTJZCs3Nw=} - dev: true - /@types/react@18.3.2: resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} dependencies: @@ -2484,45 +2621,9 @@ packages: csstype: 3.1.3 dev: true - /@types/retry@0.12.0: - resolution: {integrity: sha1-KzXsz87n04zXKtmSMvvVi/+zyE0=} - dev: true - - /@types/send@0.17.1: - resolution: {integrity: sha1-7UkyuKKoBfH+Nipw9OYtCsmU4wE=} - dependencies: - '@types/mime': 1.3.2 - '@types/node': 20.3.1 - dev: true - - /@types/serve-index@1.9.1: - resolution: {integrity: sha1-G16FNwoZLAHsbOxHNc8pFzN6Yng=} - dependencies: - '@types/express': 4.17.17 - dev: true - - /@types/serve-static@1.15.1: - resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} - dependencies: - '@types/mime': 3.0.1 - '@types/node': 20.3.1 - dev: true - - /@types/sockjs@0.3.33: - resolution: {integrity: sha1-Vw06C5msmVNg4xNv1gRRE7G9I28=} - dependencies: - '@types/node': 20.3.1 - dev: true - /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - /@types/ws@8.5.5: - resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} - dependencies: - '@types/node': 20.3.1 - dev: true - /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -2699,6 +2800,22 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@vitejs/plugin-react@4.3.1(vite@5.3.4): + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.5) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.3.4(@types/node@20.3.1) + transitivePeerDependencies: + - supports-color + dev: true + /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha1-K/12fq4aaZb0Mv9+jX/HVnnAtqc=} dependencies: @@ -2821,14 +2938,6 @@ packages: through: 2.3.8 dev: true - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.8.2): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: @@ -2854,17 +2963,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha1-bmaUAGWet0lzu/LjMycYCgmWtSA=} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: true - /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha1-MfKdpatuANHC0yms97WSlhTVAU0=} peerDependencies: @@ -2873,15 +2971,6 @@ packages: ajv: 6.12.6 dev: true - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha1-adTThaRzPNvqtElkoRcKiPh/DhY=} - peerDependencies: - ajv: ^8.8.2 - dependencies: - ajv: 8.12.0 - fast-deep-equal: 3.1.3 - dev: true - /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -2913,12 +3002,6 @@ packages: type-fest: 1.4.0 dev: true - /ansi-html-community@0.0.8: - resolution: {integrity: sha1-afvE1sy+OD+XNpNK40w/gpDxv0E=} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: true - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2975,14 +3058,6 @@ packages: is-array-buffer: 3.0.2 dev: true - /array-flatten@1.1.1: - resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} - dev: true - - /array-flatten@2.1.2: - resolution: {integrity: sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=} - dev: true - /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -3129,44 +3204,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /batch@0.6.1: - resolution: {integrity: sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=} - dev: true - - /binary-extensions@2.2.0: - resolution: {integrity: sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=} - engines: {node: '>=8'} - dev: true - - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /bonjour-service@1.1.1: - resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} - dependencies: - array-flatten: 2.1.2 - dns-equal: 1.0.0 - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - dev: true - /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -3183,15 +3220,26 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist-to-esbuild@2.1.1(browserslist@4.23.2): + resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + browserslist: '*' + dependencies: + browserslist: 4.23.2 + meow: 13.2.0 + dev: true + + /browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001621 - electron-to-chromium: 1.4.777 + caniuse-lite: 1.0.30001642 + electron-to-chromium: 1.4.829 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) + update-browserslist-db: 1.1.0(browserslist@4.23.2) /bs-logger@0.2.6: resolution: {integrity: sha1-6302UwenLPl0zGzadraDVK0za9g=} @@ -3208,16 +3256,6 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /bytes@3.0.0: - resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=} - engines: {node: '>= 0.8'} - dev: true - - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -3253,8 +3291,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite@1.0.30001621: - resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} + /caniuse-lite@1.0.30001642: + resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} /chalk@2.4.2: resolution: {integrity: sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=} @@ -3292,21 +3330,6 @@ packages: resolution: {integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=} dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /chrome-trace-event@1.0.3: resolution: {integrity: sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=} engines: {node: '>=6.0'} @@ -3386,10 +3409,6 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} - dev: true - /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -3420,28 +3439,6 @@ packages: dot-prop: 5.3.0 dev: true - /compressible@2.0.18: - resolution: {integrity: sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - - /compression@1.7.4: - resolution: {integrity: sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3449,27 +3446,10 @@ packages: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: true - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - dev: true - /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: true - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: true - /conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -3503,23 +3483,10 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - /cookie-signature@1.0.6: - resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} - dev: true - - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - dev: true - /core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} dependencies: - browserslist: 4.23.0 - dev: true - - /core-util-is@1.0.3: - resolution: {integrity: sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=} + browserslist: 4.23.2 dev: true /cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@4.9.4): @@ -3722,18 +3689,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - /default-gateway@6.0.3: - resolution: {integrity: sha1-gZSUyIgFO9t0PtvzQ9bN9/KUOnE=} - engines: {node: '>= 10'} - dependencies: - execa: 5.1.1 - dev: true - - /define-lazy-prop@2.0.0: - resolution: {integrity: sha1-P3rkIRKbyqrJvHSQXJigAJ7J7n8=} - engines: {node: '>=8'} - dev: true - /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -3742,29 +3697,10 @@ packages: object-keys: 1.1.1 dev: true - /depd@1.1.2: - resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} - engines: {node: '>= 0.6'} - dev: true - - /depd@2.0.0: - resolution: {integrity: sha1-tpYWPMdXVg0JzyLMj60Vcbeedt8=} - engines: {node: '>= 0.8'} - dev: true - - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: true - /detect-newline@3.1.0: resolution: {integrity: sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=} engines: {node: '>=8'} - /detect-node@2.1.0: - resolution: {integrity: sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=} - dev: true - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3780,17 +3716,6 @@ packages: path-type: 4.0.0 dev: true - /dns-equal@1.0.0: - resolution: {integrity: sha1-s55/HabrCnW6nBcySzR1PEfgZU0=} - dev: true - - /dns-packet@5.6.0: - resolution: {integrity: sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==} - engines: {node: '>=6'} - dependencies: - '@leichtgewicht/ip-codec': 2.0.4 - dev: true - /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -3875,20 +3800,12 @@ packages: is-obj: 2.0.0 dev: true - /duplexer@0.1.2: - resolution: {integrity: sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=} - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s=} dev: true - /ee-first@1.1.1: - resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} - dev: true - - /electron-to-chromium@1.4.777: - resolution: {integrity: sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw==} + /electron-to-chromium@1.4.829: + resolution: {integrity: sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==} /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -3901,11 +3818,6 @@ packages: resolution: {integrity: sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=} dev: true - /encodeurl@1.0.2: - resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} - engines: {node: '>= 0.8'} - dev: true - /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -4002,6 +3914,37 @@ packages: is-symbol: 1.0.4 dev: true + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4010,10 +3953,6 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - /escape-html@1.0.3: - resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} - dev: true - /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -4258,20 +4197,15 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker@2.0.2: + resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=} + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /etag@1.8.1: - resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} - engines: {node: '>= 0.6'} - dev: true - - /eventemitter3@4.0.7: - resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=} - dev: true - /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -4309,11 +4243,6 @@ packages: strip-final-newline: 3.0.0 dev: true - /exit-hook@3.2.0: - resolution: {integrity: sha512-aIQN7Q04HGAV/I5BszisuHTZHXNoC23WtLkxdCLuYZMdWviRD0TMIt2bnUBi9MrHaF/hH8b3gwG9iaAUHKnJGA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /exit@0.1.2: resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} engines: {node: '>= 0.8.0'} @@ -4328,45 +4257,6 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -4395,13 +4285,6 @@ packages: reusify: 1.0.4 dev: true - /faye-websocket@0.11.4: - resolution: {integrity: sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=} - engines: {node: '>=0.8.0'} - dependencies: - websocket-driver: 0.7.4 - dev: true - /fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -4420,21 +4303,6 @@ packages: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -4462,32 +4330,12 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 dev: true - /forwarded@0.2.0: - resolution: {integrity: sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=} - engines: {node: '>= 0.6'} - dev: true - - /fresh@0.5.2: - resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} - engines: {node: '>= 0.6'} - dev: true - /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -4497,15 +4345,11 @@ packages: universalify: 2.0.0 dev: true - /fs-monkey@1.0.4: - resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} - dev: true - /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -4655,17 +4499,6 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /gzip-size@6.0.0: - resolution: {integrity: sha1-BlNn/VDCOcBnHLy61b4+LusQ5GI=} - engines: {node: '>=10'} - dependencies: - duplexer: 0.1.2 - dev: true - - /handle-thing@2.0.1: - resolution: {integrity: sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=} - dev: true - /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -4728,19 +4561,6 @@ packages: lru-cache: 6.0.0 dev: true - /hpack.js@2.1.6: - resolution: {integrity: sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=} - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - dev: true - - /html-entities@2.3.6: - resolution: {integrity: sha512-9o0+dcpIw2/HxkNuYKxSJUF/MMRZQECK4GnF+oQOmJ83yCVHTWgCH5aOXxK5bozNRmM8wtgryjHD3uloPBDEGw==} - dev: true - /html-escaper@2.0.2: resolution: {integrity: sha1-39YAJ9o2o238viNiYsAKWCJoFFM=} @@ -4781,72 +4601,13 @@ packages: entities: 2.2.0 dev: true - /http-deceiver@1.2.7: - resolution: {integrity: sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=} - dev: true + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - /http-errors@1.6.3: - resolution: {integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - dev: true - - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: true - - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true - - /http-proxy-middleware@2.0.6(@types/express@4.17.17): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - dependencies: - '@types/express': 4.17.17 - '@types/http-proxy': 1.17.11 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.5 - transitivePeerDependencies: - - debug - dev: true - - /http-proxy@1.18.1: - resolution: {integrity: sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.2 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - dev: true - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} dev: true /husky@8.0.3: @@ -4855,13 +4616,6 @@ packages: hasBin: true dev: true - /iconv-lite@0.4.24: - resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - /icss-utils@5.1.0(postcss@8.4.29): resolution: {integrity: sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=} engines: {node: ^10 || ^12 || >= 14} @@ -4907,10 +4661,6 @@ packages: once: 1.4.0 wrappy: 1.0.2 - /inherits@2.0.3: - resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} - dev: true - /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -4927,21 +4677,6 @@ packages: side-channel: 1.0.4 dev: true - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - dev: true - - /ipaddr.js@1.9.1: - resolution: {integrity: sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=} - engines: {node: '>= 0.10'} - dev: true - - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - dev: true - /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -4959,13 +4694,6 @@ packages: has-bigints: 1.0.2 dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -4995,12 +4723,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-docker@2.2.1: - resolution: {integrity: sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=} - engines: {node: '>=8'} - hasBin: true - dev: true - /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -5057,11 +4779,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-plain-obj@3.0.0: - resolution: {integrity: sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc=} - engines: {node: '>=10'} - dev: true - /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} @@ -5130,17 +4847,6 @@ packages: call-bind: 1.0.2 dev: true - /is-wsl@2.2.0: - resolution: {integrity: sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - - /isarray@1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} - dev: true - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -5361,7 +5067,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /jest-leak-detector@29.7.0: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} @@ -5676,13 +5382,6 @@ packages: resolution: {integrity: sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=} engines: {node: '>=6'} - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} - dependencies: - picocolors: 1.0.1 - shell-quote: 1.8.1 - dev: true - /leven@3.1.0: resolution: {integrity: sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=} engines: {node: '>=6'} @@ -5886,20 +5585,13 @@ packages: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: true - /media-typer@0.3.0: - resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} - engines: {node: '>= 0.6'} - dev: true - - /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - dependencies: - fs-monkey: 1.0.4 + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} dev: true /meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + resolution: {integrity: sha1-vL5FvaDuFynTUMA8/8g5WjbE6Jc=} engines: {node: '>=10'} dependencies: '@types/minimist': 1.2.2 @@ -5915,10 +5607,6 @@ packages: yargs-parser: 20.2.9 dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} - dev: true - /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -5927,11 +5615,6 @@ packages: engines: {node: '>= 8'} dev: true - /methods@1.1.2: - resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} - engines: {node: '>= 0.6'} - dev: true - /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -5951,12 +5634,6 @@ packages: mime-db: 1.52.0 dev: true - /mime@1.6.0: - resolution: {integrity: sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=} - engines: {node: '>=4'} - hasBin: true - dev: true - /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -5971,10 +5648,6 @@ packages: engines: {node: '>=4'} dev: true - /minimalistic-assert@1.0.1: - resolution: {integrity: sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=} - dev: true - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -5993,11 +5666,6 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - dev: true - /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true @@ -6009,16 +5677,14 @@ packages: resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=} dev: true - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dependencies: - dns-packet: 5.6.0 - thunky: 1.1.0 dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -6026,11 +5692,6 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true - /neo-async@2.6.2: resolution: {integrity: sha1-tKr7k+OustgXTKU88WOrfXMIMF8=} dev: true @@ -6042,11 +5703,6 @@ packages: tslib: 2.5.3 dev: true - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: true - /node-int64@0.4.0: resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} @@ -6132,22 +5788,6 @@ packages: es-abstract: 1.21.2 dev: true - /obuf@1.1.2: - resolution: {integrity: sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=} - dev: true - - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /on-headers@1.0.2: - resolution: {integrity: sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=} - engines: {node: '>= 0.8'} - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -6166,20 +5806,6 @@ packages: mimic-fn: 4.0.0 dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: true - - /opener@1.5.2: - resolution: {integrity: sha1-XTfh81B3udysQwE3InGv3rKhNZg=} - hasBin: true - dev: true - /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -6217,14 +5843,6 @@ packages: p-limit: 3.1.0 dev: true - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - dev: true - /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -6252,11 +5870,6 @@ packages: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parseurl@1.3.3: - resolution: {integrity: sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=} - engines: {node: '>= 0.8'} - dev: true - /pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: @@ -6284,10 +5897,6 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-to-regexp@0.1.7: - resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} - dev: true - /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -6381,6 +5990,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -6412,10 +6030,6 @@ packages: engines: {node: '>=4'} dev: true - /process-nextick-args@2.0.1: - resolution: {integrity: sha1-eCDZsWEgzFXKmud5JoCufbptf+I=} - dev: true - /prompts@2.4.2: resolution: {integrity: sha1-e1fnOzpIAprRDr1E90sBcipMsGk=} engines: {node: '>= 6'} @@ -6423,14 +6037,6 @@ packages: kleur: 3.0.3 sisteransi: 1.0.5 - /proxy-addr@2.0.7: - resolution: {integrity: sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: true - /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -6444,13 +6050,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -6470,21 +6069,6 @@ packages: safe-buffer: 5.2.1 dev: true - /range-parser@1.2.1: - resolution: {integrity: sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=} - engines: {node: '>= 0.6'} - dev: true - - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: true - /rbush@3.0.1: resolution: {integrity: sha1-X6+op5s7mv3+UAhAOnIMwd6ILs8=} dependencies: @@ -6504,6 +6088,11 @@ packages: /react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + dev: true + /react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -6530,18 +6119,6 @@ packages: type-fest: 0.6.0 dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -6551,20 +6128,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp@3.6.0: - resolution: {integrity: sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /rechoir@0.8.0: - resolution: {integrity: sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=} - engines: {node: '>= 10.13.0'} - dependencies: - resolve: 1.22.2 - dev: true - /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -6651,10 +6214,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /requires-port@1.0.0: - resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha1-DwB18bslRHZs9zumpuKt/ryxPy0=} engines: {node: '>=8'} @@ -6697,11 +6256,6 @@ packages: signal-exit: 3.0.7 dev: true - /retry@0.13.1: - resolution: {integrity: sha1-GFsVh6z2eRnWOzVzSeA1N7JIRlg=} - engines: {node: '>= 4'} - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6718,16 +6272,38 @@ packages: glob: 7.2.3 dev: true + /rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 + fsevents: 2.3.3 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha1-mR7GnSluAxN0fVm9/St0XDX4go0=} - dev: true - /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true @@ -6740,10 +6316,6 @@ packages: is-regex: 1.1.4 dev: true - /safer-buffer@2.1.2: - resolution: {integrity: sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=} - dev: true - /scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: @@ -6759,27 +6331,6 @@ packages: ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - dependencies: - '@types/json-schema': 7.0.12 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - ajv-keywords: 5.1.0(ajv@8.12.0) - dev: true - - /select-hose@2.0.0: - resolution: {integrity: sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=} - dev: true - - /selfsigned@2.1.1: - resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} - engines: {node: '>=10'} - dependencies: - node-forge: 1.3.1 - dev: true - /semver@5.7.1: resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=} hasBin: true @@ -6815,68 +6366,12 @@ packages: engines: {node: '>=10'} hasBin: true - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 dev: true - /serve-index@1.9.1: - resolution: {integrity: sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: true - - /setprototypeof@1.1.0: - resolution: {integrity: sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=} - dev: true - - /setprototypeof@1.2.0: - resolution: {integrity: sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=} - dev: true - /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -6894,10 +6389,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - dev: true - /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -6909,15 +6400,6 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /sirv@1.0.19: - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.23 - mrmime: 1.0.1 - totalist: 1.1.0 - dev: true - /sisteransi@1.0.5: resolution: {integrity: sha1-E01oEpd1ZDfMBcoBNw06elcQde0=} @@ -6940,19 +6422,16 @@ packages: tslib: 2.5.3 dev: true - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - dev: true - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: true + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true + /source-map-support@0.5.13: resolution: {integrity: sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=} dependencies: @@ -6996,32 +6475,6 @@ packages: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true - /spdy-transport@3.0.0: - resolution: {integrity: sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=} - dependencies: - debug: 4.3.4 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - dev: true - - /spdy@4.0.2: - resolution: {integrity: sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=} - engines: {node: '>=6.0.0'} - dependencies: - debug: 4.3.4 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -7041,16 +6494,6 @@ packages: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: true - /statuses@1.5.0: - resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} - engines: {node: '>= 0.6'} - dev: true - - /statuses@2.0.1: - resolution: {integrity: sha1-VcsADM8dSHKL0jxoWgY5mM8aG2M=} - engines: {node: '>= 0.8'} - dev: true - /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true @@ -7109,12 +6552,6 @@ packages: es-abstract: 1.21.2 dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=} - dependencies: - safe-buffer: 5.1.2 - dev: true - /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -7163,15 +6600,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - /style-loader@3.3.4(webpack@5.76.0): - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dependencies: - webpack: 5.76.0 - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -7279,10 +6707,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /thunky@1.1.0: - resolution: {integrity: sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=} - dev: true - /tmpl@1.0.5: resolution: {integrity: sha1-hoPguQK7nCDE9ybjwLafNlGMB8w=} @@ -7296,16 +6720,6 @@ packages: dependencies: is-number: 7.0.0 - /toidentifier@1.0.1: - resolution: {integrity: sha1-O+NDIaiKgg7RvYDfqjPkefu43TU=} - engines: {node: '>=0.6'} - dev: true - - /totalist@1.1.0: - resolution: {integrity: sha1-pNZaPlRlF3AePlw3pHpwrJf+Vt8=} - engines: {node: '>=6'} - dev: true - /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} @@ -7444,14 +6858,6 @@ packages: engines: {node: '>=10'} dev: true - /type-is@1.6.18: - resolution: {integrity: sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=} - engines: {node: '>= 0.6'} - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: true - /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: @@ -7502,18 +6908,13 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unpipe@1.0.0: - resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} - engines: {node: '>= 0.8'} - dev: true - - /update-browserslist-db@1.0.16(browserslist@4.23.0): - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + /update-browserslist-db@1.1.0(browserslist@4.23.2): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.2 escalade: 3.1.2 picocolors: 1.0.1 @@ -7531,16 +6932,6 @@ packages: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} dev: true - /utils-merge@1.0.1: - resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} - engines: {node: '>= 0.4.0'} - dev: true - - /uuid@8.3.2: - resolution: {integrity: sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=} - hasBin: true - dev: true - /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -7559,9 +6950,54 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vary@1.1.2: - resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} - engines: {node: '>= 0.8'} + /vite-plugin-svgr@4.2.0(vite@5.3.4): + resolution: {integrity: sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==} + peerDependencies: + vite: ^2.6.0 || 3 || 4 || 5 + dependencies: + '@rollup/pluginutils': 5.1.0 + '@svgr/core': 8.1.0 + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) + vite: 5.3.4(@types/node@20.3.1) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /vite@5.3.4(@types/node@20.3.1): + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.3.1 + esbuild: 0.21.5 + postcss: 8.4.39 + rollup: 4.18.1 + optionalDependencies: + fsevents: 2.3.3 dev: true /walker@1.0.8: @@ -7577,113 +7013,6 @@ packages: graceful-fs: 4.2.11 dev: true - /wbuf@1.7.3: - resolution: {integrity: sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=} - dependencies: - minimalistic-assert: 1.0.1 - dev: true - - /webpack-bundle-analyzer@4.6.1: - resolution: {integrity: sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==} - engines: {node: '>= 10.13.0'} - hasBin: true - dependencies: - acorn: 8.8.2 - acorn-walk: 8.2.0 - chalk: 4.1.2 - commander: 7.2.0 - gzip-size: 6.0.0 - lodash: 4.17.21 - opener: 1.5.2 - sirv: 1.0.19 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /webpack-dev-middleware@5.3.3(webpack@5.76.0): - resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.2.0 - webpack: 5.76.0 - dev: true - - /webpack-dev-middleware@6.1.2(webpack@5.76.0): - resolution: {integrity: sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.2.0 - webpack: 5.76.0 - dev: true - - /webpack-dev-server@4.13.1(webpack@5.76.0): - resolution: {integrity: sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - dependencies: - '@types/bonjour': 3.5.10 - '@types/connect-history-api-fallback': 1.5.0 - '@types/express': 4.17.17 - '@types/serve-index': 1.9.1 - '@types/serve-static': 1.15.1 - '@types/sockjs': 0.3.33 - '@types/ws': 8.5.5 - ansi-html-community: 0.0.8 - bonjour-service: 1.1.1 - chokidar: 3.5.3 - colorette: 2.0.20 - compression: 1.7.4 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.19.2 - graceful-fs: 4.2.11 - html-entities: 2.3.6 - http-proxy-middleware: 2.0.6(@types/express@4.17.17) - ipaddr.js: 2.1.0 - launch-editor: 2.6.1 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 - schema-utils: 4.2.0 - selfsigned: 2.1.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack: 5.76.0 - webpack-dev-middleware: 5.3.3(webpack@5.76.0) - ws: 8.13.0 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - dev: true - /webpack-merge@5.9.0: resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==} engines: {node: '>=10.0.0'} @@ -7714,7 +7043,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.8.2 acorn-import-assertions: 1.9.0(acorn@8.8.2) - browserslist: 4.23.0 + browserslist: 4.23.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 0.9.3 @@ -7750,20 +7079,6 @@ packages: webpack: 5.76.0 dev: true - /websocket-driver@0.7.4: - resolution: {integrity: sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=} - engines: {node: '>=0.8.0'} - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: true - - /websocket-extensions@0.1.4: - resolution: {integrity: sha1-f4RzvIOd/YdgituV1+sHUhFXikI=} - engines: {node: '>=0.8.0'} - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -7829,45 +7144,6 @@ packages: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /ws@8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -7893,19 +7169,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - /yargs@17.6.2: - resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true - /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} diff --git a/prettier.config.js b/prettier.config.cjs similarity index 100% rename from prettier.config.js rename to prettier.config.cjs diff --git a/rspack.common.js b/rspack.common.js deleted file mode 100644 index 68499c0..0000000 --- a/rspack.common.js +++ /dev/null @@ -1,93 +0,0 @@ -const path = require('path'); -const WebpackBar = require('webpackbar'); -const rspack = require("@rspack/core"); - - -module.exports = { - entry: './src/main.tsx', - infrastructureLogging: { - level: 'error', - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'cditor.bundle.js', - clean: true - }, - resolve: { - extensions: [".ts", ".tsx", ".js", "css"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"], - ".css": [".css"], - }, - alias: { - 'Latte': path.resolve(__dirname, "src"), - 'components': path.resolve(__dirname, "src/workbench/components"), - 'workbench': path.resolve(__dirname, "src/workbench"), - }, - tsConfigPath: path.resolve(__dirname, "tsconfig.json") - }, - module: { - rules: [ - { - test: /\.ts$/, - use: { - loader: "builtin:swc-loader", - options: { - sourceMap: true, - jsc: { - parser: { - syntax: "typescript" - }, - externalHelpers: true, - preserveAllComments: false - } - } - }, - type: 'javascript/auto', - }, - { - test: /\.tsx$/, - use: { - loader: 'builtin:swc-loader', - options: { - sourceMap: true, - jsc: { - parser: { - syntax: 'typescript', - jsx: true, - }, - externalHelpers: true, - preserveAllComments: false, - transform: { - react: { - runtime: 'automatic', - throwIfNamespace: true, - useBuiltins: false, - }, - }, - }, - }, - }, - type: 'javascript/auto', - }, - { - test: /\.css$/i, - type: "css", - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ['@svgr/webpack'], - }, - ] - }, - stats: 'errors-only', - plugins: [ - new rspack.HtmlRspackPlugin({ - template: "./index.html" - }), - new WebpackBar() - ], -} diff --git a/rspack.dev.js b/rspack.dev.js deleted file mode 100644 index cf1316c..0000000 --- a/rspack.dev.js +++ /dev/null @@ -1,20 +0,0 @@ -const { merge } = require('webpack-merge'); -const common = require('./rspack.common.js'); -const FriendlyErrorsWebpackPlugin = require('@soda/friendly-errors-webpack-plugin'); - - -module.exports = merge(common, { - mode: 'development', - devtool: 'inline-source-map', - devServer: { - hot: true - }, - plugins: [ - new FriendlyErrorsWebpackPlugin({ - compilationSuccessInfo: { - messages: ['You application is running here http://localhost:8080'], - notes: ['Some additional notes to be displayed upon successful compilation'] - }, - }) - ] -}); \ No newline at end of file diff --git a/rspack.prod.js b/rspack.prod.js deleted file mode 100644 index bf1f132..0000000 --- a/rspack.prod.js +++ /dev/null @@ -1,9 +0,0 @@ -const { merge } = require('webpack-merge'); -const common = require('./rspack.common.js'); - -module.exports = merge(common, { - mode: 'production', - output: { - publicPath: './', - } -}); \ No newline at end of file diff --git a/src/assets/testSchema6.json b/src/assets/testSchema6.json index 62276f9..f091b3e 100644 --- a/src/assets/testSchema6.json +++ b/src/assets/testSchema6.json @@ -302,6 +302,18 @@ "opacity": 1, "visible": true, "blendMode": "NORMAL" + }, + { + "type": "SOLID", + "color": { + "r": 0.9750000238418579, + "g": 0.032499998807907104, + "b": 0.032499998807907104, + "a": 1 + }, + "opacity": 0.3, + "visible": true, + "blendMode": "NORMAL" } ], "strokePaints": [], diff --git a/src/core/activeSelection.ts b/src/core/activeSelection.ts index 32bb804..47c5c5a 100644 --- a/src/core/activeSelection.ts +++ b/src/core/activeSelection.ts @@ -381,13 +381,13 @@ export class ActiveSelection extends Rect { } private set _objects(values: DisplayObject[]) { - this._onActiveSelectionChange.fire(this) this.__objects = values + this._onActiveSelectionChange.fire(this) } public addSelectElement = (element: DisplayObject) => { if (!element) return - this._objects.push(element) + this._objects = this._objects.concat(element) this._OBBDirty = true } diff --git a/src/core/activeSelectionWidget.ts b/src/core/activeSelectionWidget.ts index fcb6f89..695bde0 100644 --- a/src/core/activeSelectionWidget.ts +++ b/src/core/activeSelectionWidget.ts @@ -5,7 +5,7 @@ import { CoreEditingCommands } from 'Latte/core/coreCommands' import type { ViewModel } from 'Latte/core/viewModel' const ProxyProp = ['x', 'y', 'width', 'height'] -const ProxyWidget = (target: BaseActiveSelectionWidget) => +const ProxyWidget = (target: ActiveSelectionWidget) => new Proxy(target, { get(target, prop, receiver) { if (typeof prop === 'string' && ProxyProp.includes(prop)) { @@ -22,20 +22,19 @@ const ProxyWidget = (target: BaseActiveSelectionWidget) => }, }) -function ProxyActiveSelectionWidget(target: typeof BaseActiveSelectionWidget) { +function ProxyActiveSelectionWidget(target: typeof ActiveSelectionWidget) { const p = new Proxy(target, { construct( Target, - argArray: ConstructorParameters + argArray: ConstructorParameters ) { - console.log(1111) return ProxyWidget(new Target(...argArray)) }, }) } @ProxyActiveSelectionWidget -export class BaseActiveSelectionWidget { +export class ActiveSelectionWidget { private readonly _onDidSelectionChange = new Emitter() public readonly onDidSelectionChange = this._onDidSelectionChange.event @@ -53,6 +52,14 @@ export class BaseActiveSelectionWidget { }) } + setFills(fills: Paint[]) { + const objects = this._activeSelection.getObjects() + CoreEditingCommands.SetElementFills.runCoreEditorCommand(this._viewModel, { + newFills: fills, + objects, + }) + } + getObjects() { return this._activeSelection.getObjects() } diff --git a/src/core/cameraService.ts b/src/core/cameraService.ts index 1c16b8e..513b5d4 100644 --- a/src/core/cameraService.ts +++ b/src/core/cameraService.ts @@ -1,4 +1,4 @@ -import { Point } from 'Latte/common/Point' +import { Point } from 'Latte/common/point' import { Emitter } from 'Latte/common/event' import { Matrix } from 'Latte/math/matrix' diff --git a/src/core/coreCommands.ts b/src/core/coreCommands.ts index 76c6308..158cb04 100644 --- a/src/core/coreCommands.ts +++ b/src/core/coreCommands.ts @@ -3,15 +3,8 @@ import { DisplayObject } from 'Latte/core/displayObject' import { Page } from 'Latte/core/page' import { EditorDocument } from 'Latte/elements/document' import { CommandsRegistry } from 'Latte/core/commandsRegistry' -import { Matrix } from 'Latte/math/matrix' -import { Point, subtract, dotProduct, add, divide } from 'Latte/common/Point' -import { - MouseControllerTarget, - isResetStartXAxis, - isResetStartYAxis, - isResetEndXAxis, - isResetEndYAxis, -} from 'Latte/core/activeSelection' +import { Point, subtract, add, divide } from 'Latte/common/point' +import { MouseControllerTarget } from 'Latte/core/activeSelection' import { createDefaultElementSchema, deepCopySchema, @@ -26,6 +19,7 @@ import { KeybindingsRegistry } from 'Latte/services/keybinding/keybindingsRegist import { KeyCode, KeyMod } from 'Latte/common/keyCodes' import { calcPosition } from 'Latte/math/zIndex' import { CursorMoveOperations } from 'Latte/core/cursor/cursorMoveOperations' +import { CursorUpdateOperations } from 'Latte/core/cursor/cursorUpdateOperations' export const isLogicTarget = (node?: any): node is DisplayObject => node instanceof DisplayObject && @@ -362,7 +356,6 @@ export namespace CoreEditingCommands { cacheNum[type] = 0 } } - console.log(cacheNum[type]) item.name = `${type} ${++cacheNum[type]}` }) return shapes @@ -443,9 +436,9 @@ export namespace CoreEditingCommands { ): void { const { position, objects } = args if (!position || !objects || !objects.length) return - viewModel - .getModel() - .pushEditOperations(CursorMoveOperations.move(position, objects)) + viewModel.updateNodeWithAABB( + CursorMoveOperations.move(position, objects) + ) // viewModel.updateElementData(results) } })() @@ -504,11 +497,9 @@ export namespace CoreEditingCommands { if (!objects || !objects.length || !rad) { return } - viewModel - .getModel() - .pushEditOperations( - CursorMoveOperations.rotate(objects, rad, transformOrigin) - ) + viewModel.updateNodeWithAABB( + CursorMoveOperations.rotate(objects, rad, transformOrigin) + ) // viewModel.updateElementData(results) } })() @@ -539,13 +530,42 @@ export namespace CoreEditingCommands { viewModel.getActiveSelection() ) if (result) { - viewModel.getModel().pushEditOperations(result) + viewModel.updateNodeWithAABB(result) } // viewModel.updateElementData(result) } } export const ResizeElement = new ResizeElementCommand() + interface UpdateElementFillsCommandOptions extends BaseCommandOptions { + objects: DisplayObject[] + newFills: Paint[] + } + export const SetElementFills = + new (class extends CoreEditorCommand { + constructor() { + super({ + id: 'updateElementFills', + }) + } + + public runCoreEditorCommand( + viewModel: ViewModel, + args: Partial + ): void { + const { objects, newFills } = args + if (!objects || !objects.length) { + return + } + viewModel + .getModel() + .pushEditOperations( + CursorUpdateOperations.setFills(objects, newFills) + ) + // viewModel.updateElementData(results) + } + })() + export const Undo = registerCommand( new (class extends CoreEditorCommand { constructor() { diff --git a/src/core/cursor/cursorMoveOperations.ts b/src/core/cursor/cursorMoveOperations.ts index a348eae..17e65d9 100644 --- a/src/core/cursor/cursorMoveOperations.ts +++ b/src/core/cursor/cursorMoveOperations.ts @@ -2,7 +2,7 @@ import type { DisplayObject } from 'Latte/core/displayObject' import { Matrix } from 'Latte/math/matrix' import type { ISingleEditOperation } from 'Latte/core/modelChange' import { EditOperation } from 'Latte/core/modelChange' -import { Point, subtract, dotProduct, add, divide } from 'Latte/common/Point' +import { Point, subtract, dotProduct, add, divide } from 'Latte/common/point' import type { MouseControllerTarget, ActiveSelection, diff --git a/src/core/cursor/cursorUpdateOperations.ts b/src/core/cursor/cursorUpdateOperations.ts new file mode 100644 index 0000000..9c93844 --- /dev/null +++ b/src/core/cursor/cursorUpdateOperations.ts @@ -0,0 +1,12 @@ +import type { DisplayObject } from 'Latte/core/displayObject' +import { EditOperation } from 'Latte/core/modelChange' + +export class CursorUpdateOperations { + public static setFills(objects: DisplayObject[], fills?: Paint[]) { + return objects.map(object => + EditOperation.update(object.getGuidKey(), { + fillPaints: fills ?? [], + }) + ) + } +} diff --git a/src/core/cursorMoveCommands.ts b/src/core/cursorMoveCommands.ts deleted file mode 100644 index 4b4d26c..0000000 --- a/src/core/cursorMoveCommands.ts +++ /dev/null @@ -1,3 +0,0 @@ -class cursorMoveCommands { - public static translateTo() -} diff --git a/src/core/displayObject.ts b/src/core/displayObject.ts index 7f84878..fd94d0f 100644 --- a/src/core/displayObject.ts +++ b/src/core/displayObject.ts @@ -3,7 +3,7 @@ import { Bounds } from 'Latte/core/bounds' import type { Container } from 'Latte/core/container' import type { EditorElementTypeKind } from 'Latte/constants/schema' import { Matrix } from 'Latte/math/matrix' -import { Point } from 'Latte/common/Point' +import { Point } from 'Latte/common/point' import type { RBushNodeAABB } from 'Latte/core/rTree' import { rTreeRoot } from 'Latte/core/rTree' diff --git a/src/core/mouseHandler.ts b/src/core/mouseHandler.ts index f9bb49b..d17fc41 100644 --- a/src/core/mouseHandler.ts +++ b/src/core/mouseHandler.ts @@ -1,6 +1,6 @@ import type View from 'Latte/core/view' import type { ViewController } from 'Latte/core/viewController' -import { Point } from 'Latte/common/Point' +import { Point } from 'Latte/common/point' import type { EditorMouseEvent, IMouseWheelEvent, diff --git a/src/core/viewController.ts b/src/core/viewController.ts index 277d999..f07858c 100644 --- a/src/core/viewController.ts +++ b/src/core/viewController.ts @@ -19,6 +19,7 @@ import type { import type { ITextureLoadResult } from 'Latte/core/texture' import { createDefaultImagePaint } from 'Latte/common/schema' import { Container } from 'Latte/core/container' +import { add } from 'Latte/common/point' export interface IMouseDispatchData { target: DisplayObject @@ -67,9 +68,11 @@ export class ViewController { y: position.y - prePosition.y, } const activeElement = this._viewModel.getActiveSelection() - CoreEditingCommands.MoveElement.runCoreEditorCommand(this._viewModel, { + CoreEditingCommands.MoveElementTo.runCoreEditorCommand(this._viewModel, { objects: activeElement.getObjects(), - movement, + position(prevState) { + return add(prevState, movement) + }, }) } diff --git a/src/core/viewModel.ts b/src/core/viewModel.ts index 5d14c88..674a5fa 100644 --- a/src/core/viewModel.ts +++ b/src/core/viewModel.ts @@ -336,5 +336,7 @@ export class ViewModel { return this._modelData } - public updateNodeWithAABB(payload: ISingleEditOperation[]) {} + public updateNodeWithAABB(operations: ISingleEditOperation[]) { + this._modelData.pushEditOperations(operations) + } } diff --git a/src/main.tsx b/src/main.tsx index 18d35b8..5fc1be3 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,4 +1,4 @@ -import { layout, App } from 'workbench/layout/layoutService' +import { App } from 'workbench/layout/layoutService' import 'Latte/assets/css/global.css' import 'workbench//components/root.css' diff --git a/src/math/matrix.ts b/src/math/matrix.ts index 1e6bba4..22f733b 100644 --- a/src/math/matrix.ts +++ b/src/math/matrix.ts @@ -1,4 +1,4 @@ -import { Point } from 'Latte/common/Point' +import { Point } from 'Latte/common/point' const degrees = 180 / Math.PI diff --git a/src/render/elementRender.ts b/src/render/elementRender.ts index 4da5454..c06f388 100644 --- a/src/render/elementRender.ts +++ b/src/render/elementRender.ts @@ -21,6 +21,21 @@ import type { Camera } from 'Latte/core/cameraService' import type { ViewModel } from 'Latte/core/viewModel' import { Matrix } from 'Latte/math/matrix' +const mergePaints = (paints: Paint[]): Paint[] => { + const result: Paint[] = [] + for (let i = paints.length - 1; i >= 0; i--) { + const curPaint = paints[i] + if (!curPaint.visible) { + continue + } + result.unshift(curPaint) + if (curPaint.opacity === 1) { + break + } + } + return result +} + registerEditorShapeRender(EditorElementTypeKind.ELLIPSE, EllipseShapeRender) registerEditorShapeRender(EditorElementTypeKind.RECTANGLE, RectShapeRender) registerEditorFillRender(FillType.SOLID, SolidColorFillRender) @@ -95,6 +110,10 @@ class ElementRender extends ViewPart { ctx.clip() } + private _applyCommonAttrToCtx(ctx: CanvasRenderingContext2D, paint: Paint) { + ctx.globalAlpha = paint.opacity + } + private _renderDisplayObject( ctx: CanvasRenderingContext2D, vpMatrix: IMatrixLike, @@ -103,9 +122,13 @@ class ElementRender extends ViewPart { ctx.save() this._applyTransform(ctx, vpMatrix, displayObject) this._createClipArea(ctx, displayObject) - const fills = displayObject.getFills() + const fills = mergePaints(displayObject.getFills()) + if (fills.length === 0) { + return + } fills.forEach(item => { const fillRender = getEditorFillRender(item.type) + this._applyCommonAttrToCtx(ctx, item) fillRender(item, ctx, { contextSize: { width: displayObject.width, diff --git a/src/render/fill/image.ts b/src/render/fill/image.ts index 127b8e4..880487e 100644 --- a/src/render/fill/image.ts +++ b/src/render/fill/image.ts @@ -4,7 +4,7 @@ import type { FillRenderOptions, } from 'Latte/render/renderContributionRegistry' import { textureManager } from 'Latte/core/texture' -import { divide, dotProduct, subtract } from 'Latte/common/Point' +import { divide, dotProduct, subtract } from 'Latte/common/point' enum ImageFillScaleMode { FILL = 'FILL', diff --git a/src/workbench/components/input/index.tsx b/src/workbench/components/input/index.tsx index 487ac9b..96f48d1 100644 --- a/src/workbench/components/input/index.tsx +++ b/src/workbench/components/input/index.tsx @@ -60,6 +60,7 @@ export const Input = (props: InputProps) => { style, onPressEnter, onKeyDown, + ...rest } = props const [currentValue, setCurrentValue] = useMergeState(defaultValue, value) @@ -86,6 +87,7 @@ export const Input = (props: InputProps) => { let element = ( ) => { const handleSelectionChange = useCallback((e: DisplayObject) => { const fills = e.getFills() + console.log(fills) setFills(fills) }, []) + const triggerFillsChange = useCallback((fills: Paint[]) => { + latte.editor.getSelectionProxy().setFills(fills) + }, []) + const handleFillChange: FillChangeHandler = useCallback( (index, newFill) => { setFills(prev => { prev[index] = newFill onChange?.(prev) + triggerFillsChange([...prev]) return [...prev] }) }, @@ -106,13 +112,14 @@ export const FillPanel = (props: PropsWithChildren) => { setFills(prev => { const newFills = [...prev, JSON.parse(DEFAULT_PAINT)] onChange?.(newFills) + triggerFillsChange(newFills) return newFills }) }, [onChange]) useEffect(() => { setTimeout(() => { - const rm = latte.editor.onDidSelectionChange(handleSelectionChange) + latte.editor.onDidSelectionChange(handleSelectionChange) }, 0) }, []) @@ -132,6 +139,7 @@ export const FillPanel = (props: PropsWithChildren) => { if (type === PaintCommonButtonsType.Delete) { prev.splice(index, 1) } + triggerFillsChange(prev) return [...prev] }) }, diff --git a/src/workbench/workspace/fill/solidPaint.tsx b/src/workbench/workspace/fill/solidPaint.tsx index 183a3ea..cddd039 100644 --- a/src/workbench/workspace/fill/solidPaint.tsx +++ b/src/workbench/workspace/fill/solidPaint.tsx @@ -72,8 +72,8 @@ export const SolidColorPaint = (props: SolidPaintProps) => { onChange?.({ ...data, color: { + ...data.color, ...rgbValue, - a: data.color.a, }, }) }, @@ -84,22 +84,70 @@ export const SolidColorPaint = (props: SolidPaintProps) => { event => { triggerChange(event.target.value) }, - [] + [triggerChange] ) const handleEnterChange: React.KeyboardEventHandler = - useCallback(event => { - triggerChange((event.target as HTMLInputElement).value) + useCallback( + event => { + triggerChange((event.target as HTMLInputElement).value) + }, + [triggerChange] + ) + + const triggerOpacityChange = useCallback( + (value: string) => { + const newOpacity = Number(value) + if (Number.isNaN(newOpacity)) { + return + } + onChange?.({ ...data, opacity: Math.min(newOpacity, 100) / 100 }) + }, + [onChange, data] + ) + + const handleOpacityBlur: ChangeEventHandler = useCallback( + event => { + triggerChange(event.target.value) + }, + [triggerOpacityChange] + ) + + const handleOpacityEnterChange: React.KeyboardEventHandler = + useCallback( + event => { + triggerOpacityChange((event.target as HTMLInputElement).value) + }, + [triggerOpacityChange] + ) + const handleOpacityInputRedoUndo: ChangeEventHandler = + useCallback(e => { + const { inputType } = e.nativeEvent as InputEvent + if (inputType === 'historyUndo' || inputType === 'historyRedo') { + triggerOpacityChange((e.target as HTMLInputElement).value) + } + }, []) + + const handleColorInputRedoUndo: ChangeEventHandler = + useCallback(e => { + const { inputType } = e.nativeEvent as InputEvent + if (inputType === 'historyUndo' || inputType === 'historyRedo') { + triggerChange((e.target as HTMLInputElement).value) + } }, []) return ( } onPressEnter={handleEnterChange} onBlur={handleBlur} + onChange={handleColorInputRedoUndo} addonAfter={ } diff --git a/src/workbench/workspace/transformPanel.tsx b/src/workbench/workspace/transformPanel.tsx index fd4b744..3f6dfb6 100644 --- a/src/workbench/workspace/transformPanel.tsx +++ b/src/workbench/workspace/transformPanel.tsx @@ -39,7 +39,18 @@ export const TransformPanel = ( }, 0) }, []) - const handleTestInput = useCallback(newNumber => {}, []) + const handleTestInput = useCallback( + (e: React.ChangeEvent) => { + const widget = latte.editor.getSelectionProxy() + if (widget) { + widget.move(pre => { + pre.x = Number(e.target.value) + return pre + }) + } + }, + [] + ) return ( @@ -55,7 +66,7 @@ export const TransformPanel = ( className="latte-workspace__raw-component__borderFocusWithin" prefix="X" value={left} - onChange={handleTestInput} + onBlur={handleTestInput} /> diff --git a/tsconfig.json b/tsconfig.json index 758c08c..36bd328 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,5 +28,5 @@ "jsx": "react-jsx" }, "include": ["src", "./typings"], - "exclude": ["rspack.*.js"] + "exclude": ["vite.config.js"] } diff --git a/typings/latte.d.ts b/typings/latte.d.ts index d17a707..657f698 100644 --- a/typings/latte.d.ts +++ b/typings/latte.d.ts @@ -49,7 +49,7 @@ declare namespace latte.editor { * set x */ - setX(newX: SetStateAction): void + move(newPosition: SetStateAction): void /** * get y @@ -86,5 +86,11 @@ declare namespace latte.editor { */ setHeight(newHeight: SetStateAction): void + + /** + * setFills + */ + + setFills(newFills: Paint[]): void } } diff --git a/typings/resource.d.ts b/typings/resource.d.ts index 692d88b..f613088 100644 --- a/typings/resource.d.ts +++ b/typings/resource.d.ts @@ -1 +1,3 @@ -declare module "*.svg"; \ No newline at end of file +declare module '*.svg' + +/// diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..00fea3b --- /dev/null +++ b/vite.config.js @@ -0,0 +1,37 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import svgr from "vite-plugin-svgr" +import browserslistToEsbuild from 'browserslist-to-esbuild' +import path from 'path' + +export default defineConfig({ + plugins: [react(), svgr({ include: '**/*.svg' })], + base: './', + server: { + port: 8000, + }, + esbuild: { + legalComments: 'none', + }, + build: { + emptyOutDir: true, + target: browserslistToEsbuild(), + rollupOptions: { + output: { + chunkFileNames: 'js/[name].[hash].js', + entryFileNames: 'js/[name].[hash].js', + assetFileNames: 'assets/[name].[hash].[ext]', + manualChunks: { + reactVendor: ['react', 'react-dom'], + }, + }, + }, + }, + resolve: { + alias: { + 'Latte': path.resolve(__dirname, "src"), + 'components': path.resolve(__dirname, "src/workbench/components"), + 'workbench': path.resolve(__dirname, "src/workbench"), + } + }, +}); \ No newline at end of file