diff --git a/package.json b/package.json index 464023e..44e12d4 100644 --- a/package.json +++ b/package.json @@ -5,15 +5,13 @@ "type": "module", "scripts": { "dev": "ts-node-esm script/dev.ts", - "build": "vue-tsc && vite build && ts-node-esm script/build.ts dist", - "build-gh": "vue-tsc && vite build --base=/HumanBreak/ && ts-node-esm script/build.ts gh", - "build-local": "vue-tsc && vite build --base=/ && ts-node-esm script/build.ts local", + "build": "vue-tsc --noEmit && ts-node-esm script/build.ts dist", "preview": "vite preview", "update": "ts-node-esm script/update.ts", "declare": "ts-node-esm script/declare.ts", "type": "vue-tsc --noEmit", "lines": "ts-node-esm script/lines.ts", - "declaration": "vue-tsc -p tsconfig.declaration.json" + "build-dts": "ts-node-esm script/buildDeclaration.ts" }, "dependencies": { "@ant-design/icons-vue": "^6.1.0", @@ -53,12 +51,13 @@ "form-data": "^4.0.0", "fs-extra": "^10.1.0", "less": "^4.2.0", - "rollup": "^3.28.1", + "rollup": "^3.29.4", "terser": "^5.19.4", "ts-node": "^10.9.1", "typescript": "^5.2.2", "unplugin-vue-components": "^0.22.12", "vite": "^4.4.9", + "vite-plugin-dts": "^3.7.2", "vue-tsc": "^1.8.8", "ws": "^8.13.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a923edc..7bbf7a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,22 +51,22 @@ devDependencies: version: 7.22.15(@babel/core@7.22.15) '@rollup/plugin-babel': specifier: ^6.0.3 - version: 6.0.3(@babel/core@7.22.15)(@types/babel__core@7.20.1)(rollup@3.28.1) + version: 6.0.3(@babel/core@7.22.15)(@types/babel__core@7.20.1)(rollup@3.29.4) '@rollup/plugin-commonjs': specifier: ^25.0.4 - version: 25.0.4(rollup@3.28.1) + version: 25.0.4(rollup@3.29.4) '@rollup/plugin-node-resolve': specifier: ^15.2.1 - version: 15.2.1(rollup@3.28.1) + version: 15.2.1(rollup@3.29.4) '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.28.1) + version: 5.0.2(rollup@3.29.4) '@rollup/plugin-terser': specifier: ^0.4.3 - version: 0.4.3(rollup@3.28.1) + version: 0.4.3(rollup@3.29.4) '@rollup/plugin-typescript': specifier: ^11.1.3 - version: 11.1.3(rollup@3.28.1)(typescript@5.2.2) + version: 11.1.3(rollup@3.29.4)(typescript@5.2.2) '@types/babel__core': specifier: ^7.20.1 version: 7.20.1 @@ -113,8 +113,8 @@ devDependencies: specifier: ^4.2.0 version: 4.2.0 rollup: - specifier: ^3.28.1 - version: 3.28.1 + specifier: ^3.29.4 + version: 3.29.4 terser: specifier: ^5.19.4 version: 5.19.4 @@ -126,10 +126,13 @@ devDependencies: version: 5.2.2 unplugin-vue-components: specifier: ^0.22.12 - version: 0.22.12(rollup@3.28.1)(vue@3.3.4) + version: 0.22.12(rollup@3.29.4)(vue@3.3.4) vite: specifier: ^4.4.9 version: 4.4.9(@types/node@18.17.14)(less@4.2.0)(terser@5.19.4) + vite-plugin-dts: + specifier: ^3.7.2 + version: 3.7.2(@types/node@18.17.14)(rollup@3.29.4)(typescript@5.2.2)(vite@4.4.9) vue-tsc: specifier: ^1.8.8 version: 1.8.8(typescript@5.2.2) @@ -199,6 +202,14 @@ packages: chalk: 2.4.2 dev: true + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -420,6 +431,12 @@ packages: resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dev: true + /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -448,12 +465,23 @@ packages: /@babel/highlight@7.22.13: resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: '@babel/helper-validator-identifier': 7.22.15 chalk: 2.4.2 js-tokens: 4.0.0 dev: true + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/parser@7.22.15: resolution: {integrity: sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==} engines: {node: '>=6.0.0'} @@ -1649,6 +1677,49 @@ packages: resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} dev: false + /@microsoft/api-extractor-model@7.28.3(@types/node@18.17.14): + resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0(@types/node@18.17.14) + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor@7.39.0(@types/node@18.17.14): + resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.3(@types/node@18.17.14) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0(@types/node@18.17.14) + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.4 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/tsdoc-config@0.16.2: + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: true + + /@microsoft/tsdoc@0.14.2: + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + dev: true + /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} requiresBuild: true @@ -1690,7 +1761,7 @@ packages: dev: true optional: true - /@rollup/plugin-babel@6.0.3(@babel/core@7.22.15)(@types/babel__core@7.20.1)(rollup@3.28.1): + /@rollup/plugin-babel@6.0.3(@babel/core@7.22.15)(@types/babel__core@7.20.1)(rollup@3.29.4): resolution: {integrity: sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1705,12 +1776,12 @@ packages: dependencies: '@babel/core': 7.22.15 '@babel/helper-module-imports': 7.22.15 - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) '@types/babel__core': 7.20.1 - rollup: 3.28.1 + rollup: 3.29.4 dev: true - /@rollup/plugin-commonjs@25.0.4(rollup@3.28.1): + /@rollup/plugin-commonjs@25.0.4(rollup@3.29.4): resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1719,16 +1790,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.28.1 + rollup: 3.29.4 dev: true - /@rollup/plugin-node-resolve@15.2.1(rollup@3.28.1): + /@rollup/plugin-node-resolve@15.2.1(rollup@3.29.4): resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1737,16 +1808,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.4 - rollup: 3.28.1 + rollup: 3.29.4 dev: true - /@rollup/plugin-replace@5.0.2(rollup@3.28.1): + /@rollup/plugin-replace@5.0.2(rollup@3.29.4): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1755,12 +1826,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) magic-string: 0.27.0 - rollup: 3.28.1 + rollup: 3.29.4 dev: true - /@rollup/plugin-terser@0.4.3(rollup@3.28.1): + /@rollup/plugin-terser@0.4.3(rollup@3.29.4): resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1769,13 +1840,13 @@ packages: rollup: optional: true dependencies: - rollup: 3.28.1 + rollup: 3.29.4 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.4 dev: true - /@rollup/plugin-typescript@11.1.3(rollup@3.28.1)(typescript@5.2.2): + /@rollup/plugin-typescript@11.1.3(rollup@3.29.4)(typescript@5.2.2): resolution: {integrity: sha512-8o6cNgN44kQBcpsUJTbTXMTtb87oR1O0zgP3Dxm71hrNgparap3VujgofEilTYJo+ivf2ke6uy3/E5QEaiRlDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1788,13 +1859,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) resolve: 1.22.4 - rollup: 3.28.1 + rollup: 3.29.4 typescript: 5.2.2 dev: true - /@rollup/pluginutils@5.0.4(rollup@3.28.1): + /@rollup/pluginutils@5.0.4(rollup@3.29.4): resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1806,7 +1877,56 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.28.1 + rollup: 3.29.4 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@3.29.4): + 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.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.4 + dev: true + + /@rushstack/node-core-library@3.62.0(@types/node@18.17.14): + resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 18.17.14 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.4 + semver: 7.5.4 + z-schema: 5.0.5 + dev: true + + /@rushstack/rig-package@0.5.1: + resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} + dependencies: + resolve: 1.22.4 + strip-json-comments: 3.1.1 + dev: true + + /@rushstack/ts-command-line@4.17.1: + resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} + dependencies: + '@types/argparse': 1.0.38 + argparse: 1.0.10 + colors: 1.2.5 + string-argv: 0.3.2 dev: true /@simonwep/pickr@1.8.2: @@ -1837,6 +1957,10 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true + /@types/argparse@1.0.38: + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + dev: true + /@types/babel__core@7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: @@ -1971,18 +2095,37 @@ packages: '@volar/source-map': 1.10.1 dev: true + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + /@volar/source-map@1.10.1: resolution: {integrity: sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==} dependencies: muggle-string: 0.3.1 dev: true + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + /@volar/typescript@1.10.1: resolution: {integrity: sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==} dependencies: '@volar/language-core': 1.10.1 dev: true + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: true @@ -2040,6 +2183,26 @@ packages: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 + /@vue/language-core@1.8.27(typescript@5.2.2): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.2.2 + vue-template-compiler: 2.7.14 + dev: true + /@vue/language-core@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: @@ -2176,6 +2339,15 @@ packages: indent-string: 4.0.0 dev: true + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2189,6 +2361,7 @@ packages: /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + requiresBuild: true dependencies: color-convert: 1.9.3 dev: true @@ -2262,6 +2435,12 @@ packages: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + /array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} dev: false @@ -2478,6 +2657,7 @@ packages: /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + requiresBuild: true dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -2559,6 +2739,7 @@ packages: /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + requiresBuild: true dependencies: color-name: 1.1.3 dev: true @@ -2572,6 +2753,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + requiresBuild: true dev: true /color-name@1.1.4: @@ -2583,6 +2765,11 @@ packages: hasBin: true dev: true + /colors@1.2.5: + resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} + engines: {node: '>=0.1.90'} + dev: true + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2598,6 +2785,13 @@ packages: engines: {node: '>= 6'} dev: true + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: true + optional: true + /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -2621,6 +2815,10 @@ packages: resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} dev: false + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -2855,6 +3053,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + requiresBuild: true dev: true /estree-walker@2.0.2: @@ -2873,6 +3072,10 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -2884,6 +3087,10 @@ packages: micromatch: 4.0.5 dev: true + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + /fast-xml-parser@4.2.7: resolution: {integrity: sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==} hasBin: true @@ -3009,6 +3216,15 @@ packages: universalify: 2.0.0 dev: true + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -3169,6 +3385,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + requiresBuild: true dev: true /has-property-descriptors@1.0.0: @@ -3274,6 +3491,11 @@ packages: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: false + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3466,6 +3688,10 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3484,6 +3710,10 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -3494,6 +3724,12 @@ packages: hasBin: true dev: true + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -3516,6 +3752,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} @@ -3578,6 +3818,14 @@ packages: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -4015,7 +4263,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -4026,6 +4274,10 @@ packages: engines: {node: '>= 0.10'} dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} dev: true @@ -4125,6 +4377,11 @@ packages: pump: 2.0.1 dev: true + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -4284,6 +4541,13 @@ packages: value-or-function: 3.0.0 dev: true + /resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + dev: true + /resolve@1.22.4: resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true @@ -4310,8 +4574,8 @@ packages: glob: 7.2.3 dev: true - /rollup@3.28.1: - resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -4475,6 +4739,10 @@ packages: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4498,6 +4766,11 @@ packages: engines: {node: '>=0.10'} dev: true + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -4548,6 +4821,11 @@ packages: min-indent: 1.0.1 dev: true + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: true @@ -4555,6 +4833,7 @@ packages: /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} + requiresBuild: true dependencies: has-flag: 3.0.0 dev: true @@ -4735,6 +5014,12 @@ packages: hasBin: true dev: true + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + /unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} engines: {node: '>=0.10.0'} @@ -4784,12 +5069,17 @@ packages: through2-filter: 3.0.0 dev: true + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} dev: true - /unplugin-vue-components@0.22.12(rollup@3.28.1)(vue@3.3.4): + /unplugin-vue-components@0.22.12(rollup@3.29.4)(vue@3.3.4): resolution: {integrity: sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==} engines: {node: '>=14'} peerDependencies: @@ -4800,7 +5090,7 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.6 - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.4) chokidar: 3.5.3 debug: 4.3.4 fast-glob: 3.3.1 @@ -4835,6 +5125,12 @@ packages: picocolors: 1.0.0 dev: true + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4854,6 +5150,11 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: true + /value-or-function@3.0.0: resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} engines: {node: '>= 0.10'} @@ -4916,6 +5217,30 @@ packages: replace-ext: 1.0.1 dev: true + /vite-plugin-dts@3.7.2(@types/node@18.17.14)(rollup@3.29.4)(typescript@5.2.2)(vite@4.4.9): + resolution: {integrity: sha512-kg//1nDA01b8rufJf4TsvYN8LMkdwv0oBYpiQi6nRwpHyue+wTlhrBiqgipdFpMnW1oOYv6ywmzE5B0vg6vSEA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': 7.39.0(@types/node@18.17.14) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@vue/language-core': 1.8.27(typescript@5.2.2) + debug: 4.3.4 + kolorist: 1.8.0 + typescript: 5.2.2 + vite: 4.4.9(@types/node@18.17.14)(less@4.2.0)(terser@5.19.4) + vue-tsc: 1.8.27(typescript@5.2.2) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + /vite@4.4.9(@types/node@18.17.14)(less@4.2.0)(terser@5.19.4): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -4948,7 +5273,7 @@ packages: esbuild: 0.18.20 less: 4.2.0 postcss: 8.4.29 - rollup: 3.28.1 + rollup: 3.29.4 terser: 5.19.4 optionalDependencies: fsevents: 2.3.3 @@ -4976,6 +5301,18 @@ packages: he: 1.2.0 dev: true + /vue-tsc@1.8.27(typescript@5.2.2): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.2.2) + semver: 7.5.4 + typescript: 5.2.2 + dev: true + /vue-tsc@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} hasBin: true @@ -5104,3 +5441,15 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + /z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.11.0 + optionalDependencies: + commander: 9.5.0 + dev: true diff --git a/public/_server/editor_file.js b/public/_server/editor_file.js index e1ded93..c6f05ff 100644 --- a/public/_server/editor_file.js +++ b/public/_server/editor_file.js @@ -1047,7 +1047,7 @@ editor_file = function (editor, callback) { for (var id_ in fmap) { fraw = fraw.replace('"' + id_ + '"', fmap[id_]) } - var datastr = 'var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = \n'; + var datastr = '///\nvar functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = \n'; datastr += fraw; fs.writeFile('project/functions.js', encode(datastr), 'base64', function (err, data) { callback(err); diff --git a/script/build.ts b/script/build.ts index 0d67c39..859718f 100644 --- a/script/build.ts +++ b/script/build.ts @@ -10,6 +10,9 @@ import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import { splitResorce } from './resource.js'; import compressing from 'compressing'; +import * as vite from 'vite'; +import legacy from '@vitejs/plugin-legacy'; +import { buildDeclaration } from './buildDeclaration.js'; const type = process.argv[2]; const map = false; @@ -18,117 +21,18 @@ const compress = type === 'dist'; (async function () { const timestamp = Date.now(); - // 1. 去除未使用的文件 - // const data = (() => { - // const data = fss.readFileSync('./public/project/data.js', 'utf-8'); - // const json = JSON.parse( - // data - // .split(/(\n|\r\n)/) - // .slice(1) - // .join('\n') - // ); - // return json; - // })() as { main: Record }; - // const main = data.main; - // try { - // const data = [ - // ['./dist/project/floors', '.js', 'floorIds'], - // ['./dist/project/bgms', '', 'bgms'], - // ['./dist/project/sounds', '', 'sounds'], - // ['./dist/project/images', '', 'images'], - // ['./dist/project/animates', '.animate', 'animates'], - // ['./dist/project/tilesets', '', 'tilesets'], - // ['./dist/project/fonts', '.ttf', 'fonts'] - // ]; - // await Promise.all( - // data.map(async v => { - // const all = await fs.readdir(`${v[0]}`); - // const data = main[v[2]].map(vv => vv + v[1]); - // all.forEach(async vv => { - // if (!data.includes(vv)) { - // await fs.rm(`${v[0]}/${vv}`); - // } - // }); - // }) - // ); - // if (!map) await fs.remove('./dist/maps/'); - // // 在线查看什么都看不到,这编辑器难道还需要留着吗? - // await fs.remove('./dist/_server'); - // await fs.remove('./dist/editor.html'); - // await fs.remove('./dist/server.cjs'); + // 1. vite打包 + await vite.build({ + plugins: [ + legacy({ + targets: ['defaults', 'not IE 11'], + polyfills: true, + modernPolyfills: true + }) + ] + }); - // await fs.remove('./dist/project/materials/airwall.png'); - // await fs.remove('./dist/project/materials/ground.png'); - // await fs.remove('./dist/project/materials/icons_old.png'); - // } catch (e) { - // console.log('去除未使用的文件失败!'); - // console.log(e); - // } - - // // 2. 压缩字体 - // try { - // // 获取要压缩的文字列表,libs & projects下的所有js文件 - // let texts = ``; - // const exclude = `\n \t`; - // const libs = await fs.readdir('./public/libs'); - // const project = await fs.readdir('./public/project'); - // const floors = await fs.readdir('./public/project/floors'); - // const assets = await fs.readdir('./dist/assets/'); - // const all = [ - // ...libs.map(v => `./public/libs/${v}`), - // ...project.map(v => `./public/project/${v}`), - // ...floors.map(v => `./public/project/floors/${v}`), - // ...assets.map(v => `./dist/assets/${v}`) - // ]; - // for await (const dir of all) { - // const stat = await fs.stat(dir); - // if (!stat.isFile()) continue; - // if (dir.endsWith('.ttf')) continue; - // const file = await fs.readFile(dir, 'utf-8'); - // for (let i = 0; i < file.length; i++) { - // const char = file[i]; - // if (!texts.includes(char) && !exclude.includes(char)) - // texts += char; - // } - // } - - // // 获取所有字体(直接压缩字体会报错 - // const fonts = main.fonts; - // await Promise.all([ - // ...fonts.map(v => - // (async () => { - // const fontmin = new Fontmin(); - // fontmin - // .src(`./public/project/fonts/${v}.ttf`) - // .dest('./dist/project/fonts') - // .use( - // Fontmin.glyph({ - // text: texts - // }) - // ); - // await new Promise(res => { - // fontmin.run(err => { - // if (err) throw err; - // res(''); - // }); - // }); - // })() - // ) - // ]); - // await Promise.all([ - // ...fonts.map(v => { - // return fs.rename( - // `./dist/project/fonts/${v}.ttf`, - // `./dist/project/fonts/${v}-${timestamp}.ttf` - // ); - // }) - // ]); - // } catch (e) { - // console.log('字体压缩失败'); - // console.log(e); - // } - - // 3. 压缩游戏进程 + // 2. 压缩游戏进程 try { await fs.remove('./dist/project/processG.min.js'); @@ -162,7 +66,7 @@ const compress = type === 'dist'; console.log(e); } - // 4. 压缩main.js + // 3. 压缩main.js try { // 先获取不能压缩的部分 const main = (await fs.readFile('./public/main.js', 'utf-8')) @@ -182,20 +86,79 @@ const compress = type === 'dist'; console.log(e); } - // 5. 杂项 - // try { - // await fs.copy('./LICENSE', './dist/LICENSE'); - // } catch (e) { - // console.log('添加杂项失败'); - // console.log(e); - // } + // 4. 打包类型标注 + try { + await buildDeclaration(); + } catch (e) { + console.log('打包类型标注失败'); + console.log(e); + } - // 6. 资源分离 - // if (resorce) { - // await splitResorce(type); - // } + // 5. 迁移类型标注文件 + try { + await fs.copyFile('./_temp/types/index.d.ts', './dist/index.d.ts'); + await fs.copy('./src/types', './dist/types'); + await fs.copy('./src/source', './dist/source'); + } catch (e) { + console.log('迁移类型标注文件'); + console.log(e); + } - // 7. 压缩 + // 6. 部分修改类型标注 + try { + const indexDTS = await fs.readFile('./dist/index.d.ts', 'utf-8'); + const re = + '///\n' + + indexDTS + .replaceAll('export declare', 'declare') + .replace(/export\s*\{\s*\};?/, '') + .replace(/import.*;/gu, '') + + `declare var Mota: IMota`; + await fs.writeFile('./dist/index.d.ts', re, 'utf-8'); + + const pluginDTS = await fs.readFile( + './dist/types/plugin.d.ts', + 'utf-8' + ); + const rep = pluginDTS.replace( + `declare const Mota: import('../game/system').IMota; +interface Window { + Mota: import('../game/system').IMota; +}`, + '' + ); + await fs.writeFile('./dist/types/plugin.d.ts', rep); + + const js = ['functions.js', 'plugins.js']; + for (const file of js) { + const info = await fs.readFile('./dist/project/' + file, 'utf-8'); + const re = info.replace( + /\/\/\/\/g, + `/// +///` + ); + await fs.writeFile('./dist/project/' + file, re, 'utf-8'); + } + } catch (e) { + console.log('修改类型标注失败'); + console.log(e); + } + + // 7. tsconfig.json + try { + const content = `{ + "compilerOptions": { + "lib": ["ESNext", "DOM", "DOM.Iterable"] + }, + "include": ["index.d.ts", "types/**/d.ts"] +}`; + await fs.writeFile('./dist/tsconfig.json', content, 'utf-8'); + } catch (e) { + console.log('添加tsconfig.json失败'); + console.log(e); + } + + // 8. 压缩 if (compress) { try { await fs.ensureDir('./out'); diff --git a/script/buildDeclaration.ts b/script/buildDeclaration.ts index d4c8759..cd05a6d 100644 --- a/script/buildDeclaration.ts +++ b/script/buildDeclaration.ts @@ -1,25 +1,23 @@ -import typescript from '@rollup/plugin-typescript'; -import fs from 'fs-extra'; -import * as rollup from 'rollup'; -import resolve from '@rollup/plugin-node-resolve'; +import { build } from 'vite'; +import dts from 'vite-plugin-dts'; + +if (process.argv[2] === 'exe') buildDeclaration(); export async function buildDeclaration() { - const build = await rollup.rollup({ - input: './src/core/index.ts', + const b = await build({ + build: { + lib: { + entry: './src/main.ts', + formats: ['es'], + fileName: 'index.js' + }, + outDir: './_temp/types' + }, plugins: [ - typescript({ - sourceMap: false, - declaration: true, - emitDeclarationOnly: true, - outDir: './dist/types/', - noEmit: false, - jsx: 'preserve' - }), - resolve() + dts({ + rollupTypes: true, + declarationOnly: true + }) ] }); - build.write({ - file: './dist/types/index.d.ts' - }); } -buildDeclaration(); diff --git a/src/game/system.ts b/src/game/system.ts index 01e82a2..d088c0d 100644 --- a/src/game/system.ts +++ b/src/game/system.ts @@ -47,8 +47,33 @@ import type * as toolboxTools from '@/plugin/ui/toolbox'; import type * as battle from './enemy/battle'; import type * as hero from './hero'; import type { Damage } from './enemy/damage'; +// ---------- 插件 +import type * as pop_r from '../plugin/pop'; +import type * as use_r from '../plugin/use'; +import type * as fly_r from '../plugin/ui/fly'; +import type * as shadow_r from '../plugin/shadow/shadow'; +import type * as gameShadow_r from '../plugin/shadow/gameShadow'; +import type * as gameCanvas_r from '../plugin/fx/gameCanvas'; +import type * as smooth_r from '../plugin/fx/smoothView'; +import type * as frag_r from '../plugin/fx/frag'; +import type * as utils_g from '../plugin/game/utils'; +import type * as shop_g from '../plugin/game/shop'; +import type * as replay_g from '../plugin/game/replay'; +import type * as removeMap_g from '../plugin/game/removeMap'; +import type * as remainEnemy_g from '../plugin/game/enemy/remainEnemy'; +import type * as heroFourFrames_g from '../plugin/game/fx/heroFourFrames'; +import type * as rewrite_g from '../plugin/game/fx/rewrite'; +import type * as itemDetail_g from '../plugin/game/fx/itemDetail'; +// ---------- 第三方库 +import type * as _axios from 'axios'; +import type * as _chartJs from 'chart.js'; +import type _jszip from 'jszip'; +import type * as _lodash from 'lodash-es'; +import type * as _lzString from 'lz-string'; +import type * as _mutateAnimate from 'mutate-animate'; +import type * as _vue from 'vue'; -interface ClassInterface { +export interface ClassInterface { // 渲染进程与游戏进程通用 EventEmitter: typeof EventEmitter; IndexedEventEmitter: typeof IndexedEventEmitter; @@ -77,7 +102,7 @@ interface ClassInterface { type _IBattle = typeof battle; type _IHero = typeof hero; -interface FunctionInterface extends _IBattle, _IHero { +export interface FunctionInterface extends _IBattle, _IHero { // 定义于渲染进程,录像验证中会出错 m: typeof m; icon: typeof icon; @@ -89,7 +114,7 @@ interface FunctionInterface extends _IBattle, _IHero { removeAnimate: typeof removeAnimate; } -interface VariableInterface { +export interface VariableInterface { // 定义于渲染进程,录像中会进行polyfill loading: typeof loading; hook: typeof hook; @@ -108,7 +133,7 @@ interface VariableInterface { enemySpecials: typeof specials; } -interface ModuleInterface { +export interface ModuleInterface { CustomComponents: { createSettingComponents: typeof createSettingComponents; createToolbarComponents: typeof createToolbarComponents; @@ -127,7 +152,7 @@ interface ModuleInterface { Damage: typeof Damage; } -interface SystemInterfaceMap { +export interface SystemInterfaceMap { class: ClassInterface; fn: FunctionInterface; var: VariableInterface; @@ -136,35 +161,35 @@ interface SystemInterfaceMap { type InterfaceType = keyof SystemInterfaceMap; -interface PluginInterface { +export interface PluginInterface { // 渲染进程定义的插件 - pop_r: typeof import('../plugin/pop'); - use_r: typeof import('../plugin/use'); - // animate: typeof import('../plugin/animateController'); - // utils: typeof import('../plugin/utils'); - // status: typeof import('../plugin/ui/statusBar'); - fly_r: typeof import('../plugin/ui/fly'); - // webglUtils: typeof import('../plugin/webgl/utils'); - shadow_r: typeof import('../plugin/shadow/shadow'); - gameShadow_r: typeof import('../plugin/shadow/gameShadow'); - // achievement: typeof import('../plugin/ui/achievement'); - // path: typeof import('../plugin/fx/path'); - gameCanvas_r: typeof import('../plugin/fx/gameCanvas'); - // noise: typeof import('../plugin/fx/noise'); - smooth_r: typeof import('../plugin/fx/smoothView'); - frag_r: typeof import('../plugin/fx/frag'); + pop_r: typeof pop_r; + use_r: typeof use_r; + // animate: typeof // animate + // utils: typeof // utils + // status: typeof // status + fly_r: typeof fly_r; + // webglUtils: typeof // webglUtils + shadow_r: typeof shadow_r; + gameShadow_r: typeof gameShadow_r; + // achievement: typeof // achievement + // path: typeof // path + gameCanvas_r: typeof gameCanvas_r; + // noise: typeof // noise + smooth_r: typeof smooth_r; + frag_r: typeof frag_r; // 游戏进程定义的插件 - utils_g: typeof import('../plugin/game/utils'); - shop_g: typeof import('../plugin/game/shop'); - replay_g: typeof import('../plugin/game/replay'); - removeMap_g: typeof import('../plugin/game/removeMap'); - remainEnemy_g: typeof import('../plugin/game/enemy/remainEnemy'); - heroFourFrames_g: typeof import('../plugin/game/fx/heroFourFrames'); - rewrite_g: typeof import('../plugin/game/fx/rewrite'); - itemDetail_g: typeof import('../plugin/game/fx/itemDetail'); + utils_g: typeof utils_g; + shop_g: typeof shop_g; + replay_g: typeof replay_g; + removeMap_g: typeof removeMap_g; + remainEnemy_g: typeof remainEnemy_g; + heroFourFrames_g: typeof heroFourFrames_g; + rewrite_g: typeof rewrite_g; + itemDetail_g: typeof itemDetail_g; } -interface PackageInterface { +export interface PackageInterface { axios: typeof import('axios'); 'chart.js': typeof import('chart.js'); jszip: typeof import('jszip'); diff --git a/src/main.ts b/src/main.ts index 91e94cf..7bfc967 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,8 @@ import App from './App.vue'; import './styles.less'; import 'ant-design-vue/dist/antd.dark.css'; +export * from './game/system'; + createApp(App).mount('#root'); main.init('play'); diff --git a/tsconfig.declaration.json b/tsconfig.declaration.json deleted file mode 100644 index 8819d4e..0000000 --- a/tsconfig.declaration.json +++ /dev/null @@ -1,34 +0,0 @@ -// packages/vlib-ui/tsconfig.declaration.json -{ - "compilerOptions": { - "experimentalDecorators": true, - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "moduleResolution": "Node", - "strict": true, - "jsx": "preserve", - "resolveJsonModule": true, - "isolatedModules": true, - "esModuleInterop": true, - "lib": ["ESNext", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - "baseUrl": ".", - "paths": { - "@/*": ["src/*"], - "@ui/*": ["src/ui/*"] - }, - "outDir": "dist/types/", - "declaration": true, - "emitDeclarationOnly": true - }, - "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.tsx", - "src/**/*.vue", - "mota.config.ts" - ], - "references": [{ "path": "./tsconfig.node.json" }], - "exclude": ["node_modules", "**/__tests__/**", "**/__demos__/**", "**/*.md"] -} diff --git a/vite.config.ts b/vite.config.ts index b901f5c..108f495 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,7 +4,7 @@ import legacy from '@vitejs/plugin-legacy'; import components from 'unplugin-vue-components/vite'; import vuejsx from '@vitejs/plugin-vue-jsx' import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; -import motaConfig from './mota.config'; +import dts from 'vite-plugin-dts' import { resolve } from 'path'; const FSHOST = 'http://127.0.0.1:3000/'; @@ -14,11 +14,6 @@ export default defineConfig({ plugins: [ vue(), vuejsx(), - legacy({ - targets: ['defaults', 'not IE 11'], - polyfills: true, - modernPolyfills: true - }), components({ resolvers: [AntDesignVueResolver()] }) ], base: `./`,