From d4e4806b94fb26ff6bec6574a802c7f40af12446 Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Thu, 24 Oct 2024 13:22:55 +0800 Subject: [PATCH] refactor: use monorepo for frontend --- .gitmodules | 3 + frontend/.env.docker | 3 - frontend/.eslintignore | 3 - frontend/.eslintrc.js | 20 - frontend/.gitignore | 3 +- frontend/apps/crawlab/index.html | 31 + frontend/apps/crawlab/package.json | 31 + frontend/apps/crawlab/pnpm-lock.yaml | 4511 +++ .../apps/crawlab/public/three/three.min.js | 26564 ++++++++++++++++ frontend/apps/crawlab/src/main.ts | 7 + frontend/apps/crawlab/src/shims-vue.d.ts | 6 + frontend/apps/crawlab/tsconfig.json | 41 + frontend/apps/crawlab/vite.config.ts | 46 + frontend/babel.config.js | 6 - frontend/index.html | 31 - frontend/jest.config.ts | 194 - frontend/package.json | 46 +- frontend/packages/crawlab-ui | 1 + frontend/pnpm-lock.yaml | 5862 +++- frontend/pnpm-workspace.yaml | 3 + frontend/tsconfig.base.json | 40 + frontend/turbo.json | 21 + frontend/vite.config.ts | 68 - frontend/vue.config.js | 68 - 24 files changed, 36178 insertions(+), 1431 deletions(-) create mode 100644 .gitmodules delete mode 100644 frontend/.env.docker delete mode 100644 frontend/.eslintignore delete mode 100644 frontend/.eslintrc.js create mode 100644 frontend/apps/crawlab/index.html create mode 100644 frontend/apps/crawlab/package.json create mode 100644 frontend/apps/crawlab/pnpm-lock.yaml create mode 100644 frontend/apps/crawlab/public/three/three.min.js create mode 100644 frontend/apps/crawlab/src/main.ts create mode 100644 frontend/apps/crawlab/src/shims-vue.d.ts create mode 100644 frontend/apps/crawlab/tsconfig.json create mode 100644 frontend/apps/crawlab/vite.config.ts delete mode 100644 frontend/babel.config.js delete mode 100644 frontend/index.html delete mode 100644 frontend/jest.config.ts create mode 160000 frontend/packages/crawlab-ui create mode 100644 frontend/pnpm-workspace.yaml create mode 100644 frontend/tsconfig.base.json create mode 100644 frontend/turbo.json delete mode 100644 frontend/vite.config.ts delete mode 100644 frontend/vue.config.js diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..9b4f4025 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "frontend/packages/crawlab-ui"] + path = frontend/packages/crawlab-ui + url = git@github.com:crawlab-team/crawlab-ui.git diff --git a/frontend/.env.docker b/frontend/.env.docker deleted file mode 100644 index dfa712ba..00000000 --- a/frontend/.env.docker +++ /dev/null @@ -1,3 +0,0 @@ -VUE_APP_API_BASE_URL=/api -VUE_APP_INIT_BAIDU_TONGJI= -VUE_APP_INIT_UMENG= diff --git a/frontend/.eslintignore b/frontend/.eslintignore deleted file mode 100644 index b16742a5..00000000 --- a/frontend/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -./src/i18n/**/*.ts -*/**/*.js -*.js diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js deleted file mode 100644 index 1b3b85b7..00000000 --- a/frontend/.eslintrc.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - root: true, - env: { - node: true - }, - 'extends': [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - '@vue/typescript/recommended' - ], - parserOptions: { - ecmaVersion: 2020 - }, - rules: { - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - '@typescript-eslint/no-explicit-any': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - '@typescript-eslint/camelcase': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - } -} diff --git a/frontend/.gitignore b/frontend/.gitignore index 77111eae..87f50dc6 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -30,4 +30,5 @@ lib/ **/node_modules **/package-lock.json -stats.html \ No newline at end of file +stats.html +.turbo \ No newline at end of file diff --git a/frontend/apps/crawlab/index.html b/frontend/apps/crawlab/index.html new file mode 100644 index 00000000..8e829861 --- /dev/null +++ b/frontend/apps/crawlab/index.html @@ -0,0 +1,31 @@ + + + + + + + + Crawlab + + + + + + + +
+ +
+ + + + diff --git a/frontend/apps/crawlab/package.json b/frontend/apps/crawlab/package.json new file mode 100644 index 00000000..377432da --- /dev/null +++ b/frontend/apps/crawlab/package.json @@ -0,0 +1,31 @@ +{ + "name": "crawlab", + "version": "0.7.0", + "scripts": { + "dev": "pnpm run serve", + "serve": "vite", + "preview": "vite preview", + "build": "vite build", + "build:analyze": "vite build --mode analyze", + "build:serve": "serve dist", + "test": "jest" + }, + "dependencies": { + "crawlab-ui": "workspace:crawlab-ui" + }, + "devDependencies": { + "@types/node": "^20.14.8", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/compiler-sfc": "^3.2.45", + "pnpm": "^9", + "rollup-plugin-external-globals": "^0.10.0", + "rollup-plugin-visualizer": "^5.12.0", + "sass": "^1.56.1", + "typescript": "^5", + "vite": "^5.4.6", + "vite-aliases": "^0.11.7", + "vite-plugin-dynamic-import": "^1.5.0", + "vite-plugin-externalize-deps": "^0.8.0", + "vue-tsc": "^2.0.22" + } +} diff --git a/frontend/apps/crawlab/pnpm-lock.yaml b/frontend/apps/crawlab/pnpm-lock.yaml new file mode 100644 index 00000000..e977a6c7 --- /dev/null +++ b/frontend/apps/crawlab/pnpm-lock.yaml @@ -0,0 +1,4511 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@element-plus/icons-vue': + specifier: ^2.3.1 + version: 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@fortawesome/fontawesome-common-types': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/fontawesome-svg-core': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-brands-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-regular-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-solid-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/vue-fontawesome': + specifier: ^3.0.8 + version: 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@popperjs/core': + specifier: ^2.11.8 + version: 2.11.8 + '@types/getos': + specifier: ^3.0.4 + version: 3.0.4 + '@types/humanize-duration': + specifier: ^3.27.4 + version: 3.27.4 + '@types/javascript-time-ago': + specifier: ^2.0.8 + version: 2.0.8 + '@types/md5': + specifier: ^2.3.5 + version: 2.3.5 + '@types/pinyin': + specifier: ^2.10.2 + version: 2.10.2 + '@types/showdown': + specifier: ^2.0.6 + version: 2.0.6 + '@types/url-join': + specifier: ^4.0.3 + version: 4.0.3 + async-validator: + specifier: ^4.2.5 + version: 4.2.5 + atom-material-icons: + specifier: ^3.0.0 + version: 3.0.0 + axios: + specifier: ^1.7.2 + version: 1.7.7 + chart.js: + specifier: ^4.4.3 + version: 4.4.5 + chartjs-adapter-date-fns: + specifier: ^3.0.0 + version: 3.0.0(chart.js@4.4.5)(date-fns@4.1.0) + core-js: + specifier: ^3.37.1 + version: 3.38.1 + crawlab-ui: + specifier: 0.7.0-rc3 + version: 0.7.0-rc3(dlwfpvqjxhvrevoazxvsg7egqu) + crawlab-vue3-dropzone: + specifier: 3.0.3 + version: 3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + cron-parser: + specifier: ^4.9.0 + version: 4.9.0 + cronstrue: + specifier: ^2.50.0 + version: 2.50.0 + dayjs: + specifier: ^1.11.11 + version: 1.11.13 + element-plus: + specifier: ^2.7.6 + version: 2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + font-awesome: + specifier: ^4.7.0 + version: 4.7.0 + humanize-duration: + specifier: ^3.32.1 + version: 3.32.1 + javascript-time-ago: + specifier: ^2.5.10 + version: 2.5.11 + md5: + specifier: ^2.3.0 + version: 2.3.0 + monaco-editor: + specifier: ^0.50.0 + version: 0.50.0 + normalize.css: + specifier: ^8.0.1 + version: 8.0.1 + os-name: + specifier: ^5.0.1 + version: 5.0.1 + pinyin: + specifier: ^2.10.2 + version: 2.11.2 + point-cluster: + specifier: ^3.1.8 + version: 3.1.8 + showdown: + specifier: ^2.1.0 + version: 2.1.0 + three: + specifier: ^0.166.0 + version: 0.166.1 + url-join: + specifier: ^4.0.1 + version: 4.0.1 + vue: + specifier: ^3.4 + version: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue-clipboard3: + specifier: ^2.0.0 + version: 2.0.0 + vue-i18n: + specifier: 9.13.1 + version: 9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue-router: + specifier: 4.4.0 + version: 4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vuex: + specifier: ^4.1.0 + version: 4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + devDependencies: + '@types/node': + specifier: ^18.11.10 + version: https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz + '@vitejs/plugin-vue': + specifier: ^3.2.0 + version: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1))(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@vue/compiler-sfc': + specifier: ^3.2.45 + version: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz + rollup-plugin-external-globals: + specifier: ^0.8.0 + version: 0.8.0(rollup@3.26.2) + rollup-plugin-visualizer: + specifier: ^5.9.2 + version: 5.9.2(rollup@3.26.2) + typescript: + specifier: ^4.6.4 + version: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz + vite: + specifier: ^3.2.4 + version: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + vite-aliases: + specifier: ^0.9.7 + version: https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + vite-plugin-dynamic-import: + specifier: ^1.2.4 + version: https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz + vite-plugin-externalize-deps: + specifier: ^0.7.0 + version: 0.7.0(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1)) + vue-tsc: + specifier: ^1.0.9 + version: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@arr/every@1.0.1': + resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} + engines: {node: '>=4'} + + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz': + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} + version: 7.19.4 + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz': + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + version: 7.19.1 + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz': + resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz} + version: 7.20.5 + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + engines: {node: '>=6.9.0'} + + '@babel/types@https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz': + resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz} + version: 7.20.5 + engines: {node: '>=6.9.0'} + + '@codemirror/autocomplete@6.18.1': + resolution: {integrity: sha512-iWHdj/B1ethnHRTwZj+C1obmmuCzquH29EbcKr0qIjA9NfDeBDJ7vs+WOHsFeLeflE4o+dHfYndJloMKHUkWUA==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + + '@codemirror/commands@6.7.0': + resolution: {integrity: sha512-+cduIZ2KbesDhbykV02K25A5xIVrquSPz4UxxYBemRlAT2aW8dhwUgLDwej7q/RJUHKk4nALYcR1puecDvbdqw==} + + '@codemirror/lang-json@6.0.1': + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + + '@codemirror/language@6.10.3': + resolution: {integrity: sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==} + + '@codemirror/lint@6.8.2': + resolution: {integrity: sha512-PDFG5DjHxSEjOXk9TQYYVjZDqlZTFaDBfhQixHnQOEVDDNHUbEh/hstAjcQJaA6FQdZTD1hquXTK0rVBLADR1g==} + + '@codemirror/search@6.5.6': + resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + + '@codemirror/state@6.4.1': + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + + '@codemirror/view@6.34.1': + resolution: {integrity: sha512-t1zK/l9UiRqwUNPm+pdIT0qzJlzuVckbTEMVNFhfWkGiBQClstzg+78vedCvLSX0xJEZ6lwZbPpnljL7L6iwMQ==} + + '@ctrl/tinycolor@3.4.1': + resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} + engines: {node: '>=10'} + + '@element-plus/icons-vue@2.3.1': + resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} + version: 2.3.1 + peerDependencies: + vue: ^3.2.0 + + '@esbuild/android-arm@0.15.16': + resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/linux-loong64@0.15.16': + resolution: {integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.11': + resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + + '@fortawesome/fontawesome-common-types@6.6.0': + resolution: {integrity: sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==} + engines: {node: '>=6'} + + '@fortawesome/fontawesome-svg-core@6.6.0': + resolution: {integrity: sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==} + engines: {node: '>=6'} + + '@fortawesome/free-brands-svg-icons@6.6.0': + resolution: {integrity: sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ==} + engines: {node: '>=6'} + + '@fortawesome/free-regular-svg-icons@6.6.0': + resolution: {integrity: sha512-Yv9hDzL4aI73BEwSEh20clrY8q/uLxawaQ98lekBx6t9dQKDHcDzzV1p2YtBGTtolYtNqcWdniOnhzB+JPnQEQ==} + engines: {node: '>=6'} + + '@fortawesome/free-solid-svg-icons@6.6.0': + resolution: {integrity: sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==} + engines: {node: '>=6'} + + '@fortawesome/vue-fontawesome@3.0.8': + resolution: {integrity: sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==} + version: 3.0.8 + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + vue: '>= 3.0.0 < 4' + + '@intlify/core-base@9.13.1': + resolution: {integrity: sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@9.13.1': + resolution: {integrity: sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==} + engines: {node: '>= 16'} + + '@intlify/shared@9.13.1': + resolution: {integrity: sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==} + engines: {node: '>= 16'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jsep-plugin/assignment@1.2.1': + resolution: {integrity: sha512-gaHqbubTi29aZpVbBlECRpmdia+L5/lh2BwtIJTmtxdbecEyyX/ejAOg7eQDGNvGOUmPY7Z2Yxdy9ioyH/VJeA==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/regex@1.0.3': + resolution: {integrity: sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsonquerylang/jsonquery@3.1.1': + resolution: {integrity: sha512-P6Qo5egd3W8TBpqQsqaZtZ9lPO7oXBM21QdkYamCAYZHv9VCPXiI8NeIuSoXdoe5zKVZPUWmqaI14uacJLmcNw==} + hasBin: true + + '@kurkle/color@0.3.2': + resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + + '@lexical/clipboard@0.16.1': + resolution: {integrity: sha512-0dWs/SwKS5KPpuf6fUVVt9vSCl6HAqcDGhSITw/okv0rrIlXTUT6WhVsMJtXfFxTyVvwMeOecJHvQH3i/jRQtA==} + + '@lexical/code@0.16.1': + resolution: {integrity: sha512-pOC28rRZ2XkmI2nIJm50DbKaCJtk5D0o7r6nORYp4i0z+lxt5Sf2m82DL9ksUHJRqKy87pwJDpoWvJ2SAI0ohw==} + + '@lexical/history@0.16.1': + resolution: {integrity: sha512-WQhScx0TJeKSQAnEkRpIaWdUXqirrNrom2MxbBUc/32zEUMm9FzV7nRGknvUabEFUo7vZq6xTZpOExQJqHInQA==} + + '@lexical/html@0.16.1': + resolution: {integrity: sha512-vbtAdCvQ3PaAqa5mFmtmrvbiAvjCu1iXBAJ0bsHqFXCF2Sba5LwHVe8dUAOTpfEZEMbiHfjul6b5fj4vNPGF2A==} + + '@lexical/link@0.16.1': + resolution: {integrity: sha512-zG36gEnEqbIe6tK/MhXi7wn/XMY/zdivnPcOY5WyC3derkEezeLSSIFsC1u5UNeK5pbpNMSy4LDpLhi1Ww4Y5w==} + + '@lexical/list@0.16.1': + resolution: {integrity: sha512-i9YhLAh5N6YO9dP+R1SIL9WEdCKeTiQQYVUzj84vDvX5DIBxMPUjTmMn3LXu9T+QO3h1s2L/vJusZASrl45eAw==} + + '@lexical/markdown@0.16.1': + resolution: {integrity: sha512-0sBLttMvfQO/hVaIqpHdvDowpgV2CoRuWo2CNwvRLZPPWvPVjL4Nkb73wmi8zAZsAOTbX2aw+g4m/+k5oJqNig==} + + '@lexical/rich-text@0.16.1': + resolution: {integrity: sha512-4uEVXJur7tdSbqbmsToCW4YVm0AMh4y9LK077Yq2O9hSuA5dqpI8UbTDnxZN2D7RfahNvwlqp8eZKFB1yeiJGQ==} + + '@lexical/selection@0.16.1': + resolution: {integrity: sha512-+nK3RvXtyQvQDq7AZ46JpphmM33pwuulwiRfeXR5T9iFQTtgWOEjsAi/KKX7vGm70BxACfiSxy5QCOgBWFwVJg==} + + '@lexical/table@0.16.1': + resolution: {integrity: sha512-GWb0/MM1sVXpi1p2HWWOBldZXASMQ4c6WRNYnRmq7J/aB5N66HqQgJGKp3m66Kz4k1JjhmZfPs7F018qIBhnFQ==} + + '@lexical/text@0.16.1': + resolution: {integrity: sha512-Os/nKQegORTrKKN6vL3/FMVszyzyqaotlisPynvTaHTUC+yY4uyjM2hlF93i5a2ixxyiPLF9bDroxUP96TMPXg==} + + '@lexical/utils@0.16.1': + resolution: {integrity: sha512-BVyJxDQi/rIxFTDjf2zE7rMDKSuEaeJ4dybHRa/hRERt85gavGByQawSLeQlTjLaYLVsy+x7wCcqh2fNhlLf0g==} + + '@lezer/common@1.2.3': + resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + + '@lezer/json@1.0.2': + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + + '@mapbox/node-pre-gyp@1.0.10': + resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} + hasBin: true + + '@nodelib/fs.scandir@https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + version: 2.1.5 + engines: {node: '>= 8'} + + '@nodelib/fs.stat@https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + version: 2.0.5 + engines: {node: '>= 8'} + + '@nodelib/fs.walk@https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + version: 1.2.8 + engines: {node: '>= 8'} + + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} + + '@polka/url@0.5.0': + resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} + + '@polka/url@1.0.0-next.21': + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@replit/codemirror-indentation-markers@6.5.3': + resolution: {integrity: sha512-hL5Sfvw3C1vgg7GolLe/uxX5T3tmgOA3ZzqlMv47zjU1ON51pzNWiVbS22oh6crYhtVhv8b3gdXwoYp++2ilHw==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + + '@rollup/pluginutils@5.0.2': + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@sphinxxxx/color-conversion@2.2.2': + resolution: {integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==} + + '@sxzz/popperjs-es@2.11.7': + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@tweenjs/tween.js@23.1.3': + resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} + + '@types/estree@1.0.0': + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/getos@3.0.4': + resolution: {integrity: sha512-OsNVsuGEBd5QoeXTgjPmA89a465hjQithLMImsiJlIi0aYP8axKWtWrsmEMfm50w6EL2oRzCz+cLkZmp9/LfZw==} + + '@types/humanize-duration@3.27.4': + resolution: {integrity: sha512-yaf7kan2Sq0goxpbcwTQ+8E9RP6HutFBPv74T/IA/ojcHKhuKVlk2YFYyHhWZeLvZPzzLE3aatuQB4h0iqyyUA==} + + '@types/javascript-time-ago@2.0.8': + resolution: {integrity: sha512-X77q3xUzWVn0qohgurKE1G5NiXZjee8VbLqaukW/HXVkz7bdCFJgOPQ3JVB4IkrDhMS4CviFTmpZuNVg0i2QFA==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.10': + resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} + + '@types/md5@2.3.5': + resolution: {integrity: sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==} + + '@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz': + resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==, tarball: https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz} + version: 18.11.10 + + '@types/pinyin@2.10.2': + resolution: {integrity: sha512-jLzlRkaLRLg+lgYPjOuP3HX2cozUkhXls5GTXopsKuKJ9lDGlIAb88OoIztH6TbNUsoJnl/7e/kjaumA5IKKJg==} + + '@types/showdown@2.0.6': + resolution: {integrity: sha512-pTvD/0CIeqe4x23+YJWlX2gArHa8G0J0Oh6GKaVXV7TAeickpkkZiNOgFcFcmLQ5lB/K0qBJL1FtRYltBfbGCQ==} + + '@types/stats.js@0.17.3': + resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} + + '@types/three@0.166.0': + resolution: {integrity: sha512-FHMnpcdhdbdOOIYbfkTkUVpYMW53odxbTRwd0/xJpYnTzEsjnVnondGAvHZb4z06UW0vo6WPVuvH0/9qrxKx7g==} + + '@types/url-join@4.0.3': + resolution: {integrity: sha512-3l1qMm3wqO0iyC5gkADzT95UVW7C/XXcdvUcShOideKF0ddgVRErEQQJXBd2kvQm+aSgqhBGHGB38TgMeT57Ww==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@types/webxr@0.5.20': + resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} + + '@vitejs/plugin-vue@https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz': + resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz} + version: 3.2.0 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + vue: ^3.2.25 + + '@volar/language-core@https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz': + resolution: {integrity: sha512-YwUYKxIyDc+Fq3kQ6BGGfkrKCG5JzE2Yr6vMxrxEXW2rg/gsq3JgMk/4sI8ybRsaTirhCB4V8+AIVYsvcRxgig==, tarball: https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz} + version: 1.0.11 + + '@volar/source-map@https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz': + resolution: {integrity: sha512-tkuV9MD+OuiZfHA0qZXrPdW6F7TvnpnuTan6Qe7UGUs9+sflezlMJdjaYdGgQObfP+06pcT1E3xdkOoi08ZyyQ==, tarball: https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz} + version: 1.0.11 + + '@volar/typescript@https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz': + resolution: {integrity: sha512-mq7wDDAs0Eb43jev2FxbowuiwWqvL3kb+tar1we8VQbdabpyQ5dmbWPwo/IglevMmW3SKo1Et+6rqAeZpXNnPQ==, tarball: https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz} + version: 1.0.11 + + '@volar/vue-language-core@https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz': + resolution: {integrity: sha512-A3ODs0/ua7BcpSSnE7KtO8bzWsYsbOJRyW2Q/2uktxlfHj8srln3JdgK/mNlIgfnWtACbE5K+EfMJOgJKv864A==, tarball: https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz} + version: 1.0.11 + + '@volar/vue-typescript@https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz': + resolution: {integrity: sha512-jlnFPvBcTyPiAbGlgjhKK7fp3Q+Z7Z5eU1NTbTSS0lQC8Gog3sh2UxLAFG5Voe1gHIxasoOEPXzMR0CWF4bKbA==, tarball: https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz} + version: 1.0.11 + + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} + + '@vue/compiler-core@https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz': + resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz} + version: 3.2.45 + + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} + + '@vue/compiler-dom@https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz': + resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz} + version: 3.2.45 + + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} + + '@vue/compiler-sfc@https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz': + resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz} + version: 3.2.45 + + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} + + '@vue/compiler-ssr@https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz': + resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz} + version: 3.2.45 + + '@vue/devtools-api@6.4.5': + resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/reactivity-transform@https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz': + resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz} + version: 3.2.45 + + '@vue/reactivity@3.5.12': + resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} + + '@vue/reactivity@https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz': + resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==, tarball: https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz} + version: 3.2.45 + + '@vue/runtime-core@3.5.12': + resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} + + '@vue/runtime-dom@3.5.12': + resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} + + '@vue/server-renderer@3.5.12': + resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} + version: 3.5.12 + peerDependencies: + vue: 3.5.12 + + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + + '@vue/shared@https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz': + resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz} + version: 3.2.45 + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + version: 9.13.0 + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + version: 9.13.0 + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-dynamic-import@4.0.0: + resolution: {integrity: sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==} + deprecated: This is probably built in to whatever tool you're using. If you still need it... idk + peerDependencies: + acorn: ^6.0.0 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + version: 3.1.3 + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-bounds@1.0.1: + resolution: {integrity: sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==} + + array-normalize@1.1.4: + resolution: {integrity: sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==} + + array-timsort@https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==, tarball: https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz} + version: 1.0.3 + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atom-material-icons@3.0.0: + resolution: {integrity: sha512-qtMR5KxQh82iLIFOdrQZViq21GTNT+/mccrVAg41hIlrhpwHAEjCeGj91Iyas9GL28ld0D0hagHv6ipGWlLZHw==} + + attr-accept@2.2.2: + resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} + engines: {node: '>=4'} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + version: 1.0.2 + + binary-extensions@https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + version: 2.2.0 + engines: {node: '>=8'} + + binary-search-bounds@2.0.5: + resolution: {integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + version: 2.0.1 + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + braces@https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + version: 3.0.2 + engines: {node: '>=8'} + + buble@0.19.8: + resolution: {integrity: sha512-IoGZzrUTY5fKXVkgGHw3QeXFMUNBFv+9l8a4QJKG1JhG3nCMHTdEX1DCOg8568E2Q9qvAQIiSokv6Jsgx8p2cA==} + hasBin: true + + bubleify@1.2.1: + resolution: {integrity: sha512-vp3NHmaQVoKaKWvi15FTMinPNjfp+47+/kFJ9ifezdMF/CBLArCxDVUh+FQE3qRxCRj1qyjJqilTBHHqlM8MaQ==} + engines: {node: '>=4.0.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + chart.js@4.4.5: + resolution: {integrity: sha512-CVVjg1RYTJV9OCC8WeJPMx8gsV8K6WIyIEQUE3ui4AR9Hfgls9URri6Ja3hyMVBbTF8Q2KFa19PE815gWcWhng==} + engines: {pnpm: '>=8'} + + chartjs-adapter-date-fns@3.0.0: + resolution: {integrity: sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==} + peerDependencies: + chart.js: '>=2.8.0' + date-fns: '>=2.0.0' + + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + + chokidar@https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + version: 3.5.3 + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + clamp@1.0.1: + resolution: {integrity: sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==} + + clipboard@2.0.11: + resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + + codemirror-wrapped-line-indent@1.0.8: + resolution: {integrity: sha512-5UwuHCz4oAZuvot1DbfFxSxJacTESdNGa/KpJD7HfpVpDAJdgB1vV9OG4b4pkJqPWuOfIpFLTQEKS85kTpV+XA==} + peerDependencies: + '@codemirror/language': ^6.9.0 + '@codemirror/state': ^6.2.1 + '@codemirror/view': ^6.17.1 + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@1.1.1: + resolution: {integrity: sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA==} + engines: {node: '>= 0.6.x'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + comment-json@https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz: + resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==, tarball: https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz} + version: 4.2.3 + engines: {node: '>= 6'} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + consola@https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, tarball: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz} + version: 2.15.3 + + console-clear@1.1.1: + resolution: {integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==} + engines: {node: '>=4'} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + core-js@3.38.1: + resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} + + core-util-is@https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} + version: 1.0.3 + + crawlab-ui@0.7.0-rc3: + resolution: {integrity: sha512-WF7DLjrXa0J3uY/u7iTtZyqbhCIHZaW2K5dWHMj28GCaT69uvPRR32AfZPWag5sarqXdOmKNSOt5NidAPKqKpQ==} + peerDependencies: + '@element-plus/icons-vue': ^2.3.1 + '@fortawesome/fontawesome-common-types': ^6.5.2 + '@fortawesome/fontawesome-svg-core': ^6.5.2 + '@fortawesome/free-brands-svg-icons': ^6.5.2 + '@fortawesome/free-regular-svg-icons': ^6.5.2 + '@fortawesome/free-solid-svg-icons': ^6.5.2 + '@fortawesome/vue-fontawesome': ^3.0.8 + '@lexical/code': ^0.16.1 + '@lexical/history': ^0.16.1 + '@lexical/html': ^0.16.1 + '@lexical/link': ^0.16.1 + '@lexical/list': ^0.16.1 + '@lexical/markdown': ^0.16.1 + '@lexical/rich-text': ^0.16.1 + '@lexical/selection': ^0.16.1 + '@lexical/table': ^0.16.1 + '@lexical/text': ^0.16.1 + '@lexical/utils': ^0.16.1 + '@popperjs/core': ^2.11.8 + '@types/getos': ^3.0.4 + '@types/humanize-duration': ^3.27.4 + '@types/javascript-time-ago': ^2.0.8 + '@types/lodash': ^4.17.6 + '@types/md5': ^2.3.5 + '@types/pinyin': ^2.10.2 + '@types/showdown': ^2.0.6 + '@types/three': ^0.166.0 + '@types/url-join': ^4.0.3 + async-validator: ^4.2.5 + atom-material-icons: ^3.0.0 + axios: ^1.7.2 + chart.js: ^4.4.3 + chartjs-adapter-date-fns: ^3.0.0 + clipboard: ^2.0.11 + core-js: ^3.37.1 + crawlab-vue3-dropzone: 3.0.3 + cron-parser: ^4.9.0 + cronstrue: ^2.50.0 + dayjs: ^1.11.11 + element-plus: ^2.7.6 + font-awesome: ^4.7.0 + humanize-duration: ^3.32.1 + javascript-time-ago: ^2.5.10 + lexical: ^0.16.1 + lodash: ^4.17.21 + md5: ^2.3.0 + mitt: ^3.0.1 + monaco-editor: ^0.50.0 + normalize.css: ^8.0.1 + os-name: ^5.0.1 + pinyin: ^2.10.2 + point-cluster: ^3.1.8 + prismjs: ^1.29.0 + showdown: ^2.1.0 + three: ^0.166.1 + tiny-invariant: ^1.3.3 + url-join: ^4.0.1 + url-regex: ^5.0.0 + vite-svg-loader: ^5.1.0 + vue: ^3.4 + vue-chartjs: ^5.3.1 + vue-clipboard3: ^2.0.0 + vue-i18n: 9.13.1 + vue-router: ^4.4.0 + vuex: ^4.1.0 + + crawlab-vue3-dropzone@3.0.3: + resolution: {integrity: sha512-s/GHSTteFqJcMk14Xkp1imwEyrOCa+uwwH1eCsTAxVzaYocpiDpbDjQ3u3vrMyws9InsqqgtmAJhy2vGHEsk/Q==} + version: 3.0.3 + peerDependencies: + vue: '>=3.2.45' + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + cron-parser@4.9.0: + resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} + engines: {node: '>=12.0.0'} + + cronstrue@2.50.0: + resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} + hasBin: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + de-indent@https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, tarball: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz} + version: 1.0.2 + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegate@3.2.0: + resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dtype@2.0.0: + resolution: {integrity: sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==} + engines: {node: '>= 0.8.0'} + + element-plus@2.8.5: + resolution: {integrity: sha512-Px+kPbRTVvn5oa5+9saa7QEOnUweKXm0JVI7yJHzKF/doQGixwcFMsQEF2+3Fy62EA/7dRRKVuhsNGGZYNk3cw==} + version: 2.8.5 + peerDependencies: + vue: ^3.2.0 + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + esbuild-android-64@0.15.16: + resolution: {integrity: sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.15.16: + resolution: {integrity: sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.15.16: + resolution: {integrity: sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.15.16: + resolution: {integrity: sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.15.16: + resolution: {integrity: sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.15.16: + resolution: {integrity: sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.15.16: + resolution: {integrity: sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.15.16: + resolution: {integrity: sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.15.16: + resolution: {integrity: sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.15.16: + resolution: {integrity: sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.15.16: + resolution: {integrity: sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.15.16: + resolution: {integrity: sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.15.16: + resolution: {integrity: sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.15.16: + resolution: {integrity: sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.15.16: + resolution: {integrity: sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.15.16: + resolution: {integrity: sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.15.16: + resolution: {integrity: sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.15.16: + resolution: {integrity: sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.15.16: + resolution: {integrity: sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.15.16: + resolution: {integrity: sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz: + resolution: {integrity: sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz} + version: 0.15.16 + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esprima@https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} + version: 4.0.1 + engines: {node: '>=4'} + hasBin: true + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + estree-walker@https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + version: 2.0.2 + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + version: 3.2.12 + engines: {node: '>=8.6.0'} + + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + + fastq@https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz} + version: 1.14.0 + + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + + file-selector@0.2.4: + resolution: {integrity: sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA==} + engines: {node: '>= 10'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + fill-range@https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + version: 7.0.1 + engines: {node: '>=8'} + + flatten-vertex-data@1.0.2: + resolution: {integrity: sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + font-awesome@4.7.0: + resolution: {integrity: sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==} + engines: {node: '>=0.10.3'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + version: 1.1.1 + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-port@3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + version: 5.1.2 + engines: {node: '>= 6'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + good-listener@1.2.2: + resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-own-prop@https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==, tarball: https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz} + version: 2.0.0 + engines: {node: '>=8'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has@https://registry.npmmirror.com/has/-/has-1.0.3.tgz: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + version: 1.0.3 + engines: {node: '>= 0.4.0'} + + he@https://registry.npmmirror.com/he/-/he-1.2.0.tgz: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} + version: 1.2.0 + hasBin: true + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-duration@3.32.1: + resolution: {integrity: sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==} + + immutable-json-patch@6.0.1: + resolution: {integrity: sha512-BHL/cXMjwFZlTOffiWNdY8ZTvNyYLrutCnWxrcKPHr5FqpAb6vsO6WWSPnVSys3+DruFN6lhHJJPHi8uELQL5g==} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + + is-binary-path@https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + version: 2.1.0 + engines: {node: '>=8'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-core-module@https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz} + version: 2.11.0 + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-extglob@https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + version: 2.1.1 + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-glob@https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + version: 4.0.3 + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-number@https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + version: 7.0.0 + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-reference@3.0.1: + resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + javascript-time-ago@2.5.11: + resolution: {integrity: sha512-Zeyf5R7oM1fSMW9zsU3YgAYwE0bimEeF54Udn2ixGd8PUwu+z1Yc5t4Y8YScJDMHD6uCx6giLt3VJR5K4CMwbg==} + + jmespath@0.16.0: + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + jsep@1.3.9: + resolution: {integrity: sha512-i1rBX5N7VPl0eYb6+mHNp52sEuaS2Wi8CDYx1X5sn9naevL78+265XJqy1qENEk7mRKwS06NHpUqiBwR7qeodw==} + engines: {node: '>= 10.16.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + json-editor-vue@0.17.2: + resolution: {integrity: sha512-P38IvEwQJe4IHFpZe1YG2CWOK6pCjeHmPu2tLs01IiV0kz8QBoHYC7N5ZORlGTL4tQFVOosmnI1gjXztywHtig==} + version: 0.17.2 + peerDependencies: + '@vue/composition-api': '>=1' + vue: 2||3 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-source-map@0.6.1: + resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + + jsonpath-plus@10.0.1: + resolution: {integrity: sha512-30DeH2QD4nL1IpDLPIFz09G5XyLvh+oNMUI2Zxf4tbrlsVHs0e3VPnwpOnSTFb4yM0dfQK2WGKLsSaAS8V62rw==} + engines: {node: '>=18.0.0'} + hasBin: true + + jsonrepair@3.8.1: + resolution: {integrity: sha512-5wnjaO53EJOhfLFY92nvBz2B9gqF9ql/D4HKUb1WOSBaqtVcAifFfmurblnhCJn/ySqKFA8U3n7nhGMAu/hEjQ==} + hasBin: true + + keypress@0.1.0: + resolution: {integrity: sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + lexical@0.16.1: + resolution: {integrity: sha512-+R05d3+N945OY8pTUjTqQrWoApjC+ctzvjnmNETtx9WmVAaiW0tQVG+AYLt5pDGY8dQXtd4RPorvnxBTECt9SA==} + + local-access@1.1.0: + resolution: {integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==} + engines: {node: '>=6'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash-unified@1.0.3: + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + + lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + + lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + + lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + luxon@3.5.0: + resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + engines: {node: '>=12'} + + macos-release@3.1.0: + resolution: {integrity: sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.30.1: + resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + engines: {node: '>=12'} + + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + magic-string@https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} + version: 0.25.9 + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + matchit@1.1.0: + resolution: {integrity: sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==} + engines: {node: '>=6'} + + math-log2@1.0.1: + resolution: {integrity: sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==} + engines: {node: '>=0.10.0'} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + version: 1.4.1 + engines: {node: '>= 8'} + + meshoptimizer@0.18.1: + resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + micromatch@https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + version: 4.0.5 + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz: + resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz} + version: 5.1.1 + engines: {node: '>=10'} + + minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + monaco-editor@0.50.0: + resolution: {integrity: sha512-8CclLCmrRRh+sul7C08BmPBP3P8wVWfBHomsTcndxg5NRCEPfu/mc2AGU8k37ajjDVXcXFc12ORAMUkmk+lkFA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + muggle-string@https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz: + resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==, tarball: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz} + version: 0.1.0 + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} + version: 3.3.4 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + nodejieba@2.5.2: + resolution: {integrity: sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==} + engines: {node: '>= 10.20.0'} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + normalize-path@https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + version: 3.0.0 + engines: {node: '>=0.10.0'} + + normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + + normalize.css@8.0.1: + resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + os-homedir@2.0.0: + resolution: {integrity: sha512-saRNz0DSC5C/I++gFIaJTXoFJMRwiP5zHar5vV3xQ2TkgEw6hDCcU5F272JjUylpiVgBrZNQHnfjkLabTfb92Q==} + engines: {node: '>=0.10.0'} + deprecated: This is not needed anymore. Use `require('os').homedir()` instead. + + os-name@5.0.1: + resolution: {integrity: sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + parse-rect@1.2.0: + resolution: {integrity: sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + version: 1.0.7 + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + pick-by-alias@1.2.0: + resolution: {integrity: sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picocolors@https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + version: 1.0.0 + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + version: 2.3.1 + engines: {node: '>=8.6'} + + pinyin@2.11.2: + resolution: {integrity: sha512-tAWDBcowj09j/vLUjty98nVqrbTVNhutf1VcyID4p0sxTFPzRyXw7n7Ic0HQwBdWFIWrrDP8bYiT64gaT6h3gA==} + hasBin: true + + point-cluster@3.1.8: + resolution: {integrity: sha512-7klIr45dpMeZuqjIK9+qBg3m2IhyZJNJkdqjJFw0Olq75FM8ojrTMjClVUrMjNYRVqtwztxCHH71Fyjhg+YwyQ==} + + polka@0.5.2: + resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz: + resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz} + version: 8.4.19 + engines: {node: ^10 || ^12 || >=14} + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + queue-microtask@https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + version: 1.2.3 + + readable-stream@3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + readdirp@https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + version: 3.6.0 + engines: {node: '>=8.10.0'} + + regenerate-unicode-properties@9.0.0: + resolution: {integrity: sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regexpu-core@4.8.0: + resolution: {integrity: sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==} + engines: {node: '>=4'} + + regjsgen@0.5.2: + resolution: {integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==} + + regjsparser@0.7.0: + resolution: {integrity: sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==} + hasBin: true + + relative-time-format@1.1.6: + resolution: {integrity: sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==} + + repeat-string@https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, tarball: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz} + version: 1.6.1 + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve@https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} + version: 1.22.1 + hasBin: true + + reusify@https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup-plugin-external-globals@0.8.0: + resolution: {integrity: sha512-c65c7hPMCE//cLzC4dLVE25XkuHsBqSkZp+/5pvtZ1MFwqgQLRRkIfuCvI3PnI7Yj8HoXqYtdsRN9gYF5a4tVQ==} + peerDependencies: + rollup: ^2.25.0 || ^3.3.0 + + rollup-plugin-visualizer@5.9.2: + resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x + peerDependenciesMeta: + rollup: + optional: true + + rollup@3.26.2: + resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rollup@https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + version: 2.79.1 + engines: {node: '>=10.0.0'} + hasBin: true + + run-parallel@https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + version: 1.2.0 + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + sass@1.80.1: + resolution: {integrity: sha512-9lBwDZ7j3y/1DKj5Ec249EVGo5CVpwnzIyIj+cqlCjKkApLnzsJ/l9SnV4YnORvW9dQwQN+gQvh/mFZ8CnDs7Q==} + engines: {node: '>=14.0.0'} + hasBin: true + + select-dom@6.0.2: + resolution: {integrity: sha512-fnRexLCjOE1XtMiV0xGACx4GJFMs/eatOQM0LWL9lxWB8DJ/FeXO39ztqUh6dZCOdoFo/g6jGJIIqNWoMsNLPA==} + + select@1.1.2: + resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==} + + semiver@1.1.0: + resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} + engines: {node: '>=6'} + + semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + + semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + showdown@2.1.0: + resolution: {integrity: sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==} + hasBin: true + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sirv-cli@1.0.14: + resolution: {integrity: sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==} + engines: {node: '>= 10'} + hasBin: true + + sirv@1.0.19: + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} + engines: {node: '>= 10'} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-js@https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + version: 1.0.2 + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + source-map@https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + version: 0.6.1 + engines: {node: '>=0.10.0'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + sourcemap-codec@https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + version: 1.4.8 + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-preserve-symlinks-flag@https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + version: 1.0.0 + engines: {node: '>= 0.4'} + + svelte@4.2.19: + resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} + engines: {node: '>=16'} + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + tar@6.1.12: + resolution: {integrity: sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==} + engines: {node: '>=10'} + + three@0.166.1: + resolution: {integrity: sha512-LtuafkKHHzm61AQA1be2MAYIw1IjmhOUxhBa0prrLpEMWbV7ijvxCRHjSgHPGp2493wLBzwKV46tA9nivLEgKg==} + + tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinydate@1.3.0: + resolution: {integrity: sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==} + engines: {node: '>=4'} + + tlds@1.255.0: + resolution: {integrity: sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==} + hasBin: true + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-fast-properties@https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + version: 2.0.0 + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex-range@https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + version: 5.0.1 + engines: {node: '>=8.0'} + + totalist@1.1.0: + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trouter@2.0.1: + resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==} + engines: {node: '>=6'} + + tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz} + version: 4.9.3 + engines: {node: '>=4.2.0'} + hasBin: true + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + url-regex@5.0.0: + resolution: {integrity: sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g==} + engines: {node: '>=8'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + vanilla-jsoneditor@1.0.8: + resolution: {integrity: sha512-5tKODR6J3IbGoMeBv4DEEU/Dlam4bPunOarIJKfrd5xs4bUife59Lp8Psjf86Y8OAM9mvxkrwR275XsBnvtO9A==} + + vanilla-picker@2.12.3: + resolution: {integrity: sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-aliases@https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz: + resolution: {integrity: sha512-MiqZx5NJQDn/I7gYzovop8GzlEDYCxR3i3JCCNap5OWEfBmo4b+jIfpmal22IoBREgx1TtkmwRkHJCBUhnL6jA==, tarball: https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz} + version: 0.9.7 + engines: {node: '>=16.6.0', npm: '>=7.0.0'} + + vite-plugin-dynamic-import@https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz: + resolution: {integrity: sha512-R6spqDhDm8VxaUNyEkybh9PM262ReO8WXJ6rjtyJ/H8Y4b+pq2uM9Xz5DMu7N7OxUGlqo9HSzT3VjhpbySXrng==, tarball: https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz} + version: 1.2.4 + + vite-plugin-externalize-deps@0.7.0: + resolution: {integrity: sha512-do2gPrR79Tm8UKcqsw3RTAtN4YO8GkVRBckWdJWINZ3Qdp3KN9S1oyUZxKszTB/iyg4zdOUweLOeBI8t86QVow==} + version: 0.7.0 + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 + + vite-svg-loader@5.1.0: + resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==} + version: 5.1.0 + peerDependencies: + vue: '>=3.2.13' + + vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz: + resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==, tarball: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz} + version: 3.2.4 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-chartjs@5.3.1: + resolution: {integrity: sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==} + version: 5.3.1 + peerDependencies: + chart.js: ^4.1.1 + vue: ^3.0.0-0 || ^2.7.0 + + vue-clipboard3@2.0.0: + resolution: {integrity: sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==} + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + version: 0.14.10 + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-i18n@9.13.1: + resolution: {integrity: sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==} + version: 9.13.1 + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + + vue-router@4.4.0: + resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} + version: 4.4.0 + peerDependencies: + vue: ^3.2.0 + + vue-template-compiler@https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==, tarball: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz} + version: 2.7.14 + + vue-tsc@https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz: + resolution: {integrity: sha512-lj+6dEroPsE4wmQOPtjCzAf8x363Km5/tuEvMEoQaoRnzs9myBM46FNvCGIIPStYUGuaqF1W1bORmP2KDQEORA==, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz} + version: 1.0.11 + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.5.12: + resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} + version: 3.5.12 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vuex@4.1.0: + resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==} + version: 4.1.0 + peerDependencies: + vue: ^3.2.0 + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + windows-release@5.0.1: + resolution: {integrity: sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@arr/every@1.0.1': {} + + '@babel/helper-string-parser@7.25.7': {} + + '@babel/helper-string-parser@https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz': {} + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-identifier@https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz': {} + + '@babel/parser@7.25.8': + dependencies: + '@babel/types': 7.25.8 + + '@babel/parser@https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz': + dependencies: + '@babel/types': https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz + + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 + + '@babel/types@https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz': + dependencies: + '@babel/helper-string-parser': https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz + '@babel/helper-validator-identifier': https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz + to-fast-properties: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz + + '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3)': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + '@lezer/common': 1.2.3 + + '@codemirror/commands@6.7.0': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + '@lezer/common': 1.2.3 + + '@codemirror/lang-json@6.0.1': + dependencies: + '@codemirror/language': 6.10.3 + '@lezer/json': 1.0.2 + + '@codemirror/language@6.10.3': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + + '@codemirror/lint@6.8.2': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + crelt: 1.0.6 + + '@codemirror/search@6.5.6': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + crelt: 1.0.6 + + '@codemirror/state@6.4.1': {} + + '@codemirror/view@6.34.1': + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + + '@ctrl/tinycolor@3.4.1': {} + + '@element-plus/icons-vue@2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + '@esbuild/android-arm@0.15.16': + optional: true + + '@esbuild/linux-loong64@0.15.16': + optional: true + + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.11': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/utils@0.2.8': {} + + '@fortawesome/fontawesome-common-types@6.6.0': {} + + '@fortawesome/fontawesome-svg-core@6.6.0': + dependencies: + '@fortawesome/fontawesome-common-types': 6.6.0 + + '@fortawesome/free-brands-svg-icons@6.6.0': + dependencies: + '@fortawesome/fontawesome-common-types': 6.6.0 + + '@fortawesome/free-regular-svg-icons@6.6.0': + dependencies: + '@fortawesome/fontawesome-common-types': 6.6.0 + + '@fortawesome/free-solid-svg-icons@6.6.0': + dependencies: + '@fortawesome/fontawesome-common-types': 6.6.0 + + '@fortawesome/vue-fontawesome@3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + '@fortawesome/fontawesome-svg-core': 6.6.0 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + '@intlify/core-base@9.13.1': + dependencies: + '@intlify/message-compiler': 9.13.1 + '@intlify/shared': 9.13.1 + + '@intlify/message-compiler@9.13.1': + dependencies: + '@intlify/shared': 9.13.1 + source-map-js: 1.0.2 + + '@intlify/shared@9.13.1': {} + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jsep-plugin/assignment@1.2.1(jsep@1.3.9)': + dependencies: + jsep: 1.3.9 + + '@jsep-plugin/regex@1.0.3(jsep@1.3.9)': + dependencies: + jsep: 1.3.9 + + '@jsonquerylang/jsonquery@3.1.1': {} + + '@kurkle/color@0.3.2': {} + + '@lexical/clipboard@0.16.1': + dependencies: + '@lexical/html': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/code@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + prismjs: 1.29.0 + + '@lexical/history@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/html@0.16.1': + dependencies: + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/link@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/list@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/markdown@0.16.1': + dependencies: + '@lexical/code': 0.16.1 + '@lexical/link': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/rich-text': 0.16.1 + '@lexical/text': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/rich-text@0.16.1': + dependencies: + '@lexical/clipboard': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/selection@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/table@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/text@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/utils@0.16.1': + dependencies: + '@lexical/list': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/table': 0.16.1 + lexical: 0.16.1 + + '@lezer/common@1.2.3': {} + + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.3 + + '@lezer/json@1.0.2': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.3 + + '@mapbox/node-pre-gyp@1.0.10': + dependencies: + detect-libc: 2.0.1 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.6.7 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.3.8 + tar: 6.1.12 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + '@nodelib/fs.scandir@https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz': + dependencies: + '@nodelib/fs.stat': https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz + run-parallel: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz + + '@nodelib/fs.stat@https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz': {} + + '@nodelib/fs.walk@https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz': + dependencies: + '@nodelib/fs.scandir': https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz + fastq: https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz + + '@parcel/watcher-android-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-x64@2.4.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.4.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.4.1': + optional: true + + '@parcel/watcher-win32-arm64@2.4.1': + optional: true + + '@parcel/watcher-win32-ia32@2.4.1': + optional: true + + '@parcel/watcher-win32-x64@2.4.1': + optional: true + + '@parcel/watcher@2.4.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + + '@polka/url@0.5.0': {} + + '@polka/url@1.0.0-next.21': {} + + '@popperjs/core@2.11.8': {} + + '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + + '@rollup/pluginutils@5.0.2(rollup@3.26.2)': + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.26.2 + + '@sphinxxxx/color-conversion@2.2.2': {} + + '@sxzz/popperjs-es@2.11.7': {} + + '@trysound/sax@0.2.0': {} + + '@tweenjs/tween.js@23.1.3': {} + + '@types/estree@1.0.0': {} + + '@types/estree@1.0.6': {} + + '@types/getos@3.0.4': {} + + '@types/humanize-duration@3.27.4': {} + + '@types/javascript-time-ago@2.0.8': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.10 + + '@types/lodash@4.17.10': {} + + '@types/md5@2.3.5': {} + + '@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz': {} + + '@types/pinyin@2.10.2': {} + + '@types/showdown@2.0.6': {} + + '@types/stats.js@0.17.3': {} + + '@types/three@0.166.0': + dependencies: + '@tweenjs/tween.js': 23.1.3 + '@types/stats.js': 0.17.3 + '@types/webxr': 0.5.20 + fflate: 0.8.2 + meshoptimizer: 0.18.1 + + '@types/url-join@4.0.3': {} + + '@types/web-bluetooth@0.0.16': {} + + '@types/webxr@0.5.20': {} + + '@vitejs/plugin-vue@https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1))(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + '@volar/language-core@https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz': + dependencies: + '@volar/source-map': https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz + '@vue/reactivity': https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz + muggle-string: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz + + '@volar/source-map@https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz': + dependencies: + muggle-string: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz + + '@volar/typescript@https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz': + dependencies: + '@volar/language-core': https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz + + '@volar/vue-language-core@https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz': + dependencies: + '@volar/language-core': https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz + '@volar/source-map': https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz + '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz + '@vue/compiler-sfc': https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz + '@vue/reactivity': https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + minimatch: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz + vue-template-compiler: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz + + '@volar/vue-typescript@https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz': + dependencies: + '@volar/typescript': https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz + '@volar/vue-language-core': https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz + + '@vue/compiler-core@3.5.12': + dependencies: + '@babel/parser': 7.25.8 + '@vue/shared': 3.5.12 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz': + dependencies: + '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz + source-map: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz + + '@vue/compiler-dom@3.5.12': + dependencies: + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-dom@https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz': + dependencies: + '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + + '@vue/compiler-sfc@3.5.12': + dependencies: + '@babel/parser': 7.25.8 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + estree-walker: 2.0.2 + magic-string: 0.30.12 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-sfc@https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz': + dependencies: + '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz + '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz + '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz + '@vue/compiler-ssr': https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz + '@vue/reactivity-transform': https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz + magic-string: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz + postcss: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz + source-map: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz + + '@vue/compiler-ssr@3.5.12': + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-ssr@https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz': + dependencies: + '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + + '@vue/devtools-api@6.4.5': {} + + '@vue/devtools-api@6.6.4': {} + + '@vue/reactivity-transform@https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz': + dependencies: + '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz + '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz + magic-string: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz + + '@vue/reactivity@3.5.12': + dependencies: + '@vue/shared': 3.5.12 + + '@vue/reactivity@https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz': + dependencies: + '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + + '@vue/runtime-core@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/runtime-dom@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/runtime-core': 3.5.12 + '@vue/shared': 3.5.12 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + '@vue/shared@3.5.12': {} + + '@vue/shared@https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz': {} + + '@vueuse/core@9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + dependencies: + vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + abbrev@1.1.1: + optional: true + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-dynamic-import@4.0.0(acorn@6.4.2): + dependencies: + acorn: 6.4.2 + + acorn-jsx@5.3.2(acorn@6.4.2): + dependencies: + acorn: 6.4.2 + + acorn@6.4.2: {} + + acorn@8.13.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + optional: true + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz: + dependencies: + normalize-path: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz + picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + + aproba@2.0.0: + optional: true + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + optional: true + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + aria-query@5.3.2: {} + + array-bounds@1.0.1: {} + + array-normalize@1.1.4: + dependencies: + array-bounds: 1.0.1 + + array-timsort@https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz: {} + + async-validator@4.2.5: {} + + asynckit@0.4.0: {} + + atom-material-icons@3.0.0: + dependencies: + compression: 1.7.4 + js-yaml: 3.14.1 + polka: 0.5.2 + select-dom: 6.0.2 + sirv: 1.0.19 + sirv-cli: 1.0.14 + optionalDependencies: + lodash.template: 4.5.0 + minimist: 1.2.7 + transitivePeerDependencies: + - supports-color + + attr-accept@2.2.2: {} + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: + optional: true + + balanced-match@https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz: {} + + binary-extensions@https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz: {} + + binary-search-bounds@2.0.5: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + optional: true + + brace-expansion@https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz: + dependencies: + balanced-match: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + braces@https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz: + dependencies: + fill-range: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz + + buble@0.19.8: + dependencies: + acorn: 6.4.2 + acorn-dynamic-import: 4.0.0(acorn@6.4.2) + acorn-jsx: 5.3.2(acorn@6.4.2) + chalk: 2.4.2 + magic-string: 0.25.9 + minimist: 1.2.7 + os-homedir: 2.0.0 + regexpu-core: 4.8.0 + + bubleify@1.2.1: + dependencies: + buble: 0.19.8 + + bytes@3.0.0: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + charenc@0.0.2: {} + + chart.js@4.4.5: + dependencies: + '@kurkle/color': 0.3.2 + + chartjs-adapter-date-fns@3.0.0(chart.js@4.4.5)(date-fns@4.1.0): + dependencies: + chart.js: 4.4.5 + date-fns: 4.1.0 + + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + + chokidar@https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz: + dependencies: + anymatch: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz + braces: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz + glob-parent: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz + is-binary-path: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz + is-glob: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz + normalize-path: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz + readdirp: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz + optionalDependencies: + fsevents: 2.3.2 + + chownr@2.0.0: + optional: true + + clamp@1.0.1: {} + + clipboard@2.0.11: + dependencies: + good-listener: 1.2.2 + select: 1.1.2 + tiny-emitter: 2.1.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + code-red@1.0.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.13.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 + + codemirror-wrapped-line-indent@1.0.8(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1): + dependencies: + '@codemirror/language': 6.10.3 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-support@1.1.3: + optional: true + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@1.1.1: + dependencies: + keypress: 0.1.0 + + commander@7.2.0: {} + + commander@9.5.0: {} + + comment-json@https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz: + dependencies: + array-timsort: https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz + core-util-is: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz + esprima: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz + has-own-prop: https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz + repeat-string: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz + + compressible@2.0.18: + dependencies: + mime-db: 1.52.0 + + compression@1.7.4: + 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 + + concat-map@0.0.1: + optional: true + + consola@https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz: {} + + console-clear@1.1.1: {} + + console-control-strings@1.1.0: + optional: true + + core-js@3.38.1: {} + + core-util-is@https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz: {} + + crawlab-ui@0.7.0-rc3(dlwfpvqjxhvrevoazxvsg7egqu): + dependencies: + '@element-plus/icons-vue': 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@fortawesome/fontawesome-common-types': 6.6.0 + '@fortawesome/fontawesome-svg-core': 6.6.0 + '@fortawesome/free-brands-svg-icons': 6.6.0 + '@fortawesome/free-regular-svg-icons': 6.6.0 + '@fortawesome/free-solid-svg-icons': 6.6.0 + '@fortawesome/vue-fontawesome': 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@lexical/code': 0.16.1 + '@lexical/history': 0.16.1 + '@lexical/html': 0.16.1 + '@lexical/link': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/markdown': 0.16.1 + '@lexical/rich-text': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/table': 0.16.1 + '@lexical/text': 0.16.1 + '@lexical/utils': 0.16.1 + '@popperjs/core': 2.11.8 + '@types/getos': 3.0.4 + '@types/humanize-duration': 3.27.4 + '@types/javascript-time-ago': 2.0.8 + '@types/lodash': 4.17.10 + '@types/md5': 2.3.5 + '@types/pinyin': 2.10.2 + '@types/showdown': 2.0.6 + '@types/three': 0.166.0 + '@types/url-join': 4.0.3 + async-validator: 4.2.5 + atom-material-icons: 3.0.0 + axios: 1.7.7 + chart.js: 4.4.5 + chartjs-adapter-date-fns: 3.0.0(chart.js@4.4.5)(date-fns@4.1.0) + clipboard: 2.0.11 + core-js: 3.38.1 + crawlab-vue3-dropzone: 3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + cron-parser: 4.9.0 + cronstrue: 2.50.0 + dayjs: 1.11.13 + element-plus: 2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + font-awesome: 4.7.0 + humanize-duration: 3.32.1 + javascript-time-ago: 2.5.11 + json-editor-vue: 0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + lexical: 0.16.1 + lodash: 4.17.21 + md5: 2.3.0 + mitt: 3.0.1 + monaco-editor: 0.50.0 + normalize.css: 8.0.1 + os-name: 5.0.1 + pinyin: 2.11.2 + point-cluster: 3.1.8 + prismjs: 1.29.0 + showdown: 2.1.0 + three: 0.166.1 + tiny-invariant: 1.3.3 + url-join: 4.0.1 + url-regex: 5.0.0 + uuid: 10.0.0 + vite-svg-loader: 5.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue-chartjs: 5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue-clipboard3: 2.0.0 + vue-i18n: 9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue-router: 4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vuex: 4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + transitivePeerDependencies: + - '@lezer/common' + - '@vue/composition-api' + + crawlab-vue3-dropzone@3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + attr-accept: 2.2.2 + file-selector: 0.2.4 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + crelt@1.0.6: {} + + cron-parser@4.9.0: + dependencies: + luxon: 3.5.0 + + cronstrue@2.50.0: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypt@0.0.2: {} + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + css-what@6.1.0: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + csstype@3.1.3: {} + + date-fns@4.1.0: {} + + dayjs@1.11.13: {} + + de-indent@https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + optional: true + + define-lazy-prop@2.0.0: {} + + defined@1.0.1: {} + + delayed-stream@1.0.0: {} + + delegate@3.2.0: {} + + delegates@1.0.0: + optional: true + + detect-libc@1.0.3: {} + + detect-libc@2.0.1: + optional: true + + diff-sequences@29.6.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dtype@2.0.0: {} + + element-plus@2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + '@ctrl/tinycolor': 3.4.1 + '@element-plus/icons-vue': 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@floating-ui/dom': 1.6.11 + '@popperjs/core': '@sxzz/popperjs-es@2.11.7' + '@types/lodash': 4.17.10 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + async-validator: 4.2.5 + dayjs: 1.11.13 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + transitivePeerDependencies: + - '@vue/composition-api' + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + esbuild-android-64@0.15.16: + optional: true + + esbuild-android-arm64@0.15.16: + optional: true + + esbuild-darwin-64@0.15.16: + optional: true + + esbuild-darwin-arm64@0.15.16: + optional: true + + esbuild-freebsd-64@0.15.16: + optional: true + + esbuild-freebsd-arm64@0.15.16: + optional: true + + esbuild-linux-32@0.15.16: + optional: true + + esbuild-linux-64@0.15.16: + optional: true + + esbuild-linux-arm64@0.15.16: + optional: true + + esbuild-linux-arm@0.15.16: + optional: true + + esbuild-linux-mips64le@0.15.16: + optional: true + + esbuild-linux-ppc64le@0.15.16: + optional: true + + esbuild-linux-riscv64@0.15.16: + optional: true + + esbuild-linux-s390x@0.15.16: + optional: true + + esbuild-netbsd-64@0.15.16: + optional: true + + esbuild-openbsd-64@0.15.16: + optional: true + + esbuild-sunos-64@0.15.16: + optional: true + + esbuild-windows-32@0.15.16: + optional: true + + esbuild-windows-64@0.15.16: + optional: true + + esbuild-windows-arm64@0.15.16: + optional: true + + esbuild@https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz: + optionalDependencies: + '@esbuild/android-arm': 0.15.16 + '@esbuild/linux-loong64': 0.15.16 + esbuild-android-64: 0.15.16 + esbuild-android-arm64: 0.15.16 + esbuild-darwin-64: 0.15.16 + esbuild-darwin-arm64: 0.15.16 + esbuild-freebsd-64: 0.15.16 + esbuild-freebsd-arm64: 0.15.16 + esbuild-linux-32: 0.15.16 + esbuild-linux-64: 0.15.16 + esbuild-linux-arm: 0.15.16 + esbuild-linux-arm64: 0.15.16 + esbuild-linux-mips64le: 0.15.16 + esbuild-linux-ppc64le: 0.15.16 + esbuild-linux-riscv64: 0.15.16 + esbuild-linux-s390x: 0.15.16 + esbuild-netbsd-64: 0.15.16 + esbuild-openbsd-64: 0.15.16 + esbuild-sunos-64: 0.15.16 + esbuild-windows-32: 0.15.16 + esbuild-windows-64: 0.15.16 + esbuild-windows-arm64: 0.15.16 + + escalade@3.1.1: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + esprima@4.0.1: {} + + esprima@https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.0 + + estree-walker@https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + fast-deep-equal@3.1.3: {} + + fast-glob@https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz: + dependencies: + '@nodelib/fs.stat': https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz + '@nodelib/fs.walk': https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz + glob-parent: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz + merge2: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz + micromatch: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz + + fast-uri@3.0.3: {} + + fastq@https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz: + dependencies: + reusify: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz + + fflate@0.8.2: {} + + file-selector@0.2.4: + dependencies: + tslib: 2.4.1 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + fill-range@https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz: + dependencies: + to-regex-range: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz + + flatten-vertex-data@1.0.2: + dependencies: + dtype: 2.0.0 + + follow-redirects@1.15.9: {} + + font-awesome@4.7.0: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + optional: true + + fs.realpath@1.0.0: + optional: true + + fsevents@2.3.2: + optional: true + + function-bind@https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz: {} + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + optional: true + + get-caller-file@2.0.5: {} + + get-port@3.2.0: {} + + get-stream@6.0.1: {} + + glob-parent@https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz: + dependencies: + is-glob: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + optional: true + + good-listener@1.2.2: + dependencies: + delegate: 3.2.0 + + has-flag@3.0.0: {} + + has-own-prop@https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz: {} + + has-unicode@2.0.1: + optional: true + + has@https://registry.npmmirror.com/has/-/has-1.0.3.tgz: + dependencies: + function-bind: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz + + he@https://registry.npmmirror.com/he/-/he-1.2.0.tgz: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + optional: true + + human-signals@2.1.0: {} + + humanize-duration@3.32.1: {} + + immutable-json-patch@6.0.1: {} + + immutable@4.3.7: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + optional: true + + inherits@2.0.4: + optional: true + + ip-regex@4.3.0: {} + + is-binary-path@https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz: + dependencies: + binary-extensions: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz + + is-buffer@1.1.6: {} + + is-core-module@https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz: + dependencies: + has: https://registry.npmmirror.com/has/-/has-1.0.3.tgz + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-extglob@https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-glob@https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz: + dependencies: + is-extglob: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz + + is-number@7.0.0: {} + + is-number@https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz: {} + + is-obj@1.0.1: {} + + is-reference@3.0.1: + dependencies: + '@types/estree': 1.0.0 + + is-stream@2.0.1: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isexe@2.0.0: {} + + javascript-time-ago@2.5.11: + dependencies: + relative-time-format: 1.1.6 + + jmespath@0.16.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsep@1.3.9: {} + + jsesc@0.5.0: {} + + json-editor-vue@0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + vanilla-jsoneditor: 1.0.8(@lezer/common@1.2.3) + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + transitivePeerDependencies: + - '@lezer/common' + + json-schema-traverse@1.0.0: {} + + json-source-map@0.6.1: {} + + jsonpath-plus@10.0.1: + dependencies: + '@jsep-plugin/assignment': 1.2.1(jsep@1.3.9) + '@jsep-plugin/regex': 1.0.3(jsep@1.3.9) + jsep: 1.3.9 + + jsonrepair@3.8.1: {} + + keypress@0.1.0: {} + + kleur@3.0.3: {} + + lexical@0.16.1: {} + + local-access@1.1.0: {} + + locate-character@3.0.0: {} + + lodash-es@4.17.21: {} + + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.21 + lodash-es: 4.17.21 + + lodash._reinterpolate@3.0.0: + optional: true + + lodash.template@4.5.0: + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + optional: true + + lodash.templatesettings@4.2.0: + dependencies: + lodash._reinterpolate: 3.0.0 + optional: true + + lodash@4.17.21: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + optional: true + + luxon@3.5.0: {} + + macos-release@3.1.0: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.30.1: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magic-string@https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz: + dependencies: + sourcemap-codec: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz + + make-dir@3.1.0: + dependencies: + semver: 6.3.0 + optional: true + + matchit@1.1.0: + dependencies: + '@arr/every': 1.0.1 + + math-log2@1.0.1: {} + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + memoize-one@6.0.0: {} + + merge-stream@2.0.0: {} + + merge2@https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz: {} + + meshoptimizer@0.18.1: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + micromatch@https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz: + dependencies: + braces: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz + picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + optional: true + + minimatch@https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz: + dependencies: + brace-expansion: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz + + minimist@1.2.7: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + optional: true + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + optional: true + + mitt@3.0.1: {} + + mkdirp@1.0.4: + optional: true + + monaco-editor@0.50.0: {} + + mri@1.2.0: {} + + mrmime@1.0.1: {} + + ms@2.0.0: {} + + ms@2.1.2: + optional: true + + muggle-string@https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz: {} + + nanoid@3.3.7: {} + + nanoid@https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz: {} + + natural-compare-lite@1.4.0: {} + + negotiator@0.6.3: {} + + node-addon-api@3.2.1: + optional: true + + node-addon-api@7.1.1: {} + + node-fetch@2.6.7: + dependencies: + whatwg-url: 5.0.0 + optional: true + + nodejieba@2.5.2: + dependencies: + '@mapbox/node-pre-gyp': 1.0.10 + node-addon-api: 3.2.1 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + optional: true + + normalize-path@https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz: {} + + normalize-wheel-es@1.2.0: {} + + normalize.css@8.0.1: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + optional: true + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + optional: true + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + os-homedir@2.0.0: {} + + os-name@5.0.1: + dependencies: + macos-release: 3.1.0 + windows-release: 5.0.1 + + parse-rect@1.2.0: + dependencies: + pick-by-alias: 1.2.0 + + path-is-absolute@1.0.1: + optional: true + + path-key@3.1.1: {} + + path-parse@https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz: {} + + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.6 + estree-walker: 3.0.3 + is-reference: 3.0.1 + + pick-by-alias@1.2.0: {} + + picocolors@1.1.1: {} + + picocolors@https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz: {} + + picomatch@2.3.1: {} + + picomatch@https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz: {} + + pinyin@2.11.2: + dependencies: + commander: 1.1.1 + object-assign: 4.1.1 + optionalDependencies: + nodejieba: 2.5.2 + transitivePeerDependencies: + - encoding + - supports-color + + point-cluster@3.1.8: + dependencies: + array-bounds: 1.0.1 + array-normalize: 1.1.4 + binary-search-bounds: 2.0.5 + bubleify: 1.2.1 + clamp: 1.0.1 + defined: 1.0.1 + dtype: 2.0.0 + flatten-vertex-data: 1.0.2 + is-obj: 1.0.1 + math-log2: 1.0.1 + parse-rect: 1.2.0 + pick-by-alias: 1.2.0 + + polka@0.5.2: + dependencies: + '@polka/url': 0.5.0 + trouter: 2.0.1 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz: + dependencies: + nanoid: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz + picocolors: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz + source-map-js: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz + + prismjs@1.29.0: {} + + proxy-from-env@1.1.0: {} + + queue-microtask@https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz: {} + + readable-stream@3.6.0: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + optional: true + + readdirp@4.0.2: {} + + readdirp@https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz: + dependencies: + picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + + regenerate-unicode-properties@9.0.0: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regexpu-core@4.8.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 9.0.0 + regjsgen: 0.5.2 + regjsparser: 0.7.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + + regjsgen@0.5.2: {} + + regjsparser@0.7.0: + dependencies: + jsesc: 0.5.0 + + relative-time-format@1.1.6: {} + + repeat-string@https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve@https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz: + dependencies: + is-core-module: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz + path-parse: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz + supports-preserve-symlinks-flag: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz + + reusify@https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + optional: true + + rollup-plugin-external-globals@0.8.0(rollup@3.26.2): + dependencies: + '@rollup/pluginutils': 5.0.2(rollup@3.26.2) + estree-walker: 3.0.3 + is-reference: 3.0.1 + magic-string: 0.30.1 + rollup: 3.26.2 + + rollup-plugin-visualizer@5.9.2(rollup@3.26.2): + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 3.26.2 + + rollup@3.26.2: + optionalDependencies: + fsevents: 2.3.2 + + rollup@https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz: + optionalDependencies: + fsevents: 2.3.2 + + run-parallel@https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz: + dependencies: + queue-microtask: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: + optional: true + + sass@1.80.1: + dependencies: + '@parcel/watcher': 2.4.1 + chokidar: 4.0.1 + immutable: 4.3.7 + source-map-js: 1.2.1 + + select-dom@6.0.2: {} + + select@1.1.2: {} + + semiver@1.1.0: {} + + semver@6.3.0: + optional: true + + semver@7.3.8: + dependencies: + lru-cache: 6.0.0 + optional: true + + set-blocking@2.0.0: + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + showdown@2.1.0: + dependencies: + commander: 9.5.0 + + signal-exit@3.0.7: {} + + sirv-cli@1.0.14: + dependencies: + console-clear: 1.1.1 + get-port: 3.2.0 + kleur: 3.0.3 + local-access: 1.1.0 + sade: 1.8.1 + semiver: 1.1.0 + sirv: 1.0.19 + tinydate: 1.3.0 + + sirv@1.0.19: + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 1.1.0 + + source-map-js@1.0.2: {} + + source-map-js@1.2.1: {} + + source-map-js@https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz: {} + + source-map@0.7.4: {} + + source-map@https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz: {} + + sourcemap-codec@1.4.8: {} + + sourcemap-codec@https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz: {} + + sprintf-js@1.0.3: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-final-newline@2.0.0: {} + + style-mod@4.1.2: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-preserve-symlinks-flag@https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz: {} + + svelte@4.2.19: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.6 + acorn: 8.13.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.1 + locate-character: 3.0.0 + magic-string: 0.30.12 + periscopic: 3.1.0 + + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + + tar@6.1.12: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.3.6 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + optional: true + + three@0.166.1: {} + + tiny-emitter@2.1.0: {} + + tiny-invariant@1.3.3: {} + + tinydate@1.3.0: {} + + tlds@1.255.0: {} + + to-fast-properties@2.0.0: {} + + to-fast-properties@https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex-range@https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz: + dependencies: + is-number: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz + + totalist@1.1.0: {} + + tr46@0.0.3: + optional: true + + trouter@2.0.1: + dependencies: + matchit: 1.1.0 + + tslib@2.4.1: {} + + typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz: {} + + unicode-canonical-property-names-ecmascript@2.0.0: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.1.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + + url-join@4.0.1: {} + + url-regex@5.0.0: + dependencies: + ip-regex: 4.3.0 + tlds: 1.255.0 + + util-deprecate@1.0.2: + optional: true + + uuid@10.0.0: {} + + vanilla-jsoneditor@1.0.8(@lezer/common@1.2.3): + dependencies: + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) + '@codemirror/commands': 6.7.0 + '@codemirror/lang-json': 6.0.1 + '@codemirror/language': 6.10.3 + '@codemirror/lint': 6.8.2 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.34.1 + '@fortawesome/free-regular-svg-icons': 6.6.0 + '@fortawesome/free-solid-svg-icons': 6.6.0 + '@jsonquerylang/jsonquery': 3.1.1 + '@lezer/highlight': 1.2.1 + '@replit/codemirror-indentation-markers': 6.5.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + ajv: 8.17.1 + codemirror-wrapped-line-indent: 1.0.8(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + diff-sequences: 29.6.3 + immutable-json-patch: 6.0.1 + jmespath: 0.16.0 + json-source-map: 0.6.1 + jsonpath-plus: 10.0.1 + jsonrepair: 3.8.1 + lodash-es: 4.17.21 + memoize-one: 6.0.0 + natural-compare-lite: 1.4.0 + sass: 1.80.1 + svelte: 4.2.19 + vanilla-picker: 2.12.3 + transitivePeerDependencies: + - '@lezer/common' + + vanilla-picker@2.12.3: + dependencies: + '@sphinxxxx/color-conversion': 2.2.2 + + vary@1.1.2: {} + + vite-aliases@https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1): + dependencies: + chokidar: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz + comment-json: https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz + consola: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz + fast-glob: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz + vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - terser + + vite-plugin-dynamic-import@https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz: + dependencies: + fast-glob: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz + + vite-plugin-externalize-deps@0.7.0(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1)): + dependencies: + vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + + vite-svg-loader@5.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + svgo: 3.3.2 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1): + dependencies: + esbuild: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz + postcss: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz + resolve: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz + rollup: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz + optionalDependencies: + '@types/node': https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz + fsevents: 2.3.2 + sass: 1.80.1 + + vue-chartjs@5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + chart.js: 4.4.5 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + vue-clipboard3@2.0.0: + dependencies: + clipboard: 2.0.11 + + vue-demi@0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + vue-i18n@9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + '@intlify/core-base': 9.13.1 + '@intlify/shared': 9.13.1 + '@vue/devtools-api': 6.6.4 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + vue-router@4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + vue-template-compiler@https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz: + dependencies: + de-indent: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz + he: https://registry.npmmirror.com/he/-/he-1.2.0.tgz + + vue-tsc@https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz): + dependencies: + '@volar/vue-language-core': https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz + '@volar/vue-typescript': https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz + typescript: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz + + vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz): + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@vue/shared': 3.5.12 + optionalDependencies: + typescript: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz + + vuex@4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + dependencies: + '@vue/devtools-api': 6.4.5 + vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + + w3c-keyname@2.2.8: {} + + webidl-conversions@3.0.1: + optional: true + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + optional: true + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + optional: true + + windows-release@5.0.1: + dependencies: + execa: 5.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: + optional: true + + y18n@5.0.8: {} + + yallist@4.0.0: + optional: true + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/frontend/apps/crawlab/public/three/three.min.js b/frontend/apps/crawlab/public/three/three.min.js new file mode 100644 index 00000000..b71995ee --- /dev/null +++ b/frontend/apps/crawlab/public/three/three.min.js @@ -0,0 +1,26564 @@ +/** + * @license + * Copyright 2010-2021 Three.js Authors + * SPDX-License-Identifier: MIT + */ +!(function (t, e) { + 'object' == typeof exports && 'undefined' != typeof module + ? e(exports) + : 'function' == typeof define && define.amd + ? define(['exports'], e) + : e( + ((t = + 'undefined' != typeof globalThis ? globalThis : t || self).THREE = + {}) + ); +})(this, function (t) { + 'use strict'; + const e = '128', + n = 100, + i = 300, + r = 301, + s = 302, + a = 303, + o = 304, + l = 306, + c = 307, + h = 1e3, + u = 1001, + d = 1002, + p = 1003, + m = 1004, + f = 1005, + g = 1006, + v = 1007, + y = 1008, + x = 1009, + _ = 1012, + w = 1014, + b = 1015, + M = 1016, + S = 1020, + T = 1022, + E = 1023, + A = 1026, + L = 1027, + R = 33776, + C = 33777, + P = 33778, + D = 33779, + I = 35840, + N = 35841, + B = 35842, + z = 35843, + F = 37492, + O = 37496, + H = 2300, + G = 2301, + U = 2302, + k = 2400, + V = 2401, + W = 2402, + j = 2500, + q = 2501, + X = 3e3, + Y = 3001, + Z = 3007, + J = 3002, + Q = 3004, + K = 3005, + $ = 3006, + tt = 7680, + et = 35044, + nt = 35048, + it = '300 es'; + class rt { + addEventListener(t, e) { + void 0 === this._listeners && (this._listeners = {}); + const n = this._listeners; + void 0 === n[t] && (n[t] = []), -1 === n[t].indexOf(e) && n[t].push(e); + } + hasEventListener(t, e) { + if (void 0 === this._listeners) return !1; + const n = this._listeners; + return void 0 !== n[t] && -1 !== n[t].indexOf(e); + } + removeEventListener(t, e) { + if (void 0 === this._listeners) return; + const n = this._listeners[t]; + if (void 0 !== n) { + const t = n.indexOf(e); + -1 !== t && n.splice(t, 1); + } + } + dispatchEvent(t) { + if (void 0 === this._listeners) return; + const e = this._listeners[t.type]; + if (void 0 !== e) { + t.target = this; + const n = e.slice(0); + for (let e = 0, i = n.length; e < i; e++) n[e].call(this, t); + t.target = null; + } + } + } + const st = []; + for (let t = 0; t < 256; t++) st[t] = (t < 16 ? '0' : '') + t.toString(16); + let at = 1234567; + const ot = Math.PI / 180, + lt = 180 / Math.PI; + function ct() { + const t = (4294967295 * Math.random()) | 0, + e = (4294967295 * Math.random()) | 0, + n = (4294967295 * Math.random()) | 0, + i = (4294967295 * Math.random()) | 0; + return ( + st[255 & t] + + st[(t >> 8) & 255] + + st[(t >> 16) & 255] + + st[(t >> 24) & 255] + + '-' + + st[255 & e] + + st[(e >> 8) & 255] + + '-' + + st[((e >> 16) & 15) | 64] + + st[(e >> 24) & 255] + + '-' + + st[(63 & n) | 128] + + st[(n >> 8) & 255] + + '-' + + st[(n >> 16) & 255] + + st[(n >> 24) & 255] + + st[255 & i] + + st[(i >> 8) & 255] + + st[(i >> 16) & 255] + + st[(i >> 24) & 255] + ).toUpperCase(); + } + function ht(t, e, n) { + return Math.max(e, Math.min(n, t)); + } + function ut(t, e) { + return ((t % e) + e) % e; + } + function dt(t, e, n) { + return (1 - n) * t + n * e; + } + function pt(t) { + return 0 == (t & (t - 1)) && 0 !== t; + } + function mt(t) { + return Math.pow(2, Math.ceil(Math.log(t) / Math.LN2)); + } + function ft(t) { + return Math.pow(2, Math.floor(Math.log(t) / Math.LN2)); + } + var gt = Object.freeze({ + __proto__: null, + DEG2RAD: ot, + RAD2DEG: lt, + generateUUID: ct, + clamp: ht, + euclideanModulo: ut, + mapLinear: function (t, e, n, i, r) { + return i + ((t - e) * (r - i)) / (n - e); + }, + inverseLerp: function (t, e, n) { + return t !== e ? (n - t) / (e - t) : 0; + }, + lerp: dt, + damp: function (t, e, n, i) { + return dt(t, e, 1 - Math.exp(-n * i)); + }, + pingpong: function (t, e = 1) { + return e - Math.abs(ut(t, 2 * e) - e); + }, + smoothstep: function (t, e, n) { + return t <= e + ? 0 + : t >= n + ? 1 + : (t = (t - e) / (n - e)) * t * (3 - 2 * t); + }, + smootherstep: function (t, e, n) { + return t <= e + ? 0 + : t >= n + ? 1 + : (t = (t - e) / (n - e)) * t * t * (t * (6 * t - 15) + 10); + }, + randInt: function (t, e) { + return t + Math.floor(Math.random() * (e - t + 1)); + }, + randFloat: function (t, e) { + return t + Math.random() * (e - t); + }, + randFloatSpread: function (t) { + return t * (0.5 - Math.random()); + }, + seededRandom: function (t) { + return ( + void 0 !== t && (at = t % 2147483647), + (at = (16807 * at) % 2147483647), + (at - 1) / 2147483646 + ); + }, + degToRad: function (t) { + return t * ot; + }, + radToDeg: function (t) { + return t * lt; + }, + isPowerOfTwo: pt, + ceilPowerOfTwo: mt, + floorPowerOfTwo: ft, + setQuaternionFromProperEuler: function (t, e, n, i, r) { + const s = Math.cos, + a = Math.sin, + o = s(n / 2), + l = a(n / 2), + c = s((e + i) / 2), + h = a((e + i) / 2), + u = s((e - i) / 2), + d = a((e - i) / 2), + p = s((i - e) / 2), + m = a((i - e) / 2); + switch (r) { + case 'XYX': + t.set(o * h, l * u, l * d, o * c); + break; + case 'YZY': + t.set(l * d, o * h, l * u, o * c); + break; + case 'ZXZ': + t.set(l * u, l * d, o * h, o * c); + break; + case 'XZX': + t.set(o * h, l * m, l * p, o * c); + break; + case 'YXY': + t.set(l * p, o * h, l * m, o * c); + break; + case 'ZYZ': + t.set(l * m, l * p, o * h, o * c); + break; + default: + console.warn( + 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + + r + ); + } + }, + }); + class vt { + constructor(t = 0, e = 0) { + (this.x = t), (this.y = e); + } + get width() { + return this.x; + } + set width(t) { + this.x = t; + } + get height() { + return this.y; + } + set height(t) { + this.y = t; + } + set(t, e) { + return (this.x = t), (this.y = e), this; + } + setScalar(t) { + return (this.x = t), (this.y = t), this; + } + setX(t) { + return (this.x = t), this; + } + setY(t) { + return (this.y = t), this; + } + setComponent(t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + return this; + } + getComponent(t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + default: + throw new Error('index is out of range: ' + t); + } + } + clone() { + return new this.constructor(this.x, this.y); + } + copy(t) { + return (this.x = t.x), (this.y = t.y), this; + } + add(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' + ), + this.addVectors(t, e)) + : ((this.x += t.x), (this.y += t.y), this); + } + addScalar(t) { + return (this.x += t), (this.y += t), this; + } + addVectors(t, e) { + return (this.x = t.x + e.x), (this.y = t.y + e.y), this; + } + addScaledVector(t, e) { + return (this.x += t.x * e), (this.y += t.y * e), this; + } + sub(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' + ), + this.subVectors(t, e)) + : ((this.x -= t.x), (this.y -= t.y), this); + } + subScalar(t) { + return (this.x -= t), (this.y -= t), this; + } + subVectors(t, e) { + return (this.x = t.x - e.x), (this.y = t.y - e.y), this; + } + multiply(t) { + return (this.x *= t.x), (this.y *= t.y), this; + } + multiplyScalar(t) { + return (this.x *= t), (this.y *= t), this; + } + divide(t) { + return (this.x /= t.x), (this.y /= t.y), this; + } + divideScalar(t) { + return this.multiplyScalar(1 / t); + } + applyMatrix3(t) { + const e = this.x, + n = this.y, + i = t.elements; + return ( + (this.x = i[0] * e + i[3] * n + i[6]), + (this.y = i[1] * e + i[4] * n + i[7]), + this + ); + } + min(t) { + return ( + (this.x = Math.min(this.x, t.x)), (this.y = Math.min(this.y, t.y)), this + ); + } + max(t) { + return ( + (this.x = Math.max(this.x, t.x)), (this.y = Math.max(this.y, t.y)), this + ); + } + clamp(t, e) { + return ( + (this.x = Math.max(t.x, Math.min(e.x, this.x))), + (this.y = Math.max(t.y, Math.min(e.y, this.y))), + this + ); + } + clampScalar(t, e) { + return ( + (this.x = Math.max(t, Math.min(e, this.x))), + (this.y = Math.max(t, Math.min(e, this.y))), + this + ); + } + clampLength(t, e) { + const n = this.length(); + return this.divideScalar(n || 1).multiplyScalar( + Math.max(t, Math.min(e, n)) + ); + } + floor() { + return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this; + } + ceil() { + return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this; + } + round() { + return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this; + } + roundToZero() { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + this + ); + } + negate() { + return (this.x = -this.x), (this.y = -this.y), this; + } + dot(t) { + return this.x * t.x + this.y * t.y; + } + cross(t) { + return this.x * t.y - this.y * t.x; + } + lengthSq() { + return this.x * this.x + this.y * this.y; + } + length() { + return Math.sqrt(this.x * this.x + this.y * this.y); + } + manhattanLength() { + return Math.abs(this.x) + Math.abs(this.y); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + angle() { + return Math.atan2(-this.y, -this.x) + Math.PI; + } + distanceTo(t) { + return Math.sqrt(this.distanceToSquared(t)); + } + distanceToSquared(t) { + const e = this.x - t.x, + n = this.y - t.y; + return e * e + n * n; + } + manhattanDistanceTo(t) { + return Math.abs(this.x - t.x) + Math.abs(this.y - t.y); + } + setLength(t) { + return this.normalize().multiplyScalar(t); + } + lerp(t, e) { + return ( + (this.x += (t.x - this.x) * e), (this.y += (t.y - this.y) * e), this + ); + } + lerpVectors(t, e, n) { + return ( + (this.x = t.x + (e.x - t.x) * n), (this.y = t.y + (e.y - t.y) * n), this + ); + } + equals(t) { + return t.x === this.x && t.y === this.y; + } + fromArray(t, e = 0) { + return (this.x = t[e]), (this.y = t[e + 1]), this; + } + toArray(t = [], e = 0) { + return (t[e] = this.x), (t[e + 1] = this.y), t; + } + fromBufferAttribute(t, e, n) { + return ( + void 0 !== n && + console.warn( + 'THREE.Vector2: offset has been removed from .fromBufferAttribute().' + ), + (this.x = t.getX(e)), + (this.y = t.getY(e)), + this + ); + } + rotateAround(t, e) { + const n = Math.cos(e), + i = Math.sin(e), + r = this.x - t.x, + s = this.y - t.y; + return ( + (this.x = r * n - s * i + t.x), (this.y = r * i + s * n + t.y), this + ); + } + random() { + return (this.x = Math.random()), (this.y = Math.random()), this; + } + } + vt.prototype.isVector2 = !0; + class yt { + constructor() { + (this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1]), + arguments.length > 0 && + console.error( + 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' + ); + } + set(t, e, n, i, r, s, a, o, l) { + const c = this.elements; + return ( + (c[0] = t), + (c[1] = i), + (c[2] = a), + (c[3] = e), + (c[4] = r), + (c[5] = o), + (c[6] = n), + (c[7] = s), + (c[8] = l), + this + ); + } + identity() { + return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this; + } + copy(t) { + const e = this.elements, + n = t.elements; + return ( + (e[0] = n[0]), + (e[1] = n[1]), + (e[2] = n[2]), + (e[3] = n[3]), + (e[4] = n[4]), + (e[5] = n[5]), + (e[6] = n[6]), + (e[7] = n[7]), + (e[8] = n[8]), + this + ); + } + extractBasis(t, e, n) { + return ( + t.setFromMatrix3Column(this, 0), + e.setFromMatrix3Column(this, 1), + n.setFromMatrix3Column(this, 2), + this + ); + } + setFromMatrix4(t) { + const e = t.elements; + return ( + this.set(e[0], e[4], e[8], e[1], e[5], e[9], e[2], e[6], e[10]), this + ); + } + multiply(t) { + return this.multiplyMatrices(this, t); + } + premultiply(t) { + return this.multiplyMatrices(t, this); + } + multiplyMatrices(t, e) { + const n = t.elements, + i = e.elements, + r = this.elements, + s = n[0], + a = n[3], + o = n[6], + l = n[1], + c = n[4], + h = n[7], + u = n[2], + d = n[5], + p = n[8], + m = i[0], + f = i[3], + g = i[6], + v = i[1], + y = i[4], + x = i[7], + _ = i[2], + w = i[5], + b = i[8]; + return ( + (r[0] = s * m + a * v + o * _), + (r[3] = s * f + a * y + o * w), + (r[6] = s * g + a * x + o * b), + (r[1] = l * m + c * v + h * _), + (r[4] = l * f + c * y + h * w), + (r[7] = l * g + c * x + h * b), + (r[2] = u * m + d * v + p * _), + (r[5] = u * f + d * y + p * w), + (r[8] = u * g + d * x + p * b), + this + ); + } + multiplyScalar(t) { + const e = this.elements; + return ( + (e[0] *= t), + (e[3] *= t), + (e[6] *= t), + (e[1] *= t), + (e[4] *= t), + (e[7] *= t), + (e[2] *= t), + (e[5] *= t), + (e[8] *= t), + this + ); + } + determinant() { + const t = this.elements, + e = t[0], + n = t[1], + i = t[2], + r = t[3], + s = t[4], + a = t[5], + o = t[6], + l = t[7], + c = t[8]; + return ( + e * s * c - e * a * l - n * r * c + n * a * o + i * r * l - i * s * o + ); + } + invert() { + const t = this.elements, + e = t[0], + n = t[1], + i = t[2], + r = t[3], + s = t[4], + a = t[5], + o = t[6], + l = t[7], + c = t[8], + h = c * s - a * l, + u = a * o - c * r, + d = l * r - s * o, + p = e * h + n * u + i * d; + if (0 === p) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0); + const m = 1 / p; + return ( + (t[0] = h * m), + (t[1] = (i * l - c * n) * m), + (t[2] = (a * n - i * s) * m), + (t[3] = u * m), + (t[4] = (c * e - i * o) * m), + (t[5] = (i * r - a * e) * m), + (t[6] = d * m), + (t[7] = (n * o - l * e) * m), + (t[8] = (s * e - n * r) * m), + this + ); + } + transpose() { + let t; + const e = this.elements; + return ( + (t = e[1]), + (e[1] = e[3]), + (e[3] = t), + (t = e[2]), + (e[2] = e[6]), + (e[6] = t), + (t = e[5]), + (e[5] = e[7]), + (e[7] = t), + this + ); + } + getNormalMatrix(t) { + return this.setFromMatrix4(t).invert().transpose(); + } + transposeIntoArray(t) { + const e = this.elements; + return ( + (t[0] = e[0]), + (t[1] = e[3]), + (t[2] = e[6]), + (t[3] = e[1]), + (t[4] = e[4]), + (t[5] = e[7]), + (t[6] = e[2]), + (t[7] = e[5]), + (t[8] = e[8]), + this + ); + } + setUvTransform(t, e, n, i, r, s, a) { + const o = Math.cos(r), + l = Math.sin(r); + return ( + this.set( + n * o, + n * l, + -n * (o * s + l * a) + s + t, + -i * l, + i * o, + -i * (-l * s + o * a) + a + e, + 0, + 0, + 1 + ), + this + ); + } + scale(t, e) { + const n = this.elements; + return ( + (n[0] *= t), + (n[3] *= t), + (n[6] *= t), + (n[1] *= e), + (n[4] *= e), + (n[7] *= e), + this + ); + } + rotate(t) { + const e = Math.cos(t), + n = Math.sin(t), + i = this.elements, + r = i[0], + s = i[3], + a = i[6], + o = i[1], + l = i[4], + c = i[7]; + return ( + (i[0] = e * r + n * o), + (i[3] = e * s + n * l), + (i[6] = e * a + n * c), + (i[1] = -n * r + e * o), + (i[4] = -n * s + e * l), + (i[7] = -n * a + e * c), + this + ); + } + translate(t, e) { + const n = this.elements; + return ( + (n[0] += t * n[2]), + (n[3] += t * n[5]), + (n[6] += t * n[8]), + (n[1] += e * n[2]), + (n[4] += e * n[5]), + (n[7] += e * n[8]), + this + ); + } + equals(t) { + const e = this.elements, + n = t.elements; + for (let t = 0; t < 9; t++) if (e[t] !== n[t]) return !1; + return !0; + } + fromArray(t, e = 0) { + for (let n = 0; n < 9; n++) this.elements[n] = t[n + e]; + return this; + } + toArray(t = [], e = 0) { + const n = this.elements; + return ( + (t[e] = n[0]), + (t[e + 1] = n[1]), + (t[e + 2] = n[2]), + (t[e + 3] = n[3]), + (t[e + 4] = n[4]), + (t[e + 5] = n[5]), + (t[e + 6] = n[6]), + (t[e + 7] = n[7]), + (t[e + 8] = n[8]), + t + ); + } + clone() { + return new this.constructor().fromArray(this.elements); + } + } + let xt; + yt.prototype.isMatrix3 = !0; + class _t { + static getDataURL(t) { + if (/^data:/i.test(t.src)) return t.src; + if ('undefined' == typeof HTMLCanvasElement) return t.src; + let e; + if (t instanceof HTMLCanvasElement) e = t; + else { + void 0 === xt && + (xt = document.createElementNS( + 'http://www.w3.org/1999/xhtml', + 'canvas' + )), + (xt.width = t.width), + (xt.height = t.height); + const n = xt.getContext('2d'); + t instanceof ImageData + ? n.putImageData(t, 0, 0) + : n.drawImage(t, 0, 0, t.width, t.height), + (e = xt); + } + return e.width > 2048 || e.height > 2048 + ? (console.warn( + 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', + t + ), + e.toDataURL('image/jpeg', 0.6)) + : e.toDataURL('image/png'); + } + } + let wt = 0; + class bt extends rt { + constructor( + t = bt.DEFAULT_IMAGE, + e = bt.DEFAULT_MAPPING, + n = 1001, + i = 1001, + r = 1006, + s = 1008, + a = 1023, + o = 1009, + l = 1, + c = 3e3 + ) { + super(), + Object.defineProperty(this, 'id', { value: wt++ }), + (this.uuid = ct()), + (this.name = ''), + (this.image = t), + (this.mipmaps = []), + (this.mapping = e), + (this.wrapS = n), + (this.wrapT = i), + (this.magFilter = r), + (this.minFilter = s), + (this.anisotropy = l), + (this.format = a), + (this.internalFormat = null), + (this.type = o), + (this.offset = new vt(0, 0)), + (this.repeat = new vt(1, 1)), + (this.center = new vt(0, 0)), + (this.rotation = 0), + (this.matrixAutoUpdate = !0), + (this.matrix = new yt()), + (this.generateMipmaps = !0), + (this.premultiplyAlpha = !1), + (this.flipY = !0), + (this.unpackAlignment = 4), + (this.encoding = c), + (this.version = 0), + (this.onUpdate = null); + } + updateMatrix() { + this.matrix.setUvTransform( + this.offset.x, + this.offset.y, + this.repeat.x, + this.repeat.y, + this.rotation, + this.center.x, + this.center.y + ); + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return ( + (this.name = t.name), + (this.image = t.image), + (this.mipmaps = t.mipmaps.slice(0)), + (this.mapping = t.mapping), + (this.wrapS = t.wrapS), + (this.wrapT = t.wrapT), + (this.magFilter = t.magFilter), + (this.minFilter = t.minFilter), + (this.anisotropy = t.anisotropy), + (this.format = t.format), + (this.internalFormat = t.internalFormat), + (this.type = t.type), + this.offset.copy(t.offset), + this.repeat.copy(t.repeat), + this.center.copy(t.center), + (this.rotation = t.rotation), + (this.matrixAutoUpdate = t.matrixAutoUpdate), + this.matrix.copy(t.matrix), + (this.generateMipmaps = t.generateMipmaps), + (this.premultiplyAlpha = t.premultiplyAlpha), + (this.flipY = t.flipY), + (this.unpackAlignment = t.unpackAlignment), + (this.encoding = t.encoding), + this + ); + } + toJSON(t) { + const e = void 0 === t || 'string' == typeof t; + if (!e && void 0 !== t.textures[this.uuid]) return t.textures[this.uuid]; + const n = { + metadata: { + version: 4.5, + type: 'Texture', + generator: 'Texture.toJSON', + }, + uuid: this.uuid, + name: this.name, + mapping: this.mapping, + repeat: [this.repeat.x, this.repeat.y], + offset: [this.offset.x, this.offset.y], + center: [this.center.x, this.center.y], + rotation: this.rotation, + wrap: [this.wrapS, this.wrapT], + format: this.format, + type: this.type, + encoding: this.encoding, + minFilter: this.minFilter, + magFilter: this.magFilter, + anisotropy: this.anisotropy, + flipY: this.flipY, + premultiplyAlpha: this.premultiplyAlpha, + unpackAlignment: this.unpackAlignment, + }; + if (void 0 !== this.image) { + const i = this.image; + if ( + (void 0 === i.uuid && (i.uuid = ct()), + !e && void 0 === t.images[i.uuid]) + ) { + let e; + if (Array.isArray(i)) { + e = []; + for (let t = 0, n = i.length; t < n; t++) + i[t].isDataTexture ? e.push(Mt(i[t].image)) : e.push(Mt(i[t])); + } else e = Mt(i); + t.images[i.uuid] = { uuid: i.uuid, url: e }; + } + n.image = i.uuid; + } + return e || (t.textures[this.uuid] = n), n; + } + dispose() { + this.dispatchEvent({ type: 'dispose' }); + } + transformUv(t) { + if (this.mapping !== i) return t; + if ((t.applyMatrix3(this.matrix), t.x < 0 || t.x > 1)) + switch (this.wrapS) { + case h: + t.x = t.x - Math.floor(t.x); + break; + case u: + t.x = t.x < 0 ? 0 : 1; + break; + case d: + 1 === Math.abs(Math.floor(t.x) % 2) + ? (t.x = Math.ceil(t.x) - t.x) + : (t.x = t.x - Math.floor(t.x)); + } + if (t.y < 0 || t.y > 1) + switch (this.wrapT) { + case h: + t.y = t.y - Math.floor(t.y); + break; + case u: + t.y = t.y < 0 ? 0 : 1; + break; + case d: + 1 === Math.abs(Math.floor(t.y) % 2) + ? (t.y = Math.ceil(t.y) - t.y) + : (t.y = t.y - Math.floor(t.y)); + } + return this.flipY && (t.y = 1 - t.y), t; + } + set needsUpdate(t) { + !0 === t && this.version++; + } + } + function Mt(t) { + return ('undefined' != typeof HTMLImageElement && + t instanceof HTMLImageElement) || + ('undefined' != typeof HTMLCanvasElement && + t instanceof HTMLCanvasElement) || + ('undefined' != typeof ImageBitmap && t instanceof ImageBitmap) + ? _t.getDataURL(t) + : t.data + ? { + data: Array.prototype.slice.call(t.data), + width: t.width, + height: t.height, + type: t.data.constructor.name, + } + : (console.warn('THREE.Texture: Unable to serialize Texture.'), {}); + } + (bt.DEFAULT_IMAGE = void 0), + (bt.DEFAULT_MAPPING = i), + (bt.prototype.isTexture = !0); + class St { + constructor(t = 0, e = 0, n = 0, i = 1) { + (this.x = t), (this.y = e), (this.z = n), (this.w = i); + } + get width() { + return this.z; + } + set width(t) { + this.z = t; + } + get height() { + return this.w; + } + set height(t) { + this.w = t; + } + set(t, e, n, i) { + return (this.x = t), (this.y = e), (this.z = n), (this.w = i), this; + } + setScalar(t) { + return (this.x = t), (this.y = t), (this.z = t), (this.w = t), this; + } + setX(t) { + return (this.x = t), this; + } + setY(t) { + return (this.y = t), this; + } + setZ(t) { + return (this.z = t), this; + } + setW(t) { + return (this.w = t), this; + } + setComponent(t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + case 3: + this.w = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + return this; + } + getComponent(t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + case 3: + return this.w; + default: + throw new Error('index is out of range: ' + t); + } + } + clone() { + return new this.constructor(this.x, this.y, this.z, this.w); + } + copy(t) { + return ( + (this.x = t.x), + (this.y = t.y), + (this.z = t.z), + (this.w = void 0 !== t.w ? t.w : 1), + this + ); + } + add(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' + ), + this.addVectors(t, e)) + : ((this.x += t.x), + (this.y += t.y), + (this.z += t.z), + (this.w += t.w), + this); + } + addScalar(t) { + return (this.x += t), (this.y += t), (this.z += t), (this.w += t), this; + } + addVectors(t, e) { + return ( + (this.x = t.x + e.x), + (this.y = t.y + e.y), + (this.z = t.z + e.z), + (this.w = t.w + e.w), + this + ); + } + addScaledVector(t, e) { + return ( + (this.x += t.x * e), + (this.y += t.y * e), + (this.z += t.z * e), + (this.w += t.w * e), + this + ); + } + sub(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' + ), + this.subVectors(t, e)) + : ((this.x -= t.x), + (this.y -= t.y), + (this.z -= t.z), + (this.w -= t.w), + this); + } + subScalar(t) { + return (this.x -= t), (this.y -= t), (this.z -= t), (this.w -= t), this; + } + subVectors(t, e) { + return ( + (this.x = t.x - e.x), + (this.y = t.y - e.y), + (this.z = t.z - e.z), + (this.w = t.w - e.w), + this + ); + } + multiply(t) { + return ( + (this.x *= t.x), (this.y *= t.y), (this.z *= t.z), (this.w *= t.w), this + ); + } + multiplyScalar(t) { + return (this.x *= t), (this.y *= t), (this.z *= t), (this.w *= t), this; + } + applyMatrix4(t) { + const e = this.x, + n = this.y, + i = this.z, + r = this.w, + s = t.elements; + return ( + (this.x = s[0] * e + s[4] * n + s[8] * i + s[12] * r), + (this.y = s[1] * e + s[5] * n + s[9] * i + s[13] * r), + (this.z = s[2] * e + s[6] * n + s[10] * i + s[14] * r), + (this.w = s[3] * e + s[7] * n + s[11] * i + s[15] * r), + this + ); + } + divideScalar(t) { + return this.multiplyScalar(1 / t); + } + setAxisAngleFromQuaternion(t) { + this.w = 2 * Math.acos(t.w); + const e = Math.sqrt(1 - t.w * t.w); + return ( + e < 1e-4 + ? ((this.x = 1), (this.y = 0), (this.z = 0)) + : ((this.x = t.x / e), (this.y = t.y / e), (this.z = t.z / e)), + this + ); + } + setAxisAngleFromRotationMatrix(t) { + let e, n, i, r; + const s = 0.01, + a = 0.1, + o = t.elements, + l = o[0], + c = o[4], + h = o[8], + u = o[1], + d = o[5], + p = o[9], + m = o[2], + f = o[6], + g = o[10]; + if (Math.abs(c - u) < s && Math.abs(h - m) < s && Math.abs(p - f) < s) { + if ( + Math.abs(c + u) < a && + Math.abs(h + m) < a && + Math.abs(p + f) < a && + Math.abs(l + d + g - 3) < a + ) + return this.set(1, 0, 0, 0), this; + e = Math.PI; + const t = (l + 1) / 2, + o = (d + 1) / 2, + v = (g + 1) / 2, + y = (c + u) / 4, + x = (h + m) / 4, + _ = (p + f) / 4; + return ( + t > o && t > v + ? t < s + ? ((n = 0), (i = 0.707106781), (r = 0.707106781)) + : ((n = Math.sqrt(t)), (i = y / n), (r = x / n)) + : o > v + ? o < s + ? ((n = 0.707106781), (i = 0), (r = 0.707106781)) + : ((i = Math.sqrt(o)), (n = y / i), (r = _ / i)) + : v < s + ? ((n = 0.707106781), (i = 0.707106781), (r = 0)) + : ((r = Math.sqrt(v)), (n = x / r), (i = _ / r)), + this.set(n, i, r, e), + this + ); + } + let v = Math.sqrt( + (f - p) * (f - p) + (h - m) * (h - m) + (u - c) * (u - c) + ); + return ( + Math.abs(v) < 0.001 && (v = 1), + (this.x = (f - p) / v), + (this.y = (h - m) / v), + (this.z = (u - c) / v), + (this.w = Math.acos((l + d + g - 1) / 2)), + this + ); + } + min(t) { + return ( + (this.x = Math.min(this.x, t.x)), + (this.y = Math.min(this.y, t.y)), + (this.z = Math.min(this.z, t.z)), + (this.w = Math.min(this.w, t.w)), + this + ); + } + max(t) { + return ( + (this.x = Math.max(this.x, t.x)), + (this.y = Math.max(this.y, t.y)), + (this.z = Math.max(this.z, t.z)), + (this.w = Math.max(this.w, t.w)), + this + ); + } + clamp(t, e) { + return ( + (this.x = Math.max(t.x, Math.min(e.x, this.x))), + (this.y = Math.max(t.y, Math.min(e.y, this.y))), + (this.z = Math.max(t.z, Math.min(e.z, this.z))), + (this.w = Math.max(t.w, Math.min(e.w, this.w))), + this + ); + } + clampScalar(t, e) { + return ( + (this.x = Math.max(t, Math.min(e, this.x))), + (this.y = Math.max(t, Math.min(e, this.y))), + (this.z = Math.max(t, Math.min(e, this.z))), + (this.w = Math.max(t, Math.min(e, this.w))), + this + ); + } + clampLength(t, e) { + const n = this.length(); + return this.divideScalar(n || 1).multiplyScalar( + Math.max(t, Math.min(e, n)) + ); + } + floor() { + return ( + (this.x = Math.floor(this.x)), + (this.y = Math.floor(this.y)), + (this.z = Math.floor(this.z)), + (this.w = Math.floor(this.w)), + this + ); + } + ceil() { + return ( + (this.x = Math.ceil(this.x)), + (this.y = Math.ceil(this.y)), + (this.z = Math.ceil(this.z)), + (this.w = Math.ceil(this.w)), + this + ); + } + round() { + return ( + (this.x = Math.round(this.x)), + (this.y = Math.round(this.y)), + (this.z = Math.round(this.z)), + (this.w = Math.round(this.w)), + this + ); + } + roundToZero() { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)), + (this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w)), + this + ); + } + negate() { + return ( + (this.x = -this.x), + (this.y = -this.y), + (this.z = -this.z), + (this.w = -this.w), + this + ); + } + dot(t) { + return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w; + } + lengthSq() { + return ( + this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w + ); + } + length() { + return Math.sqrt( + this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w + ); + } + manhattanLength() { + return ( + Math.abs(this.x) + + Math.abs(this.y) + + Math.abs(this.z) + + Math.abs(this.w) + ); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + setLength(t) { + return this.normalize().multiplyScalar(t); + } + lerp(t, e) { + return ( + (this.x += (t.x - this.x) * e), + (this.y += (t.y - this.y) * e), + (this.z += (t.z - this.z) * e), + (this.w += (t.w - this.w) * e), + this + ); + } + lerpVectors(t, e, n) { + return ( + (this.x = t.x + (e.x - t.x) * n), + (this.y = t.y + (e.y - t.y) * n), + (this.z = t.z + (e.z - t.z) * n), + (this.w = t.w + (e.w - t.w) * n), + this + ); + } + equals(t) { + return ( + t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w + ); + } + fromArray(t, e = 0) { + return ( + (this.x = t[e]), + (this.y = t[e + 1]), + (this.z = t[e + 2]), + (this.w = t[e + 3]), + this + ); + } + toArray(t = [], e = 0) { + return ( + (t[e] = this.x), + (t[e + 1] = this.y), + (t[e + 2] = this.z), + (t[e + 3] = this.w), + t + ); + } + fromBufferAttribute(t, e, n) { + return ( + void 0 !== n && + console.warn( + 'THREE.Vector4: offset has been removed from .fromBufferAttribute().' + ), + (this.x = t.getX(e)), + (this.y = t.getY(e)), + (this.z = t.getZ(e)), + (this.w = t.getW(e)), + this + ); + } + random() { + return ( + (this.x = Math.random()), + (this.y = Math.random()), + (this.z = Math.random()), + (this.w = Math.random()), + this + ); + } + } + St.prototype.isVector4 = !0; + class Tt extends rt { + constructor(t, e, n) { + super(), + (this.width = t), + (this.height = e), + (this.depth = 1), + (this.scissor = new St(0, 0, t, e)), + (this.scissorTest = !1), + (this.viewport = new St(0, 0, t, e)), + (n = n || {}), + (this.texture = new bt( + void 0, + n.mapping, + n.wrapS, + n.wrapT, + n.magFilter, + n.minFilter, + n.format, + n.type, + n.anisotropy, + n.encoding + )), + (this.texture.image = {}), + (this.texture.image.width = t), + (this.texture.image.height = e), + (this.texture.image.depth = 1), + (this.texture.generateMipmaps = + void 0 !== n.generateMipmaps && n.generateMipmaps), + (this.texture.minFilter = void 0 !== n.minFilter ? n.minFilter : g), + (this.depthBuffer = void 0 === n.depthBuffer || n.depthBuffer), + (this.stencilBuffer = void 0 !== n.stencilBuffer && n.stencilBuffer), + (this.depthTexture = void 0 !== n.depthTexture ? n.depthTexture : null); + } + setTexture(t) { + (t.image = { width: this.width, height: this.height, depth: this.depth }), + (this.texture = t); + } + setSize(t, e, n = 1) { + (this.width === t && this.height === e && this.depth === n) || + ((this.width = t), + (this.height = e), + (this.depth = n), + (this.texture.image.width = t), + (this.texture.image.height = e), + (this.texture.image.depth = n), + this.dispose()), + this.viewport.set(0, 0, t, e), + this.scissor.set(0, 0, t, e); + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return ( + (this.width = t.width), + (this.height = t.height), + (this.depth = t.depth), + this.viewport.copy(t.viewport), + (this.texture = t.texture.clone()), + (this.depthBuffer = t.depthBuffer), + (this.stencilBuffer = t.stencilBuffer), + (this.depthTexture = t.depthTexture), + this + ); + } + dispose() { + this.dispatchEvent({ type: 'dispose' }); + } + } + Tt.prototype.isWebGLRenderTarget = !0; + class Et extends Tt { + constructor(t, e, n) { + super(t, e, n), (this.samples = 4); + } + copy(t) { + return super.copy.call(this, t), (this.samples = t.samples), this; + } + } + Et.prototype.isWebGLMultisampleRenderTarget = !0; + class At { + constructor(t = 0, e = 0, n = 0, i = 1) { + (this._x = t), (this._y = e), (this._z = n), (this._w = i); + } + static slerp(t, e, n, i) { + return ( + console.warn( + 'THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.' + ), + n.slerpQuaternions(t, e, i) + ); + } + static slerpFlat(t, e, n, i, r, s, a) { + let o = n[i + 0], + l = n[i + 1], + c = n[i + 2], + h = n[i + 3]; + const u = r[s + 0], + d = r[s + 1], + p = r[s + 2], + m = r[s + 3]; + if (0 === a) + return ( + (t[e + 0] = o), (t[e + 1] = l), (t[e + 2] = c), void (t[e + 3] = h) + ); + if (1 === a) + return ( + (t[e + 0] = u), (t[e + 1] = d), (t[e + 2] = p), void (t[e + 3] = m) + ); + if (h !== m || o !== u || l !== d || c !== p) { + let t = 1 - a; + const e = o * u + l * d + c * p + h * m, + n = e >= 0 ? 1 : -1, + i = 1 - e * e; + if (i > Number.EPSILON) { + const r = Math.sqrt(i), + s = Math.atan2(r, e * n); + (t = Math.sin(t * s) / r), (a = Math.sin(a * s) / r); + } + const r = a * n; + if ( + ((o = o * t + u * r), + (l = l * t + d * r), + (c = c * t + p * r), + (h = h * t + m * r), + t === 1 - a) + ) { + const t = 1 / Math.sqrt(o * o + l * l + c * c + h * h); + (o *= t), (l *= t), (c *= t), (h *= t); + } + } + (t[e] = o), (t[e + 1] = l), (t[e + 2] = c), (t[e + 3] = h); + } + static multiplyQuaternionsFlat(t, e, n, i, r, s) { + const a = n[i], + o = n[i + 1], + l = n[i + 2], + c = n[i + 3], + h = r[s], + u = r[s + 1], + d = r[s + 2], + p = r[s + 3]; + return ( + (t[e] = a * p + c * h + o * d - l * u), + (t[e + 1] = o * p + c * u + l * h - a * d), + (t[e + 2] = l * p + c * d + a * u - o * h), + (t[e + 3] = c * p - a * h - o * u - l * d), + t + ); + } + get x() { + return this._x; + } + set x(t) { + (this._x = t), this._onChangeCallback(); + } + get y() { + return this._y; + } + set y(t) { + (this._y = t), this._onChangeCallback(); + } + get z() { + return this._z; + } + set z(t) { + (this._z = t), this._onChangeCallback(); + } + get w() { + return this._w; + } + set w(t) { + (this._w = t), this._onChangeCallback(); + } + set(t, e, n, i) { + return ( + (this._x = t), + (this._y = e), + (this._z = n), + (this._w = i), + this._onChangeCallback(), + this + ); + } + clone() { + return new this.constructor(this._x, this._y, this._z, this._w); + } + copy(t) { + return ( + (this._x = t.x), + (this._y = t.y), + (this._z = t.z), + (this._w = t.w), + this._onChangeCallback(), + this + ); + } + setFromEuler(t, e) { + if (!t || !t.isEuler) + throw new Error( + 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' + ); + const n = t._x, + i = t._y, + r = t._z, + s = t._order, + a = Math.cos, + o = Math.sin, + l = a(n / 2), + c = a(i / 2), + h = a(r / 2), + u = o(n / 2), + d = o(i / 2), + p = o(r / 2); + switch (s) { + case 'XYZ': + (this._x = u * c * h + l * d * p), + (this._y = l * d * h - u * c * p), + (this._z = l * c * p + u * d * h), + (this._w = l * c * h - u * d * p); + break; + case 'YXZ': + (this._x = u * c * h + l * d * p), + (this._y = l * d * h - u * c * p), + (this._z = l * c * p - u * d * h), + (this._w = l * c * h + u * d * p); + break; + case 'ZXY': + (this._x = u * c * h - l * d * p), + (this._y = l * d * h + u * c * p), + (this._z = l * c * p + u * d * h), + (this._w = l * c * h - u * d * p); + break; + case 'ZYX': + (this._x = u * c * h - l * d * p), + (this._y = l * d * h + u * c * p), + (this._z = l * c * p - u * d * h), + (this._w = l * c * h + u * d * p); + break; + case 'YZX': + (this._x = u * c * h + l * d * p), + (this._y = l * d * h + u * c * p), + (this._z = l * c * p - u * d * h), + (this._w = l * c * h - u * d * p); + break; + case 'XZY': + (this._x = u * c * h - l * d * p), + (this._y = l * d * h - u * c * p), + (this._z = l * c * p + u * d * h), + (this._w = l * c * h + u * d * p); + break; + default: + console.warn( + 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + + s + ); + } + return !1 !== e && this._onChangeCallback(), this; + } + setFromAxisAngle(t, e) { + const n = e / 2, + i = Math.sin(n); + return ( + (this._x = t.x * i), + (this._y = t.y * i), + (this._z = t.z * i), + (this._w = Math.cos(n)), + this._onChangeCallback(), + this + ); + } + setFromRotationMatrix(t) { + const e = t.elements, + n = e[0], + i = e[4], + r = e[8], + s = e[1], + a = e[5], + o = e[9], + l = e[2], + c = e[6], + h = e[10], + u = n + a + h; + if (u > 0) { + const t = 0.5 / Math.sqrt(u + 1); + (this._w = 0.25 / t), + (this._x = (c - o) * t), + (this._y = (r - l) * t), + (this._z = (s - i) * t); + } else if (n > a && n > h) { + const t = 2 * Math.sqrt(1 + n - a - h); + (this._w = (c - o) / t), + (this._x = 0.25 * t), + (this._y = (i + s) / t), + (this._z = (r + l) / t); + } else if (a > h) { + const t = 2 * Math.sqrt(1 + a - n - h); + (this._w = (r - l) / t), + (this._x = (i + s) / t), + (this._y = 0.25 * t), + (this._z = (o + c) / t); + } else { + const t = 2 * Math.sqrt(1 + h - n - a); + (this._w = (s - i) / t), + (this._x = (r + l) / t), + (this._y = (o + c) / t), + (this._z = 0.25 * t); + } + return this._onChangeCallback(), this; + } + setFromUnitVectors(t, e) { + let n = t.dot(e) + 1; + return ( + n < Number.EPSILON + ? ((n = 0), + Math.abs(t.x) > Math.abs(t.z) + ? ((this._x = -t.y), + (this._y = t.x), + (this._z = 0), + (this._w = n)) + : ((this._x = 0), + (this._y = -t.z), + (this._z = t.y), + (this._w = n))) + : ((this._x = t.y * e.z - t.z * e.y), + (this._y = t.z * e.x - t.x * e.z), + (this._z = t.x * e.y - t.y * e.x), + (this._w = n)), + this.normalize() + ); + } + angleTo(t) { + return 2 * Math.acos(Math.abs(ht(this.dot(t), -1, 1))); + } + rotateTowards(t, e) { + const n = this.angleTo(t); + if (0 === n) return this; + const i = Math.min(1, e / n); + return this.slerp(t, i), this; + } + identity() { + return this.set(0, 0, 0, 1); + } + invert() { + return this.conjugate(); + } + conjugate() { + return ( + (this._x *= -1), + (this._y *= -1), + (this._z *= -1), + this._onChangeCallback(), + this + ); + } + dot(t) { + return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w; + } + lengthSq() { + return ( + this._x * this._x + + this._y * this._y + + this._z * this._z + + this._w * this._w + ); + } + length() { + return Math.sqrt( + this._x * this._x + + this._y * this._y + + this._z * this._z + + this._w * this._w + ); + } + normalize() { + let t = this.length(); + return ( + 0 === t + ? ((this._x = 0), (this._y = 0), (this._z = 0), (this._w = 1)) + : ((t = 1 / t), + (this._x = this._x * t), + (this._y = this._y * t), + (this._z = this._z * t), + (this._w = this._w * t)), + this._onChangeCallback(), + this + ); + } + multiply(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' + ), + this.multiplyQuaternions(t, e)) + : this.multiplyQuaternions(this, t); + } + premultiply(t) { + return this.multiplyQuaternions(t, this); + } + multiplyQuaternions(t, e) { + const n = t._x, + i = t._y, + r = t._z, + s = t._w, + a = e._x, + o = e._y, + l = e._z, + c = e._w; + return ( + (this._x = n * c + s * a + i * l - r * o), + (this._y = i * c + s * o + r * a - n * l), + (this._z = r * c + s * l + n * o - i * a), + (this._w = s * c - n * a - i * o - r * l), + this._onChangeCallback(), + this + ); + } + slerp(t, e) { + if (0 === e) return this; + if (1 === e) return this.copy(t); + const n = this._x, + i = this._y, + r = this._z, + s = this._w; + let a = s * t._w + n * t._x + i * t._y + r * t._z; + if ( + (a < 0 + ? ((this._w = -t._w), + (this._x = -t._x), + (this._y = -t._y), + (this._z = -t._z), + (a = -a)) + : this.copy(t), + a >= 1) + ) + return (this._w = s), (this._x = n), (this._y = i), (this._z = r), this; + const o = 1 - a * a; + if (o <= Number.EPSILON) { + const t = 1 - e; + return ( + (this._w = t * s + e * this._w), + (this._x = t * n + e * this._x), + (this._y = t * i + e * this._y), + (this._z = t * r + e * this._z), + this.normalize(), + this._onChangeCallback(), + this + ); + } + const l = Math.sqrt(o), + c = Math.atan2(l, a), + h = Math.sin((1 - e) * c) / l, + u = Math.sin(e * c) / l; + return ( + (this._w = s * h + this._w * u), + (this._x = n * h + this._x * u), + (this._y = i * h + this._y * u), + (this._z = r * h + this._z * u), + this._onChangeCallback(), + this + ); + } + slerpQuaternions(t, e, n) { + this.copy(t).slerp(e, n); + } + equals(t) { + return ( + t._x === this._x && + t._y === this._y && + t._z === this._z && + t._w === this._w + ); + } + fromArray(t, e = 0) { + return ( + (this._x = t[e]), + (this._y = t[e + 1]), + (this._z = t[e + 2]), + (this._w = t[e + 3]), + this._onChangeCallback(), + this + ); + } + toArray(t = [], e = 0) { + return ( + (t[e] = this._x), + (t[e + 1] = this._y), + (t[e + 2] = this._z), + (t[e + 3] = this._w), + t + ); + } + fromBufferAttribute(t, e) { + return ( + (this._x = t.getX(e)), + (this._y = t.getY(e)), + (this._z = t.getZ(e)), + (this._w = t.getW(e)), + this + ); + } + _onChange(t) { + return (this._onChangeCallback = t), this; + } + _onChangeCallback() {} + } + At.prototype.isQuaternion = !0; + class Lt { + constructor(t = 0, e = 0, n = 0) { + (this.x = t), (this.y = e), (this.z = n); + } + set(t, e, n) { + return ( + void 0 === n && (n = this.z), + (this.x = t), + (this.y = e), + (this.z = n), + this + ); + } + setScalar(t) { + return (this.x = t), (this.y = t), (this.z = t), this; + } + setX(t) { + return (this.x = t), this; + } + setY(t) { + return (this.y = t), this; + } + setZ(t) { + return (this.z = t), this; + } + setComponent(t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + return this; + } + getComponent(t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + default: + throw new Error('index is out of range: ' + t); + } + } + clone() { + return new this.constructor(this.x, this.y, this.z); + } + copy(t) { + return (this.x = t.x), (this.y = t.y), (this.z = t.z), this; + } + add(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' + ), + this.addVectors(t, e)) + : ((this.x += t.x), (this.y += t.y), (this.z += t.z), this); + } + addScalar(t) { + return (this.x += t), (this.y += t), (this.z += t), this; + } + addVectors(t, e) { + return ( + (this.x = t.x + e.x), (this.y = t.y + e.y), (this.z = t.z + e.z), this + ); + } + addScaledVector(t, e) { + return ( + (this.x += t.x * e), (this.y += t.y * e), (this.z += t.z * e), this + ); + } + sub(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' + ), + this.subVectors(t, e)) + : ((this.x -= t.x), (this.y -= t.y), (this.z -= t.z), this); + } + subScalar(t) { + return (this.x -= t), (this.y -= t), (this.z -= t), this; + } + subVectors(t, e) { + return ( + (this.x = t.x - e.x), (this.y = t.y - e.y), (this.z = t.z - e.z), this + ); + } + multiply(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' + ), + this.multiplyVectors(t, e)) + : ((this.x *= t.x), (this.y *= t.y), (this.z *= t.z), this); + } + multiplyScalar(t) { + return (this.x *= t), (this.y *= t), (this.z *= t), this; + } + multiplyVectors(t, e) { + return ( + (this.x = t.x * e.x), (this.y = t.y * e.y), (this.z = t.z * e.z), this + ); + } + applyEuler(t) { + return ( + (t && t.isEuler) || + console.error( + 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' + ), + this.applyQuaternion(Ct.setFromEuler(t)) + ); + } + applyAxisAngle(t, e) { + return this.applyQuaternion(Ct.setFromAxisAngle(t, e)); + } + applyMatrix3(t) { + const e = this.x, + n = this.y, + i = this.z, + r = t.elements; + return ( + (this.x = r[0] * e + r[3] * n + r[6] * i), + (this.y = r[1] * e + r[4] * n + r[7] * i), + (this.z = r[2] * e + r[5] * n + r[8] * i), + this + ); + } + applyNormalMatrix(t) { + return this.applyMatrix3(t).normalize(); + } + applyMatrix4(t) { + const e = this.x, + n = this.y, + i = this.z, + r = t.elements, + s = 1 / (r[3] * e + r[7] * n + r[11] * i + r[15]); + return ( + (this.x = (r[0] * e + r[4] * n + r[8] * i + r[12]) * s), + (this.y = (r[1] * e + r[5] * n + r[9] * i + r[13]) * s), + (this.z = (r[2] * e + r[6] * n + r[10] * i + r[14]) * s), + this + ); + } + applyQuaternion(t) { + const e = this.x, + n = this.y, + i = this.z, + r = t.x, + s = t.y, + a = t.z, + o = t.w, + l = o * e + s * i - a * n, + c = o * n + a * e - r * i, + h = o * i + r * n - s * e, + u = -r * e - s * n - a * i; + return ( + (this.x = l * o + u * -r + c * -a - h * -s), + (this.y = c * o + u * -s + h * -r - l * -a), + (this.z = h * o + u * -a + l * -s - c * -r), + this + ); + } + project(t) { + return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4( + t.projectionMatrix + ); + } + unproject(t) { + return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4( + t.matrixWorld + ); + } + transformDirection(t) { + const e = this.x, + n = this.y, + i = this.z, + r = t.elements; + return ( + (this.x = r[0] * e + r[4] * n + r[8] * i), + (this.y = r[1] * e + r[5] * n + r[9] * i), + (this.z = r[2] * e + r[6] * n + r[10] * i), + this.normalize() + ); + } + divide(t) { + return (this.x /= t.x), (this.y /= t.y), (this.z /= t.z), this; + } + divideScalar(t) { + return this.multiplyScalar(1 / t); + } + min(t) { + return ( + (this.x = Math.min(this.x, t.x)), + (this.y = Math.min(this.y, t.y)), + (this.z = Math.min(this.z, t.z)), + this + ); + } + max(t) { + return ( + (this.x = Math.max(this.x, t.x)), + (this.y = Math.max(this.y, t.y)), + (this.z = Math.max(this.z, t.z)), + this + ); + } + clamp(t, e) { + return ( + (this.x = Math.max(t.x, Math.min(e.x, this.x))), + (this.y = Math.max(t.y, Math.min(e.y, this.y))), + (this.z = Math.max(t.z, Math.min(e.z, this.z))), + this + ); + } + clampScalar(t, e) { + return ( + (this.x = Math.max(t, Math.min(e, this.x))), + (this.y = Math.max(t, Math.min(e, this.y))), + (this.z = Math.max(t, Math.min(e, this.z))), + this + ); + } + clampLength(t, e) { + const n = this.length(); + return this.divideScalar(n || 1).multiplyScalar( + Math.max(t, Math.min(e, n)) + ); + } + floor() { + return ( + (this.x = Math.floor(this.x)), + (this.y = Math.floor(this.y)), + (this.z = Math.floor(this.z)), + this + ); + } + ceil() { + return ( + (this.x = Math.ceil(this.x)), + (this.y = Math.ceil(this.y)), + (this.z = Math.ceil(this.z)), + this + ); + } + round() { + return ( + (this.x = Math.round(this.x)), + (this.y = Math.round(this.y)), + (this.z = Math.round(this.z)), + this + ); + } + roundToZero() { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)), + this + ); + } + negate() { + return (this.x = -this.x), (this.y = -this.y), (this.z = -this.z), this; + } + dot(t) { + return this.x * t.x + this.y * t.y + this.z * t.z; + } + lengthSq() { + return this.x * this.x + this.y * this.y + this.z * this.z; + } + length() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + } + manhattanLength() { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + setLength(t) { + return this.normalize().multiplyScalar(t); + } + lerp(t, e) { + return ( + (this.x += (t.x - this.x) * e), + (this.y += (t.y - this.y) * e), + (this.z += (t.z - this.z) * e), + this + ); + } + lerpVectors(t, e, n) { + return ( + (this.x = t.x + (e.x - t.x) * n), + (this.y = t.y + (e.y - t.y) * n), + (this.z = t.z + (e.z - t.z) * n), + this + ); + } + cross(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' + ), + this.crossVectors(t, e)) + : this.crossVectors(this, t); + } + crossVectors(t, e) { + const n = t.x, + i = t.y, + r = t.z, + s = e.x, + a = e.y, + o = e.z; + return ( + (this.x = i * o - r * a), + (this.y = r * s - n * o), + (this.z = n * a - i * s), + this + ); + } + projectOnVector(t) { + const e = t.lengthSq(); + if (0 === e) return this.set(0, 0, 0); + const n = t.dot(this) / e; + return this.copy(t).multiplyScalar(n); + } + projectOnPlane(t) { + return Rt.copy(this).projectOnVector(t), this.sub(Rt); + } + reflect(t) { + return this.sub(Rt.copy(t).multiplyScalar(2 * this.dot(t))); + } + angleTo(t) { + const e = Math.sqrt(this.lengthSq() * t.lengthSq()); + if (0 === e) return Math.PI / 2; + const n = this.dot(t) / e; + return Math.acos(ht(n, -1, 1)); + } + distanceTo(t) { + return Math.sqrt(this.distanceToSquared(t)); + } + distanceToSquared(t) { + const e = this.x - t.x, + n = this.y - t.y, + i = this.z - t.z; + return e * e + n * n + i * i; + } + manhattanDistanceTo(t) { + return ( + Math.abs(this.x - t.x) + Math.abs(this.y - t.y) + Math.abs(this.z - t.z) + ); + } + setFromSpherical(t) { + return this.setFromSphericalCoords(t.radius, t.phi, t.theta); + } + setFromSphericalCoords(t, e, n) { + const i = Math.sin(e) * t; + return ( + (this.x = i * Math.sin(n)), + (this.y = Math.cos(e) * t), + (this.z = i * Math.cos(n)), + this + ); + } + setFromCylindrical(t) { + return this.setFromCylindricalCoords(t.radius, t.theta, t.y); + } + setFromCylindricalCoords(t, e, n) { + return ( + (this.x = t * Math.sin(e)), + (this.y = n), + (this.z = t * Math.cos(e)), + this + ); + } + setFromMatrixPosition(t) { + const e = t.elements; + return (this.x = e[12]), (this.y = e[13]), (this.z = e[14]), this; + } + setFromMatrixScale(t) { + const e = this.setFromMatrixColumn(t, 0).length(), + n = this.setFromMatrixColumn(t, 1).length(), + i = this.setFromMatrixColumn(t, 2).length(); + return (this.x = e), (this.y = n), (this.z = i), this; + } + setFromMatrixColumn(t, e) { + return this.fromArray(t.elements, 4 * e); + } + setFromMatrix3Column(t, e) { + return this.fromArray(t.elements, 3 * e); + } + equals(t) { + return t.x === this.x && t.y === this.y && t.z === this.z; + } + fromArray(t, e = 0) { + return (this.x = t[e]), (this.y = t[e + 1]), (this.z = t[e + 2]), this; + } + toArray(t = [], e = 0) { + return (t[e] = this.x), (t[e + 1] = this.y), (t[e + 2] = this.z), t; + } + fromBufferAttribute(t, e, n) { + return ( + void 0 !== n && + console.warn( + 'THREE.Vector3: offset has been removed from .fromBufferAttribute().' + ), + (this.x = t.getX(e)), + (this.y = t.getY(e)), + (this.z = t.getZ(e)), + this + ); + } + random() { + return ( + (this.x = Math.random()), + (this.y = Math.random()), + (this.z = Math.random()), + this + ); + } + } + Lt.prototype.isVector3 = !0; + const Rt = new Lt(), + Ct = new At(); + class Pt { + constructor( + t = new Lt(1 / 0, 1 / 0, 1 / 0), + e = new Lt(-1 / 0, -1 / 0, -1 / 0) + ) { + (this.min = t), (this.max = e); + } + set(t, e) { + return this.min.copy(t), this.max.copy(e), this; + } + setFromArray(t) { + let e = 1 / 0, + n = 1 / 0, + i = 1 / 0, + r = -1 / 0, + s = -1 / 0, + a = -1 / 0; + for (let o = 0, l = t.length; o < l; o += 3) { + const l = t[o], + c = t[o + 1], + h = t[o + 2]; + l < e && (e = l), + c < n && (n = c), + h < i && (i = h), + l > r && (r = l), + c > s && (s = c), + h > a && (a = h); + } + return this.min.set(e, n, i), this.max.set(r, s, a), this; + } + setFromBufferAttribute(t) { + let e = 1 / 0, + n = 1 / 0, + i = 1 / 0, + r = -1 / 0, + s = -1 / 0, + a = -1 / 0; + for (let o = 0, l = t.count; o < l; o++) { + const l = t.getX(o), + c = t.getY(o), + h = t.getZ(o); + l < e && (e = l), + c < n && (n = c), + h < i && (i = h), + l > r && (r = l), + c > s && (s = c), + h > a && (a = h); + } + return this.min.set(e, n, i), this.max.set(r, s, a), this; + } + setFromPoints(t) { + this.makeEmpty(); + for (let e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); + return this; + } + setFromCenterAndSize(t, e) { + const n = It.copy(e).multiplyScalar(0.5); + return this.min.copy(t).sub(n), this.max.copy(t).add(n), this; + } + setFromObject(t) { + return this.makeEmpty(), this.expandByObject(t); + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return this.min.copy(t.min), this.max.copy(t.max), this; + } + makeEmpty() { + return ( + (this.min.x = this.min.y = this.min.z = 1 / 0), + (this.max.x = this.max.y = this.max.z = -1 / 0), + this + ); + } + isEmpty() { + return ( + this.max.x < this.min.x || + this.max.y < this.min.y || + this.max.z < this.min.z + ); + } + getCenter(t) { + return ( + void 0 === t && + (console.warn('THREE.Box3: .getCenter() target is now required'), + (t = new Lt())), + this.isEmpty() + ? t.set(0, 0, 0) + : t.addVectors(this.min, this.max).multiplyScalar(0.5) + ); + } + getSize(t) { + return ( + void 0 === t && + (console.warn('THREE.Box3: .getSize() target is now required'), + (t = new Lt())), + this.isEmpty() ? t.set(0, 0, 0) : t.subVectors(this.max, this.min) + ); + } + expandByPoint(t) { + return this.min.min(t), this.max.max(t), this; + } + expandByVector(t) { + return this.min.sub(t), this.max.add(t), this; + } + expandByScalar(t) { + return this.min.addScalar(-t), this.max.addScalar(t), this; + } + expandByObject(t) { + t.updateWorldMatrix(!1, !1); + const e = t.geometry; + void 0 !== e && + (null === e.boundingBox && e.computeBoundingBox(), + Nt.copy(e.boundingBox), + Nt.applyMatrix4(t.matrixWorld), + this.union(Nt)); + const n = t.children; + for (let t = 0, e = n.length; t < e; t++) this.expandByObject(n[t]); + return this; + } + containsPoint(t) { + return !( + t.x < this.min.x || + t.x > this.max.x || + t.y < this.min.y || + t.y > this.max.y || + t.z < this.min.z || + t.z > this.max.z + ); + } + containsBox(t) { + return ( + this.min.x <= t.min.x && + t.max.x <= this.max.x && + this.min.y <= t.min.y && + t.max.y <= this.max.y && + this.min.z <= t.min.z && + t.max.z <= this.max.z + ); + } + getParameter(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Box3: .getParameter() target is now required'), + (e = new Lt())), + e.set( + (t.x - this.min.x) / (this.max.x - this.min.x), + (t.y - this.min.y) / (this.max.y - this.min.y), + (t.z - this.min.z) / (this.max.z - this.min.z) + ) + ); + } + intersectsBox(t) { + return !( + t.max.x < this.min.x || + t.min.x > this.max.x || + t.max.y < this.min.y || + t.min.y > this.max.y || + t.max.z < this.min.z || + t.min.z > this.max.z + ); + } + intersectsSphere(t) { + return ( + this.clampPoint(t.center, It), + It.distanceToSquared(t.center) <= t.radius * t.radius + ); + } + intersectsPlane(t) { + let e, n; + return ( + t.normal.x > 0 + ? ((e = t.normal.x * this.min.x), (n = t.normal.x * this.max.x)) + : ((e = t.normal.x * this.max.x), (n = t.normal.x * this.min.x)), + t.normal.y > 0 + ? ((e += t.normal.y * this.min.y), (n += t.normal.y * this.max.y)) + : ((e += t.normal.y * this.max.y), (n += t.normal.y * this.min.y)), + t.normal.z > 0 + ? ((e += t.normal.z * this.min.z), (n += t.normal.z * this.max.z)) + : ((e += t.normal.z * this.max.z), (n += t.normal.z * this.min.z)), + e <= -t.constant && n >= -t.constant + ); + } + intersectsTriangle(t) { + if (this.isEmpty()) return !1; + this.getCenter(Ut), + kt.subVectors(this.max, Ut), + Bt.subVectors(t.a, Ut), + zt.subVectors(t.b, Ut), + Ft.subVectors(t.c, Ut), + Ot.subVectors(zt, Bt), + Ht.subVectors(Ft, zt), + Gt.subVectors(Bt, Ft); + let e = [ + 0, + -Ot.z, + Ot.y, + 0, + -Ht.z, + Ht.y, + 0, + -Gt.z, + Gt.y, + Ot.z, + 0, + -Ot.x, + Ht.z, + 0, + -Ht.x, + Gt.z, + 0, + -Gt.x, + -Ot.y, + Ot.x, + 0, + -Ht.y, + Ht.x, + 0, + -Gt.y, + Gt.x, + 0, + ]; + return ( + !!jt(e, Bt, zt, Ft, kt) && + ((e = [1, 0, 0, 0, 1, 0, 0, 0, 1]), + !!jt(e, Bt, zt, Ft, kt) && + (Vt.crossVectors(Ot, Ht), + (e = [Vt.x, Vt.y, Vt.z]), + jt(e, Bt, zt, Ft, kt))) + ); + } + clampPoint(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Box3: .clampPoint() target is now required'), + (e = new Lt())), + e.copy(t).clamp(this.min, this.max) + ); + } + distanceToPoint(t) { + return It.copy(t).clamp(this.min, this.max).sub(t).length(); + } + getBoundingSphere(t) { + return ( + void 0 === t && + console.error( + 'THREE.Box3: .getBoundingSphere() target is now required' + ), + this.getCenter(t.center), + (t.radius = 0.5 * this.getSize(It).length()), + t + ); + } + intersect(t) { + return ( + this.min.max(t.min), + this.max.min(t.max), + this.isEmpty() && this.makeEmpty(), + this + ); + } + union(t) { + return this.min.min(t.min), this.max.max(t.max), this; + } + applyMatrix4(t) { + return ( + this.isEmpty() || + (Dt[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(t), + Dt[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(t), + Dt[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(t), + Dt[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(t), + Dt[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(t), + Dt[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(t), + Dt[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(t), + Dt[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(t), + this.setFromPoints(Dt)), + this + ); + } + translate(t) { + return this.min.add(t), this.max.add(t), this; + } + equals(t) { + return t.min.equals(this.min) && t.max.equals(this.max); + } + } + Pt.prototype.isBox3 = !0; + const Dt = [ + new Lt(), + new Lt(), + new Lt(), + new Lt(), + new Lt(), + new Lt(), + new Lt(), + new Lt(), + ], + It = new Lt(), + Nt = new Pt(), + Bt = new Lt(), + zt = new Lt(), + Ft = new Lt(), + Ot = new Lt(), + Ht = new Lt(), + Gt = new Lt(), + Ut = new Lt(), + kt = new Lt(), + Vt = new Lt(), + Wt = new Lt(); + function jt(t, e, n, i, r) { + for (let s = 0, a = t.length - 3; s <= a; s += 3) { + Wt.fromArray(t, s); + const a = + r.x * Math.abs(Wt.x) + r.y * Math.abs(Wt.y) + r.z * Math.abs(Wt.z), + o = e.dot(Wt), + l = n.dot(Wt), + c = i.dot(Wt); + if (Math.max(-Math.max(o, l, c), Math.min(o, l, c)) > a) return !1; + } + return !0; + } + const qt = new Pt(), + Xt = new Lt(), + Yt = new Lt(), + Zt = new Lt(); + class Jt { + constructor(t = new Lt(), e = -1) { + (this.center = t), (this.radius = e); + } + set(t, e) { + return this.center.copy(t), (this.radius = e), this; + } + setFromPoints(t, e) { + const n = this.center; + void 0 !== e ? n.copy(e) : qt.setFromPoints(t).getCenter(n); + let i = 0; + for (let e = 0, r = t.length; e < r; e++) + i = Math.max(i, n.distanceToSquared(t[e])); + return (this.radius = Math.sqrt(i)), this; + } + copy(t) { + return this.center.copy(t.center), (this.radius = t.radius), this; + } + isEmpty() { + return this.radius < 0; + } + makeEmpty() { + return this.center.set(0, 0, 0), (this.radius = -1), this; + } + containsPoint(t) { + return t.distanceToSquared(this.center) <= this.radius * this.radius; + } + distanceToPoint(t) { + return t.distanceTo(this.center) - this.radius; + } + intersectsSphere(t) { + const e = this.radius + t.radius; + return t.center.distanceToSquared(this.center) <= e * e; + } + intersectsBox(t) { + return t.intersectsSphere(this); + } + intersectsPlane(t) { + return Math.abs(t.distanceToPoint(this.center)) <= this.radius; + } + clampPoint(t, e) { + const n = this.center.distanceToSquared(t); + return ( + void 0 === e && + (console.warn('THREE.Sphere: .clampPoint() target is now required'), + (e = new Lt())), + e.copy(t), + n > this.radius * this.radius && + (e.sub(this.center).normalize(), + e.multiplyScalar(this.radius).add(this.center)), + e + ); + } + getBoundingBox(t) { + return ( + void 0 === t && + (console.warn( + 'THREE.Sphere: .getBoundingBox() target is now required' + ), + (t = new Pt())), + this.isEmpty() + ? (t.makeEmpty(), t) + : (t.set(this.center, this.center), t.expandByScalar(this.radius), t) + ); + } + applyMatrix4(t) { + return ( + this.center.applyMatrix4(t), + (this.radius = this.radius * t.getMaxScaleOnAxis()), + this + ); + } + translate(t) { + return this.center.add(t), this; + } + expandByPoint(t) { + Zt.subVectors(t, this.center); + const e = Zt.lengthSq(); + if (e > this.radius * this.radius) { + const t = Math.sqrt(e), + n = 0.5 * (t - this.radius); + this.center.add(Zt.multiplyScalar(n / t)), (this.radius += n); + } + return this; + } + union(t) { + return ( + Yt.subVectors(t.center, this.center) + .normalize() + .multiplyScalar(t.radius), + this.expandByPoint(Xt.copy(t.center).add(Yt)), + this.expandByPoint(Xt.copy(t.center).sub(Yt)), + this + ); + } + equals(t) { + return t.center.equals(this.center) && t.radius === this.radius; + } + clone() { + return new this.constructor().copy(this); + } + } + const Qt = new Lt(), + Kt = new Lt(), + $t = new Lt(), + te = new Lt(), + ee = new Lt(), + ne = new Lt(), + ie = new Lt(); + class re { + constructor(t = new Lt(), e = new Lt(0, 0, -1)) { + (this.origin = t), (this.direction = e); + } + set(t, e) { + return this.origin.copy(t), this.direction.copy(e), this; + } + copy(t) { + return this.origin.copy(t.origin), this.direction.copy(t.direction), this; + } + at(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Ray: .at() target is now required'), + (e = new Lt())), + e.copy(this.direction).multiplyScalar(t).add(this.origin) + ); + } + lookAt(t) { + return this.direction.copy(t).sub(this.origin).normalize(), this; + } + recast(t) { + return this.origin.copy(this.at(t, Qt)), this; + } + closestPointToPoint(t, e) { + void 0 === e && + (console.warn( + 'THREE.Ray: .closestPointToPoint() target is now required' + ), + (e = new Lt())), + e.subVectors(t, this.origin); + const n = e.dot(this.direction); + return n < 0 + ? e.copy(this.origin) + : e.copy(this.direction).multiplyScalar(n).add(this.origin); + } + distanceToPoint(t) { + return Math.sqrt(this.distanceSqToPoint(t)); + } + distanceSqToPoint(t) { + const e = Qt.subVectors(t, this.origin).dot(this.direction); + return e < 0 + ? this.origin.distanceToSquared(t) + : (Qt.copy(this.direction).multiplyScalar(e).add(this.origin), + Qt.distanceToSquared(t)); + } + distanceSqToSegment(t, e, n, i) { + Kt.copy(t).add(e).multiplyScalar(0.5), + $t.copy(e).sub(t).normalize(), + te.copy(this.origin).sub(Kt); + const r = 0.5 * t.distanceTo(e), + s = -this.direction.dot($t), + a = te.dot(this.direction), + o = -te.dot($t), + l = te.lengthSq(), + c = Math.abs(1 - s * s); + let h, u, d, p; + if (c > 0) + if (((h = s * o - a), (u = s * a - o), (p = r * c), h >= 0)) + if (u >= -p) + if (u <= p) { + const t = 1 / c; + (h *= t), + (u *= t), + (d = h * (h + s * u + 2 * a) + u * (s * h + u + 2 * o) + l); + } else + (u = r), + (h = Math.max(0, -(s * u + a))), + (d = -h * h + u * (u + 2 * o) + l); + else + (u = -r), + (h = Math.max(0, -(s * u + a))), + (d = -h * h + u * (u + 2 * o) + l); + else + u <= -p + ? ((h = Math.max(0, -(-s * r + a))), + (u = h > 0 ? -r : Math.min(Math.max(-r, -o), r)), + (d = -h * h + u * (u + 2 * o) + l)) + : u <= p + ? ((h = 0), + (u = Math.min(Math.max(-r, -o), r)), + (d = u * (u + 2 * o) + l)) + : ((h = Math.max(0, -(s * r + a))), + (u = h > 0 ? r : Math.min(Math.max(-r, -o), r)), + (d = -h * h + u * (u + 2 * o) + l)); + else + (u = s > 0 ? -r : r), + (h = Math.max(0, -(s * u + a))), + (d = -h * h + u * (u + 2 * o) + l); + return ( + n && n.copy(this.direction).multiplyScalar(h).add(this.origin), + i && i.copy($t).multiplyScalar(u).add(Kt), + d + ); + } + intersectSphere(t, e) { + Qt.subVectors(t.center, this.origin); + const n = Qt.dot(this.direction), + i = Qt.dot(Qt) - n * n, + r = t.radius * t.radius; + if (i > r) return null; + const s = Math.sqrt(r - i), + a = n - s, + o = n + s; + return a < 0 && o < 0 ? null : a < 0 ? this.at(o, e) : this.at(a, e); + } + intersectsSphere(t) { + return this.distanceSqToPoint(t.center) <= t.radius * t.radius; + } + distanceToPlane(t) { + const e = t.normal.dot(this.direction); + if (0 === e) return 0 === t.distanceToPoint(this.origin) ? 0 : null; + const n = -(this.origin.dot(t.normal) + t.constant) / e; + return n >= 0 ? n : null; + } + intersectPlane(t, e) { + const n = this.distanceToPlane(t); + return null === n ? null : this.at(n, e); + } + intersectsPlane(t) { + const e = t.distanceToPoint(this.origin); + if (0 === e) return !0; + return t.normal.dot(this.direction) * e < 0; + } + intersectBox(t, e) { + let n, i, r, s, a, o; + const l = 1 / this.direction.x, + c = 1 / this.direction.y, + h = 1 / this.direction.z, + u = this.origin; + return ( + l >= 0 + ? ((n = (t.min.x - u.x) * l), (i = (t.max.x - u.x) * l)) + : ((n = (t.max.x - u.x) * l), (i = (t.min.x - u.x) * l)), + c >= 0 + ? ((r = (t.min.y - u.y) * c), (s = (t.max.y - u.y) * c)) + : ((r = (t.max.y - u.y) * c), (s = (t.min.y - u.y) * c)), + n > s || r > i + ? null + : ((r > n || n != n) && (n = r), + (s < i || i != i) && (i = s), + h >= 0 + ? ((a = (t.min.z - u.z) * h), (o = (t.max.z - u.z) * h)) + : ((a = (t.max.z - u.z) * h), (o = (t.min.z - u.z) * h)), + n > o || a > i + ? null + : ((a > n || n != n) && (n = a), + (o < i || i != i) && (i = o), + i < 0 ? null : this.at(n >= 0 ? n : i, e))) + ); + } + intersectsBox(t) { + return null !== this.intersectBox(t, Qt); + } + intersectTriangle(t, e, n, i, r) { + ee.subVectors(e, t), ne.subVectors(n, t), ie.crossVectors(ee, ne); + let s, + a = this.direction.dot(ie); + if (a > 0) { + if (i) return null; + s = 1; + } else { + if (!(a < 0)) return null; + (s = -1), (a = -a); + } + te.subVectors(this.origin, t); + const o = s * this.direction.dot(ne.crossVectors(te, ne)); + if (o < 0) return null; + const l = s * this.direction.dot(ee.cross(te)); + if (l < 0) return null; + if (o + l > a) return null; + const c = -s * te.dot(ie); + return c < 0 ? null : this.at(c / a, r); + } + applyMatrix4(t) { + return ( + this.origin.applyMatrix4(t), this.direction.transformDirection(t), this + ); + } + equals(t) { + return t.origin.equals(this.origin) && t.direction.equals(this.direction); + } + clone() { + return new this.constructor().copy(this); + } + } + class se { + constructor() { + (this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + arguments.length > 0 && + console.error( + 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' + ); + } + set(t, e, n, i, r, s, a, o, l, c, h, u, d, p, m, f) { + const g = this.elements; + return ( + (g[0] = t), + (g[4] = e), + (g[8] = n), + (g[12] = i), + (g[1] = r), + (g[5] = s), + (g[9] = a), + (g[13] = o), + (g[2] = l), + (g[6] = c), + (g[10] = h), + (g[14] = u), + (g[3] = d), + (g[7] = p), + (g[11] = m), + (g[15] = f), + this + ); + } + identity() { + return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this; + } + clone() { + return new se().fromArray(this.elements); + } + copy(t) { + const e = this.elements, + n = t.elements; + return ( + (e[0] = n[0]), + (e[1] = n[1]), + (e[2] = n[2]), + (e[3] = n[3]), + (e[4] = n[4]), + (e[5] = n[5]), + (e[6] = n[6]), + (e[7] = n[7]), + (e[8] = n[8]), + (e[9] = n[9]), + (e[10] = n[10]), + (e[11] = n[11]), + (e[12] = n[12]), + (e[13] = n[13]), + (e[14] = n[14]), + (e[15] = n[15]), + this + ); + } + copyPosition(t) { + const e = this.elements, + n = t.elements; + return (e[12] = n[12]), (e[13] = n[13]), (e[14] = n[14]), this; + } + setFromMatrix3(t) { + const e = t.elements; + return ( + this.set( + e[0], + e[3], + e[6], + 0, + e[1], + e[4], + e[7], + 0, + e[2], + e[5], + e[8], + 0, + 0, + 0, + 0, + 1 + ), + this + ); + } + extractBasis(t, e, n) { + return ( + t.setFromMatrixColumn(this, 0), + e.setFromMatrixColumn(this, 1), + n.setFromMatrixColumn(this, 2), + this + ); + } + makeBasis(t, e, n) { + return ( + this.set( + t.x, + e.x, + n.x, + 0, + t.y, + e.y, + n.y, + 0, + t.z, + e.z, + n.z, + 0, + 0, + 0, + 0, + 1 + ), + this + ); + } + extractRotation(t) { + const e = this.elements, + n = t.elements, + i = 1 / ae.setFromMatrixColumn(t, 0).length(), + r = 1 / ae.setFromMatrixColumn(t, 1).length(), + s = 1 / ae.setFromMatrixColumn(t, 2).length(); + return ( + (e[0] = n[0] * i), + (e[1] = n[1] * i), + (e[2] = n[2] * i), + (e[3] = 0), + (e[4] = n[4] * r), + (e[5] = n[5] * r), + (e[6] = n[6] * r), + (e[7] = 0), + (e[8] = n[8] * s), + (e[9] = n[9] * s), + (e[10] = n[10] * s), + (e[11] = 0), + (e[12] = 0), + (e[13] = 0), + (e[14] = 0), + (e[15] = 1), + this + ); + } + makeRotationFromEuler(t) { + (t && t.isEuler) || + console.error( + 'THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' + ); + const e = this.elements, + n = t.x, + i = t.y, + r = t.z, + s = Math.cos(n), + a = Math.sin(n), + o = Math.cos(i), + l = Math.sin(i), + c = Math.cos(r), + h = Math.sin(r); + if ('XYZ' === t.order) { + const t = s * c, + n = s * h, + i = a * c, + r = a * h; + (e[0] = o * c), + (e[4] = -o * h), + (e[8] = l), + (e[1] = n + i * l), + (e[5] = t - r * l), + (e[9] = -a * o), + (e[2] = r - t * l), + (e[6] = i + n * l), + (e[10] = s * o); + } else if ('YXZ' === t.order) { + const t = o * c, + n = o * h, + i = l * c, + r = l * h; + (e[0] = t + r * a), + (e[4] = i * a - n), + (e[8] = s * l), + (e[1] = s * h), + (e[5] = s * c), + (e[9] = -a), + (e[2] = n * a - i), + (e[6] = r + t * a), + (e[10] = s * o); + } else if ('ZXY' === t.order) { + const t = o * c, + n = o * h, + i = l * c, + r = l * h; + (e[0] = t - r * a), + (e[4] = -s * h), + (e[8] = i + n * a), + (e[1] = n + i * a), + (e[5] = s * c), + (e[9] = r - t * a), + (e[2] = -s * l), + (e[6] = a), + (e[10] = s * o); + } else if ('ZYX' === t.order) { + const t = s * c, + n = s * h, + i = a * c, + r = a * h; + (e[0] = o * c), + (e[4] = i * l - n), + (e[8] = t * l + r), + (e[1] = o * h), + (e[5] = r * l + t), + (e[9] = n * l - i), + (e[2] = -l), + (e[6] = a * o), + (e[10] = s * o); + } else if ('YZX' === t.order) { + const t = s * o, + n = s * l, + i = a * o, + r = a * l; + (e[0] = o * c), + (e[4] = r - t * h), + (e[8] = i * h + n), + (e[1] = h), + (e[5] = s * c), + (e[9] = -a * c), + (e[2] = -l * c), + (e[6] = n * h + i), + (e[10] = t - r * h); + } else if ('XZY' === t.order) { + const t = s * o, + n = s * l, + i = a * o, + r = a * l; + (e[0] = o * c), + (e[4] = -h), + (e[8] = l * c), + (e[1] = t * h + r), + (e[5] = s * c), + (e[9] = n * h - i), + (e[2] = i * h - n), + (e[6] = a * c), + (e[10] = r * h + t); + } + return ( + (e[3] = 0), + (e[7] = 0), + (e[11] = 0), + (e[12] = 0), + (e[13] = 0), + (e[14] = 0), + (e[15] = 1), + this + ); + } + makeRotationFromQuaternion(t) { + return this.compose(le, t, ce); + } + lookAt(t, e, n) { + const i = this.elements; + return ( + de.subVectors(t, e), + 0 === de.lengthSq() && (de.z = 1), + de.normalize(), + he.crossVectors(n, de), + 0 === he.lengthSq() && + (1 === Math.abs(n.z) ? (de.x += 1e-4) : (de.z += 1e-4), + de.normalize(), + he.crossVectors(n, de)), + he.normalize(), + ue.crossVectors(de, he), + (i[0] = he.x), + (i[4] = ue.x), + (i[8] = de.x), + (i[1] = he.y), + (i[5] = ue.y), + (i[9] = de.y), + (i[2] = he.z), + (i[6] = ue.z), + (i[10] = de.z), + this + ); + } + multiply(t, e) { + return void 0 !== e + ? (console.warn( + 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' + ), + this.multiplyMatrices(t, e)) + : this.multiplyMatrices(this, t); + } + premultiply(t) { + return this.multiplyMatrices(t, this); + } + multiplyMatrices(t, e) { + const n = t.elements, + i = e.elements, + r = this.elements, + s = n[0], + a = n[4], + o = n[8], + l = n[12], + c = n[1], + h = n[5], + u = n[9], + d = n[13], + p = n[2], + m = n[6], + f = n[10], + g = n[14], + v = n[3], + y = n[7], + x = n[11], + _ = n[15], + w = i[0], + b = i[4], + M = i[8], + S = i[12], + T = i[1], + E = i[5], + A = i[9], + L = i[13], + R = i[2], + C = i[6], + P = i[10], + D = i[14], + I = i[3], + N = i[7], + B = i[11], + z = i[15]; + return ( + (r[0] = s * w + a * T + o * R + l * I), + (r[4] = s * b + a * E + o * C + l * N), + (r[8] = s * M + a * A + o * P + l * B), + (r[12] = s * S + a * L + o * D + l * z), + (r[1] = c * w + h * T + u * R + d * I), + (r[5] = c * b + h * E + u * C + d * N), + (r[9] = c * M + h * A + u * P + d * B), + (r[13] = c * S + h * L + u * D + d * z), + (r[2] = p * w + m * T + f * R + g * I), + (r[6] = p * b + m * E + f * C + g * N), + (r[10] = p * M + m * A + f * P + g * B), + (r[14] = p * S + m * L + f * D + g * z), + (r[3] = v * w + y * T + x * R + _ * I), + (r[7] = v * b + y * E + x * C + _ * N), + (r[11] = v * M + y * A + x * P + _ * B), + (r[15] = v * S + y * L + x * D + _ * z), + this + ); + } + multiplyScalar(t) { + const e = this.elements; + return ( + (e[0] *= t), + (e[4] *= t), + (e[8] *= t), + (e[12] *= t), + (e[1] *= t), + (e[5] *= t), + (e[9] *= t), + (e[13] *= t), + (e[2] *= t), + (e[6] *= t), + (e[10] *= t), + (e[14] *= t), + (e[3] *= t), + (e[7] *= t), + (e[11] *= t), + (e[15] *= t), + this + ); + } + determinant() { + const t = this.elements, + e = t[0], + n = t[4], + i = t[8], + r = t[12], + s = t[1], + a = t[5], + o = t[9], + l = t[13], + c = t[2], + h = t[6], + u = t[10], + d = t[14]; + return ( + t[3] * + (+r * o * h - + i * l * h - + r * a * u + + n * l * u + + i * a * d - + n * o * d) + + t[7] * + (+e * o * d - + e * l * u + + r * s * u - + i * s * d + + i * l * c - + r * o * c) + + t[11] * + (+e * l * h - + e * a * d - + r * s * h + + n * s * d + + r * a * c - + n * l * c) + + t[15] * + (-i * a * c - + e * o * h + + e * a * u + + i * s * h - + n * s * u + + n * o * c) + ); + } + transpose() { + const t = this.elements; + let e; + return ( + (e = t[1]), + (t[1] = t[4]), + (t[4] = e), + (e = t[2]), + (t[2] = t[8]), + (t[8] = e), + (e = t[6]), + (t[6] = t[9]), + (t[9] = e), + (e = t[3]), + (t[3] = t[12]), + (t[12] = e), + (e = t[7]), + (t[7] = t[13]), + (t[13] = e), + (e = t[11]), + (t[11] = t[14]), + (t[14] = e), + this + ); + } + setPosition(t, e, n) { + const i = this.elements; + return ( + t.isVector3 + ? ((i[12] = t.x), (i[13] = t.y), (i[14] = t.z)) + : ((i[12] = t), (i[13] = e), (i[14] = n)), + this + ); + } + invert() { + const t = this.elements, + e = t[0], + n = t[1], + i = t[2], + r = t[3], + s = t[4], + a = t[5], + o = t[6], + l = t[7], + c = t[8], + h = t[9], + u = t[10], + d = t[11], + p = t[12], + m = t[13], + f = t[14], + g = t[15], + v = + h * f * l - m * u * l + m * o * d - a * f * d - h * o * g + a * u * g, + y = + p * u * l - c * f * l - p * o * d + s * f * d + c * o * g - s * u * g, + x = + c * m * l - p * h * l + p * a * d - s * m * d - c * a * g + s * h * g, + _ = + p * h * o - c * m * o - p * a * u + s * m * u + c * a * f - s * h * f, + w = e * v + n * y + i * x + r * _; + if (0 === w) + return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + const b = 1 / w; + return ( + (t[0] = v * b), + (t[1] = + (m * u * r - + h * f * r - + m * i * d + + n * f * d + + h * i * g - + n * u * g) * + b), + (t[2] = + (a * f * r - + m * o * r + + m * i * l - + n * f * l - + a * i * g + + n * o * g) * + b), + (t[3] = + (h * o * r - + a * u * r - + h * i * l + + n * u * l + + a * i * d - + n * o * d) * + b), + (t[4] = y * b), + (t[5] = + (c * f * r - + p * u * r + + p * i * d - + e * f * d - + c * i * g + + e * u * g) * + b), + (t[6] = + (p * o * r - + s * f * r - + p * i * l + + e * f * l + + s * i * g - + e * o * g) * + b), + (t[7] = + (s * u * r - + c * o * r + + c * i * l - + e * u * l - + s * i * d + + e * o * d) * + b), + (t[8] = x * b), + (t[9] = + (p * h * r - + c * m * r - + p * n * d + + e * m * d + + c * n * g - + e * h * g) * + b), + (t[10] = + (s * m * r - + p * a * r + + p * n * l - + e * m * l - + s * n * g + + e * a * g) * + b), + (t[11] = + (c * a * r - + s * h * r - + c * n * l + + e * h * l + + s * n * d - + e * a * d) * + b), + (t[12] = _ * b), + (t[13] = + (c * m * i - + p * h * i + + p * n * u - + e * m * u - + c * n * f + + e * h * f) * + b), + (t[14] = + (p * a * i - + s * m * i - + p * n * o + + e * m * o + + s * n * f - + e * a * f) * + b), + (t[15] = + (s * h * i - + c * a * i + + c * n * o - + e * h * o - + s * n * u + + e * a * u) * + b), + this + ); + } + scale(t) { + const e = this.elements, + n = t.x, + i = t.y, + r = t.z; + return ( + (e[0] *= n), + (e[4] *= i), + (e[8] *= r), + (e[1] *= n), + (e[5] *= i), + (e[9] *= r), + (e[2] *= n), + (e[6] *= i), + (e[10] *= r), + (e[3] *= n), + (e[7] *= i), + (e[11] *= r), + this + ); + } + getMaxScaleOnAxis() { + const t = this.elements, + e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2], + n = t[4] * t[4] + t[5] * t[5] + t[6] * t[6], + i = t[8] * t[8] + t[9] * t[9] + t[10] * t[10]; + return Math.sqrt(Math.max(e, n, i)); + } + makeTranslation(t, e, n) { + return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, n, 0, 0, 0, 1), this; + } + makeRotationX(t) { + const e = Math.cos(t), + n = Math.sin(t); + return this.set(1, 0, 0, 0, 0, e, -n, 0, 0, n, e, 0, 0, 0, 0, 1), this; + } + makeRotationY(t) { + const e = Math.cos(t), + n = Math.sin(t); + return this.set(e, 0, n, 0, 0, 1, 0, 0, -n, 0, e, 0, 0, 0, 0, 1), this; + } + makeRotationZ(t) { + const e = Math.cos(t), + n = Math.sin(t); + return this.set(e, -n, 0, 0, n, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this; + } + makeRotationAxis(t, e) { + const n = Math.cos(e), + i = Math.sin(e), + r = 1 - n, + s = t.x, + a = t.y, + o = t.z, + l = r * s, + c = r * a; + return ( + this.set( + l * s + n, + l * a - i * o, + l * o + i * a, + 0, + l * a + i * o, + c * a + n, + c * o - i * s, + 0, + l * o - i * a, + c * o + i * s, + r * o * o + n, + 0, + 0, + 0, + 0, + 1 + ), + this + ); + } + makeScale(t, e, n) { + return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, n, 0, 0, 0, 0, 1), this; + } + makeShear(t, e, n) { + return this.set(1, e, n, 0, t, 1, n, 0, t, e, 1, 0, 0, 0, 0, 1), this; + } + compose(t, e, n) { + const i = this.elements, + r = e._x, + s = e._y, + a = e._z, + o = e._w, + l = r + r, + c = s + s, + h = a + a, + u = r * l, + d = r * c, + p = r * h, + m = s * c, + f = s * h, + g = a * h, + v = o * l, + y = o * c, + x = o * h, + _ = n.x, + w = n.y, + b = n.z; + return ( + (i[0] = (1 - (m + g)) * _), + (i[1] = (d + x) * _), + (i[2] = (p - y) * _), + (i[3] = 0), + (i[4] = (d - x) * w), + (i[5] = (1 - (u + g)) * w), + (i[6] = (f + v) * w), + (i[7] = 0), + (i[8] = (p + y) * b), + (i[9] = (f - v) * b), + (i[10] = (1 - (u + m)) * b), + (i[11] = 0), + (i[12] = t.x), + (i[13] = t.y), + (i[14] = t.z), + (i[15] = 1), + this + ); + } + decompose(t, e, n) { + const i = this.elements; + let r = ae.set(i[0], i[1], i[2]).length(); + const s = ae.set(i[4], i[5], i[6]).length(), + a = ae.set(i[8], i[9], i[10]).length(); + this.determinant() < 0 && (r = -r), + (t.x = i[12]), + (t.y = i[13]), + (t.z = i[14]), + oe.copy(this); + const o = 1 / r, + l = 1 / s, + c = 1 / a; + return ( + (oe.elements[0] *= o), + (oe.elements[1] *= o), + (oe.elements[2] *= o), + (oe.elements[4] *= l), + (oe.elements[5] *= l), + (oe.elements[6] *= l), + (oe.elements[8] *= c), + (oe.elements[9] *= c), + (oe.elements[10] *= c), + e.setFromRotationMatrix(oe), + (n.x = r), + (n.y = s), + (n.z = a), + this + ); + } + makePerspective(t, e, n, i, r, s) { + void 0 === s && + console.warn( + 'THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.' + ); + const a = this.elements, + o = (2 * r) / (e - t), + l = (2 * r) / (n - i), + c = (e + t) / (e - t), + h = (n + i) / (n - i), + u = -(s + r) / (s - r), + d = (-2 * s * r) / (s - r); + return ( + (a[0] = o), + (a[4] = 0), + (a[8] = c), + (a[12] = 0), + (a[1] = 0), + (a[5] = l), + (a[9] = h), + (a[13] = 0), + (a[2] = 0), + (a[6] = 0), + (a[10] = u), + (a[14] = d), + (a[3] = 0), + (a[7] = 0), + (a[11] = -1), + (a[15] = 0), + this + ); + } + makeOrthographic(t, e, n, i, r, s) { + const a = this.elements, + o = 1 / (e - t), + l = 1 / (n - i), + c = 1 / (s - r), + h = (e + t) * o, + u = (n + i) * l, + d = (s + r) * c; + return ( + (a[0] = 2 * o), + (a[4] = 0), + (a[8] = 0), + (a[12] = -h), + (a[1] = 0), + (a[5] = 2 * l), + (a[9] = 0), + (a[13] = -u), + (a[2] = 0), + (a[6] = 0), + (a[10] = -2 * c), + (a[14] = -d), + (a[3] = 0), + (a[7] = 0), + (a[11] = 0), + (a[15] = 1), + this + ); + } + equals(t) { + const e = this.elements, + n = t.elements; + for (let t = 0; t < 16; t++) if (e[t] !== n[t]) return !1; + return !0; + } + fromArray(t, e = 0) { + for (let n = 0; n < 16; n++) this.elements[n] = t[n + e]; + return this; + } + toArray(t = [], e = 0) { + const n = this.elements; + return ( + (t[e] = n[0]), + (t[e + 1] = n[1]), + (t[e + 2] = n[2]), + (t[e + 3] = n[3]), + (t[e + 4] = n[4]), + (t[e + 5] = n[5]), + (t[e + 6] = n[6]), + (t[e + 7] = n[7]), + (t[e + 8] = n[8]), + (t[e + 9] = n[9]), + (t[e + 10] = n[10]), + (t[e + 11] = n[11]), + (t[e + 12] = n[12]), + (t[e + 13] = n[13]), + (t[e + 14] = n[14]), + (t[e + 15] = n[15]), + t + ); + } + } + se.prototype.isMatrix4 = !0; + const ae = new Lt(), + oe = new se(), + le = new Lt(0, 0, 0), + ce = new Lt(1, 1, 1), + he = new Lt(), + ue = new Lt(), + de = new Lt(), + pe = new se(), + me = new At(); + class fe { + constructor(t = 0, e = 0, n = 0, i = fe.DefaultOrder) { + (this._x = t), (this._y = e), (this._z = n), (this._order = i); + } + get x() { + return this._x; + } + set x(t) { + (this._x = t), this._onChangeCallback(); + } + get y() { + return this._y; + } + set y(t) { + (this._y = t), this._onChangeCallback(); + } + get z() { + return this._z; + } + set z(t) { + (this._z = t), this._onChangeCallback(); + } + get order() { + return this._order; + } + set order(t) { + (this._order = t), this._onChangeCallback(); + } + set(t, e, n, i) { + return ( + (this._x = t), + (this._y = e), + (this._z = n), + (this._order = i || this._order), + this._onChangeCallback(), + this + ); + } + clone() { + return new this.constructor(this._x, this._y, this._z, this._order); + } + copy(t) { + return ( + (this._x = t._x), + (this._y = t._y), + (this._z = t._z), + (this._order = t._order), + this._onChangeCallback(), + this + ); + } + setFromRotationMatrix(t, e, n) { + const i = t.elements, + r = i[0], + s = i[4], + a = i[8], + o = i[1], + l = i[5], + c = i[9], + h = i[2], + u = i[6], + d = i[10]; + switch ((e = e || this._order)) { + case 'XYZ': + (this._y = Math.asin(ht(a, -1, 1))), + Math.abs(a) < 0.9999999 + ? ((this._x = Math.atan2(-c, d)), (this._z = Math.atan2(-s, r))) + : ((this._x = Math.atan2(u, l)), (this._z = 0)); + break; + case 'YXZ': + (this._x = Math.asin(-ht(c, -1, 1))), + Math.abs(c) < 0.9999999 + ? ((this._y = Math.atan2(a, d)), (this._z = Math.atan2(o, l))) + : ((this._y = Math.atan2(-h, r)), (this._z = 0)); + break; + case 'ZXY': + (this._x = Math.asin(ht(u, -1, 1))), + Math.abs(u) < 0.9999999 + ? ((this._y = Math.atan2(-h, d)), (this._z = Math.atan2(-s, l))) + : ((this._y = 0), (this._z = Math.atan2(o, r))); + break; + case 'ZYX': + (this._y = Math.asin(-ht(h, -1, 1))), + Math.abs(h) < 0.9999999 + ? ((this._x = Math.atan2(u, d)), (this._z = Math.atan2(o, r))) + : ((this._x = 0), (this._z = Math.atan2(-s, l))); + break; + case 'YZX': + (this._z = Math.asin(ht(o, -1, 1))), + Math.abs(o) < 0.9999999 + ? ((this._x = Math.atan2(-c, l)), (this._y = Math.atan2(-h, r))) + : ((this._x = 0), (this._y = Math.atan2(a, d))); + break; + case 'XZY': + (this._z = Math.asin(-ht(s, -1, 1))), + Math.abs(s) < 0.9999999 + ? ((this._x = Math.atan2(u, l)), (this._y = Math.atan2(a, r))) + : ((this._x = Math.atan2(-c, d)), (this._y = 0)); + break; + default: + console.warn( + 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + + e + ); + } + return (this._order = e), !1 !== n && this._onChangeCallback(), this; + } + setFromQuaternion(t, e, n) { + return ( + pe.makeRotationFromQuaternion(t), this.setFromRotationMatrix(pe, e, n) + ); + } + setFromVector3(t, e) { + return this.set(t.x, t.y, t.z, e || this._order); + } + reorder(t) { + return me.setFromEuler(this), this.setFromQuaternion(me, t); + } + equals(t) { + return ( + t._x === this._x && + t._y === this._y && + t._z === this._z && + t._order === this._order + ); + } + fromArray(t) { + return ( + (this._x = t[0]), + (this._y = t[1]), + (this._z = t[2]), + void 0 !== t[3] && (this._order = t[3]), + this._onChangeCallback(), + this + ); + } + toArray(t = [], e = 0) { + return ( + (t[e] = this._x), + (t[e + 1] = this._y), + (t[e + 2] = this._z), + (t[e + 3] = this._order), + t + ); + } + toVector3(t) { + return t + ? t.set(this._x, this._y, this._z) + : new Lt(this._x, this._y, this._z); + } + _onChange(t) { + return (this._onChangeCallback = t), this; + } + _onChangeCallback() {} + } + (fe.prototype.isEuler = !0), + (fe.DefaultOrder = 'XYZ'), + (fe.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']); + class ge { + constructor() { + this.mask = 1; + } + set(t) { + this.mask = (1 << t) | 0; + } + enable(t) { + this.mask |= (1 << t) | 0; + } + enableAll() { + this.mask = -1; + } + toggle(t) { + this.mask ^= (1 << t) | 0; + } + disable(t) { + this.mask &= ~((1 << t) | 0); + } + disableAll() { + this.mask = 0; + } + test(t) { + return 0 != (this.mask & t.mask); + } + } + let ve = 0; + const ye = new Lt(), + xe = new At(), + _e = new se(), + we = new Lt(), + be = new Lt(), + Me = new Lt(), + Se = new At(), + Te = new Lt(1, 0, 0), + Ee = new Lt(0, 1, 0), + Ae = new Lt(0, 0, 1), + Le = { type: 'added' }, + Re = { type: 'removed' }; + class Ce extends rt { + constructor() { + super(), + Object.defineProperty(this, 'id', { value: ve++ }), + (this.uuid = ct()), + (this.name = ''), + (this.type = 'Object3D'), + (this.parent = null), + (this.children = []), + (this.up = Ce.DefaultUp.clone()); + const t = new Lt(), + e = new fe(), + n = new At(), + i = new Lt(1, 1, 1); + e._onChange(function () { + n.setFromEuler(e, !1); + }), + n._onChange(function () { + e.setFromQuaternion(n, void 0, !1); + }), + Object.defineProperties(this, { + position: { configurable: !0, enumerable: !0, value: t }, + rotation: { configurable: !0, enumerable: !0, value: e }, + quaternion: { configurable: !0, enumerable: !0, value: n }, + scale: { configurable: !0, enumerable: !0, value: i }, + modelViewMatrix: { value: new se() }, + normalMatrix: { value: new yt() }, + }), + (this.matrix = new se()), + (this.matrixWorld = new se()), + (this.matrixAutoUpdate = Ce.DefaultMatrixAutoUpdate), + (this.matrixWorldNeedsUpdate = !1), + (this.layers = new ge()), + (this.visible = !0), + (this.castShadow = !1), + (this.receiveShadow = !1), + (this.frustumCulled = !0), + (this.renderOrder = 0), + (this.animations = []), + (this.userData = {}); + } + onBeforeRender() {} + onAfterRender() {} + applyMatrix4(t) { + this.matrixAutoUpdate && this.updateMatrix(), + this.matrix.premultiply(t), + this.matrix.decompose(this.position, this.quaternion, this.scale); + } + applyQuaternion(t) { + return this.quaternion.premultiply(t), this; + } + setRotationFromAxisAngle(t, e) { + this.quaternion.setFromAxisAngle(t, e); + } + setRotationFromEuler(t) { + this.quaternion.setFromEuler(t, !0); + } + setRotationFromMatrix(t) { + this.quaternion.setFromRotationMatrix(t); + } + setRotationFromQuaternion(t) { + this.quaternion.copy(t); + } + rotateOnAxis(t, e) { + return xe.setFromAxisAngle(t, e), this.quaternion.multiply(xe), this; + } + rotateOnWorldAxis(t, e) { + return xe.setFromAxisAngle(t, e), this.quaternion.premultiply(xe), this; + } + rotateX(t) { + return this.rotateOnAxis(Te, t); + } + rotateY(t) { + return this.rotateOnAxis(Ee, t); + } + rotateZ(t) { + return this.rotateOnAxis(Ae, t); + } + translateOnAxis(t, e) { + return ( + ye.copy(t).applyQuaternion(this.quaternion), + this.position.add(ye.multiplyScalar(e)), + this + ); + } + translateX(t) { + return this.translateOnAxis(Te, t); + } + translateY(t) { + return this.translateOnAxis(Ee, t); + } + translateZ(t) { + return this.translateOnAxis(Ae, t); + } + localToWorld(t) { + return t.applyMatrix4(this.matrixWorld); + } + worldToLocal(t) { + return t.applyMatrix4(_e.copy(this.matrixWorld).invert()); + } + lookAt(t, e, n) { + t.isVector3 ? we.copy(t) : we.set(t, e, n); + const i = this.parent; + this.updateWorldMatrix(!0, !1), + be.setFromMatrixPosition(this.matrixWorld), + this.isCamera || this.isLight + ? _e.lookAt(be, we, this.up) + : _e.lookAt(we, be, this.up), + this.quaternion.setFromRotationMatrix(_e), + i && + (_e.extractRotation(i.matrixWorld), + xe.setFromRotationMatrix(_e), + this.quaternion.premultiply(xe.invert())); + } + add(t) { + if (arguments.length > 1) { + for (let t = 0; t < arguments.length; t++) this.add(arguments[t]); + return this; + } + return t === this + ? (console.error( + "THREE.Object3D.add: object can't be added as a child of itself.", + t + ), + this) + : (t && t.isObject3D + ? (null !== t.parent && t.parent.remove(t), + (t.parent = this), + this.children.push(t), + t.dispatchEvent(Le)) + : console.error( + 'THREE.Object3D.add: object not an instance of THREE.Object3D.', + t + ), + this); + } + remove(t) { + if (arguments.length > 1) { + for (let t = 0; t < arguments.length; t++) this.remove(arguments[t]); + return this; + } + const e = this.children.indexOf(t); + return ( + -1 !== e && + ((t.parent = null), this.children.splice(e, 1), t.dispatchEvent(Re)), + this + ); + } + clear() { + for (let t = 0; t < this.children.length; t++) { + const e = this.children[t]; + (e.parent = null), e.dispatchEvent(Re); + } + return (this.children.length = 0), this; + } + attach(t) { + return ( + this.updateWorldMatrix(!0, !1), + _e.copy(this.matrixWorld).invert(), + null !== t.parent && + (t.parent.updateWorldMatrix(!0, !1), + _e.multiply(t.parent.matrixWorld)), + t.applyMatrix4(_e), + this.add(t), + t.updateWorldMatrix(!1, !0), + this + ); + } + getObjectById(t) { + return this.getObjectByProperty('id', t); + } + getObjectByName(t) { + return this.getObjectByProperty('name', t); + } + getObjectByProperty(t, e) { + if (this[t] === e) return this; + for (let n = 0, i = this.children.length; n < i; n++) { + const i = this.children[n].getObjectByProperty(t, e); + if (void 0 !== i) return i; + } + } + getWorldPosition(t) { + return ( + void 0 === t && + (console.warn( + 'THREE.Object3D: .getWorldPosition() target is now required' + ), + (t = new Lt())), + this.updateWorldMatrix(!0, !1), + t.setFromMatrixPosition(this.matrixWorld) + ); + } + getWorldQuaternion(t) { + return ( + void 0 === t && + (console.warn( + 'THREE.Object3D: .getWorldQuaternion() target is now required' + ), + (t = new At())), + this.updateWorldMatrix(!0, !1), + this.matrixWorld.decompose(be, t, Me), + t + ); + } + getWorldScale(t) { + return ( + void 0 === t && + (console.warn( + 'THREE.Object3D: .getWorldScale() target is now required' + ), + (t = new Lt())), + this.updateWorldMatrix(!0, !1), + this.matrixWorld.decompose(be, Se, t), + t + ); + } + getWorldDirection(t) { + void 0 === t && + (console.warn( + 'THREE.Object3D: .getWorldDirection() target is now required' + ), + (t = new Lt())), + this.updateWorldMatrix(!0, !1); + const e = this.matrixWorld.elements; + return t.set(e[8], e[9], e[10]).normalize(); + } + raycast() {} + traverse(t) { + t(this); + const e = this.children; + for (let n = 0, i = e.length; n < i; n++) e[n].traverse(t); + } + traverseVisible(t) { + if (!1 === this.visible) return; + t(this); + const e = this.children; + for (let n = 0, i = e.length; n < i; n++) e[n].traverseVisible(t); + } + traverseAncestors(t) { + const e = this.parent; + null !== e && (t(e), e.traverseAncestors(t)); + } + updateMatrix() { + this.matrix.compose(this.position, this.quaternion, this.scale), + (this.matrixWorldNeedsUpdate = !0); + } + updateMatrixWorld(t) { + this.matrixAutoUpdate && this.updateMatrix(), + (this.matrixWorldNeedsUpdate || t) && + (null === this.parent + ? this.matrixWorld.copy(this.matrix) + : this.matrixWorld.multiplyMatrices( + this.parent.matrixWorld, + this.matrix + ), + (this.matrixWorldNeedsUpdate = !1), + (t = !0)); + const e = this.children; + for (let n = 0, i = e.length; n < i; n++) e[n].updateMatrixWorld(t); + } + updateWorldMatrix(t, e) { + const n = this.parent; + if ( + (!0 === t && null !== n && n.updateWorldMatrix(!0, !1), + this.matrixAutoUpdate && this.updateMatrix(), + null === this.parent + ? this.matrixWorld.copy(this.matrix) + : this.matrixWorld.multiplyMatrices( + this.parent.matrixWorld, + this.matrix + ), + !0 === e) + ) { + const t = this.children; + for (let e = 0, n = t.length; e < n; e++) + t[e].updateWorldMatrix(!1, !0); + } + } + toJSON(t) { + const e = void 0 === t || 'string' == typeof t, + n = {}; + e && + ((t = { + geometries: {}, + materials: {}, + textures: {}, + images: {}, + shapes: {}, + skeletons: {}, + animations: {}, + }), + (n.metadata = { + version: 4.5, + type: 'Object', + generator: 'Object3D.toJSON', + })); + const i = {}; + function r(e, n) { + return void 0 === e[n.uuid] && (e[n.uuid] = n.toJSON(t)), n.uuid; + } + if ( + ((i.uuid = this.uuid), + (i.type = this.type), + '' !== this.name && (i.name = this.name), + !0 === this.castShadow && (i.castShadow = !0), + !0 === this.receiveShadow && (i.receiveShadow = !0), + !1 === this.visible && (i.visible = !1), + !1 === this.frustumCulled && (i.frustumCulled = !1), + 0 !== this.renderOrder && (i.renderOrder = this.renderOrder), + '{}' !== JSON.stringify(this.userData) && (i.userData = this.userData), + (i.layers = this.layers.mask), + (i.matrix = this.matrix.toArray()), + !1 === this.matrixAutoUpdate && (i.matrixAutoUpdate = !1), + this.isInstancedMesh && + ((i.type = 'InstancedMesh'), + (i.count = this.count), + (i.instanceMatrix = this.instanceMatrix.toJSON()), + null !== this.instanceColor && + (i.instanceColor = this.instanceColor.toJSON())), + this.isMesh || this.isLine || this.isPoints) + ) { + i.geometry = r(t.geometries, this.geometry); + const e = this.geometry.parameters; + if (void 0 !== e && void 0 !== e.shapes) { + const n = e.shapes; + if (Array.isArray(n)) + for (let e = 0, i = n.length; e < i; e++) { + const i = n[e]; + r(t.shapes, i); + } + else r(t.shapes, n); + } + } + if ( + (this.isSkinnedMesh && + ((i.bindMode = this.bindMode), + (i.bindMatrix = this.bindMatrix.toArray()), + void 0 !== this.skeleton && + (r(t.skeletons, this.skeleton), (i.skeleton = this.skeleton.uuid))), + void 0 !== this.material) + ) + if (Array.isArray(this.material)) { + const e = []; + for (let n = 0, i = this.material.length; n < i; n++) + e.push(r(t.materials, this.material[n])); + i.material = e; + } else i.material = r(t.materials, this.material); + if (this.children.length > 0) { + i.children = []; + for (let e = 0; e < this.children.length; e++) + i.children.push(this.children[e].toJSON(t).object); + } + if (this.animations.length > 0) { + i.animations = []; + for (let e = 0; e < this.animations.length; e++) { + const n = this.animations[e]; + i.animations.push(r(t.animations, n)); + } + } + if (e) { + const e = s(t.geometries), + i = s(t.materials), + r = s(t.textures), + a = s(t.images), + o = s(t.shapes), + l = s(t.skeletons), + c = s(t.animations); + e.length > 0 && (n.geometries = e), + i.length > 0 && (n.materials = i), + r.length > 0 && (n.textures = r), + a.length > 0 && (n.images = a), + o.length > 0 && (n.shapes = o), + l.length > 0 && (n.skeletons = l), + c.length > 0 && (n.animations = c); + } + return (n.object = i), n; + function s(t) { + const e = []; + for (const n in t) { + const i = t[n]; + delete i.metadata, e.push(i); + } + return e; + } + } + clone(t) { + return new this.constructor().copy(this, t); + } + copy(t, e = !0) { + if ( + ((this.name = t.name), + this.up.copy(t.up), + this.position.copy(t.position), + (this.rotation.order = t.rotation.order), + this.quaternion.copy(t.quaternion), + this.scale.copy(t.scale), + this.matrix.copy(t.matrix), + this.matrixWorld.copy(t.matrixWorld), + (this.matrixAutoUpdate = t.matrixAutoUpdate), + (this.matrixWorldNeedsUpdate = t.matrixWorldNeedsUpdate), + (this.layers.mask = t.layers.mask), + (this.visible = t.visible), + (this.castShadow = t.castShadow), + (this.receiveShadow = t.receiveShadow), + (this.frustumCulled = t.frustumCulled), + (this.renderOrder = t.renderOrder), + (this.userData = JSON.parse(JSON.stringify(t.userData))), + !0 === e) + ) + for (let e = 0; e < t.children.length; e++) { + const n = t.children[e]; + this.add(n.clone()); + } + return this; + } + } + (Ce.DefaultUp = new Lt(0, 1, 0)), + (Ce.DefaultMatrixAutoUpdate = !0), + (Ce.prototype.isObject3D = !0); + const Pe = new Lt(), + De = new Lt(), + Ie = new yt(); + class Ne { + constructor(t = new Lt(1, 0, 0), e = 0) { + (this.normal = t), (this.constant = e); + } + set(t, e) { + return this.normal.copy(t), (this.constant = e), this; + } + setComponents(t, e, n, i) { + return this.normal.set(t, e, n), (this.constant = i), this; + } + setFromNormalAndCoplanarPoint(t, e) { + return this.normal.copy(t), (this.constant = -e.dot(this.normal)), this; + } + setFromCoplanarPoints(t, e, n) { + const i = Pe.subVectors(n, e).cross(De.subVectors(t, e)).normalize(); + return this.setFromNormalAndCoplanarPoint(i, t), this; + } + copy(t) { + return this.normal.copy(t.normal), (this.constant = t.constant), this; + } + normalize() { + const t = 1 / this.normal.length(); + return this.normal.multiplyScalar(t), (this.constant *= t), this; + } + negate() { + return (this.constant *= -1), this.normal.negate(), this; + } + distanceToPoint(t) { + return this.normal.dot(t) + this.constant; + } + distanceToSphere(t) { + return this.distanceToPoint(t.center) - t.radius; + } + projectPoint(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Plane: .projectPoint() target is now required'), + (e = new Lt())), + e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t) + ); + } + intersectLine(t, e) { + void 0 === e && + (console.warn('THREE.Plane: .intersectLine() target is now required'), + (e = new Lt())); + const n = t.delta(Pe), + i = this.normal.dot(n); + if (0 === i) + return 0 === this.distanceToPoint(t.start) ? e.copy(t.start) : null; + const r = -(t.start.dot(this.normal) + this.constant) / i; + return r < 0 || r > 1 ? null : e.copy(n).multiplyScalar(r).add(t.start); + } + intersectsLine(t) { + const e = this.distanceToPoint(t.start), + n = this.distanceToPoint(t.end); + return (e < 0 && n > 0) || (n < 0 && e > 0); + } + intersectsBox(t) { + return t.intersectsPlane(this); + } + intersectsSphere(t) { + return t.intersectsPlane(this); + } + coplanarPoint(t) { + return ( + void 0 === t && + (console.warn('THREE.Plane: .coplanarPoint() target is now required'), + (t = new Lt())), + t.copy(this.normal).multiplyScalar(-this.constant) + ); + } + applyMatrix4(t, e) { + const n = e || Ie.getNormalMatrix(t), + i = this.coplanarPoint(Pe).applyMatrix4(t), + r = this.normal.applyMatrix3(n).normalize(); + return (this.constant = -i.dot(r)), this; + } + translate(t) { + return (this.constant -= t.dot(this.normal)), this; + } + equals(t) { + return t.normal.equals(this.normal) && t.constant === this.constant; + } + clone() { + return new this.constructor().copy(this); + } + } + Ne.prototype.isPlane = !0; + const Be = new Lt(), + ze = new Lt(), + Fe = new Lt(), + Oe = new Lt(), + He = new Lt(), + Ge = new Lt(), + Ue = new Lt(), + ke = new Lt(), + Ve = new Lt(), + We = new Lt(); + class je { + constructor(t = new Lt(), e = new Lt(), n = new Lt()) { + (this.a = t), (this.b = e), (this.c = n); + } + static getNormal(t, e, n, i) { + void 0 === i && + (console.warn('THREE.Triangle: .getNormal() target is now required'), + (i = new Lt())), + i.subVectors(n, e), + Be.subVectors(t, e), + i.cross(Be); + const r = i.lengthSq(); + return r > 0 ? i.multiplyScalar(1 / Math.sqrt(r)) : i.set(0, 0, 0); + } + static getBarycoord(t, e, n, i, r) { + Be.subVectors(i, e), ze.subVectors(n, e), Fe.subVectors(t, e); + const s = Be.dot(Be), + a = Be.dot(ze), + o = Be.dot(Fe), + l = ze.dot(ze), + c = ze.dot(Fe), + h = s * l - a * a; + if ( + (void 0 === r && + (console.warn( + 'THREE.Triangle: .getBarycoord() target is now required' + ), + (r = new Lt())), + 0 === h) + ) + return r.set(-2, -1, -1); + const u = 1 / h, + d = (l * o - a * c) * u, + p = (s * c - a * o) * u; + return r.set(1 - d - p, p, d); + } + static containsPoint(t, e, n, i) { + return ( + this.getBarycoord(t, e, n, i, Oe), + Oe.x >= 0 && Oe.y >= 0 && Oe.x + Oe.y <= 1 + ); + } + static getUV(t, e, n, i, r, s, a, o) { + return ( + this.getBarycoord(t, e, n, i, Oe), + o.set(0, 0), + o.addScaledVector(r, Oe.x), + o.addScaledVector(s, Oe.y), + o.addScaledVector(a, Oe.z), + o + ); + } + static isFrontFacing(t, e, n, i) { + return Be.subVectors(n, e), ze.subVectors(t, e), Be.cross(ze).dot(i) < 0; + } + set(t, e, n) { + return this.a.copy(t), this.b.copy(e), this.c.copy(n), this; + } + setFromPointsAndIndices(t, e, n, i) { + return this.a.copy(t[e]), this.b.copy(t[n]), this.c.copy(t[i]), this; + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return this.a.copy(t.a), this.b.copy(t.b), this.c.copy(t.c), this; + } + getArea() { + return ( + Be.subVectors(this.c, this.b), + ze.subVectors(this.a, this.b), + 0.5 * Be.cross(ze).length() + ); + } + getMidpoint(t) { + return ( + void 0 === t && + (console.warn( + 'THREE.Triangle: .getMidpoint() target is now required' + ), + (t = new Lt())), + t + .addVectors(this.a, this.b) + .add(this.c) + .multiplyScalar(1 / 3) + ); + } + getNormal(t) { + return je.getNormal(this.a, this.b, this.c, t); + } + getPlane(t) { + return ( + void 0 === t && + (console.warn('THREE.Triangle: .getPlane() target is now required'), + (t = new Ne())), + t.setFromCoplanarPoints(this.a, this.b, this.c) + ); + } + getBarycoord(t, e) { + return je.getBarycoord(t, this.a, this.b, this.c, e); + } + getUV(t, e, n, i, r) { + return je.getUV(t, this.a, this.b, this.c, e, n, i, r); + } + containsPoint(t) { + return je.containsPoint(t, this.a, this.b, this.c); + } + isFrontFacing(t) { + return je.isFrontFacing(this.a, this.b, this.c, t); + } + intersectsBox(t) { + return t.intersectsTriangle(this); + } + closestPointToPoint(t, e) { + void 0 === e && + (console.warn( + 'THREE.Triangle: .closestPointToPoint() target is now required' + ), + (e = new Lt())); + const n = this.a, + i = this.b, + r = this.c; + let s, a; + He.subVectors(i, n), Ge.subVectors(r, n), ke.subVectors(t, n); + const o = He.dot(ke), + l = Ge.dot(ke); + if (o <= 0 && l <= 0) return e.copy(n); + Ve.subVectors(t, i); + const c = He.dot(Ve), + h = Ge.dot(Ve); + if (c >= 0 && h <= c) return e.copy(i); + const u = o * h - c * l; + if (u <= 0 && o >= 0 && c <= 0) + return (s = o / (o - c)), e.copy(n).addScaledVector(He, s); + We.subVectors(t, r); + const d = He.dot(We), + p = Ge.dot(We); + if (p >= 0 && d <= p) return e.copy(r); + const m = d * l - o * p; + if (m <= 0 && l >= 0 && p <= 0) + return (a = l / (l - p)), e.copy(n).addScaledVector(Ge, a); + const f = c * p - d * h; + if (f <= 0 && h - c >= 0 && d - p >= 0) + return ( + Ue.subVectors(r, i), + (a = (h - c) / (h - c + (d - p))), + e.copy(i).addScaledVector(Ue, a) + ); + const g = 1 / (f + m + u); + return ( + (s = m * g), + (a = u * g), + e.copy(n).addScaledVector(He, s).addScaledVector(Ge, a) + ); + } + equals(t) { + return t.a.equals(this.a) && t.b.equals(this.b) && t.c.equals(this.c); + } + } + let qe = 0; + function Xe() { + Object.defineProperty(this, 'id', { value: qe++ }), + (this.uuid = ct()), + (this.name = ''), + (this.type = 'Material'), + (this.fog = !0), + (this.blending = 1), + (this.side = 0), + (this.vertexColors = !1), + (this.opacity = 1), + (this.transparent = !1), + (this.blendSrc = 204), + (this.blendDst = 205), + (this.blendEquation = n), + (this.blendSrcAlpha = null), + (this.blendDstAlpha = null), + (this.blendEquationAlpha = null), + (this.depthFunc = 3), + (this.depthTest = !0), + (this.depthWrite = !0), + (this.stencilWriteMask = 255), + (this.stencilFunc = 519), + (this.stencilRef = 0), + (this.stencilFuncMask = 255), + (this.stencilFail = tt), + (this.stencilZFail = tt), + (this.stencilZPass = tt), + (this.stencilWrite = !1), + (this.clippingPlanes = null), + (this.clipIntersection = !1), + (this.clipShadows = !1), + (this.shadowSide = null), + (this.colorWrite = !0), + (this.precision = null), + (this.polygonOffset = !1), + (this.polygonOffsetFactor = 0), + (this.polygonOffsetUnits = 0), + (this.dithering = !1), + (this.alphaTest = 0), + (this.alphaToCoverage = !1), + (this.premultipliedAlpha = !1), + (this.visible = !0), + (this.toneMapped = !0), + (this.userData = {}), + (this.version = 0); + } + (Xe.prototype = Object.assign(Object.create(rt.prototype), { + constructor: Xe, + isMaterial: !0, + onBuild: function () {}, + onBeforeCompile: function () {}, + customProgramCacheKey: function () { + return this.onBeforeCompile.toString(); + }, + setValues: function (t) { + if (void 0 !== t) + for (const e in t) { + const n = t[e]; + if (void 0 === n) { + console.warn("THREE.Material: '" + e + "' parameter is undefined."); + continue; + } + if ('shading' === e) { + console.warn( + 'THREE.' + + this.type + + ': .shading has been removed. Use the boolean .flatShading instead.' + ), + (this.flatShading = 1 === n); + continue; + } + const i = this[e]; + void 0 !== i + ? i && i.isColor + ? i.set(n) + : i && i.isVector3 && n && n.isVector3 + ? i.copy(n) + : (this[e] = n) + : console.warn( + 'THREE.' + + this.type + + ": '" + + e + + "' is not a property of this material." + ); + } + }, + toJSON: function (t) { + const e = void 0 === t || 'string' == typeof t; + e && (t = { textures: {}, images: {} }); + const n = { + metadata: { + version: 4.5, + type: 'Material', + generator: 'Material.toJSON', + }, + }; + function i(t) { + const e = []; + for (const n in t) { + const i = t[n]; + delete i.metadata, e.push(i); + } + return e; + } + if ( + ((n.uuid = this.uuid), + (n.type = this.type), + '' !== this.name && (n.name = this.name), + this.color && this.color.isColor && (n.color = this.color.getHex()), + void 0 !== this.roughness && (n.roughness = this.roughness), + void 0 !== this.metalness && (n.metalness = this.metalness), + this.sheen && this.sheen.isColor && (n.sheen = this.sheen.getHex()), + this.emissive && + this.emissive.isColor && + (n.emissive = this.emissive.getHex()), + this.emissiveIntensity && + 1 !== this.emissiveIntensity && + (n.emissiveIntensity = this.emissiveIntensity), + this.specular && + this.specular.isColor && + (n.specular = this.specular.getHex()), + void 0 !== this.shininess && (n.shininess = this.shininess), + void 0 !== this.clearcoat && (n.clearcoat = this.clearcoat), + void 0 !== this.clearcoatRoughness && + (n.clearcoatRoughness = this.clearcoatRoughness), + this.clearcoatMap && + this.clearcoatMap.isTexture && + (n.clearcoatMap = this.clearcoatMap.toJSON(t).uuid), + this.clearcoatRoughnessMap && + this.clearcoatRoughnessMap.isTexture && + (n.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(t).uuid), + this.clearcoatNormalMap && + this.clearcoatNormalMap.isTexture && + ((n.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(t).uuid), + (n.clearcoatNormalScale = this.clearcoatNormalScale.toArray())), + this.map && this.map.isTexture && (n.map = this.map.toJSON(t).uuid), + this.matcap && + this.matcap.isTexture && + (n.matcap = this.matcap.toJSON(t).uuid), + this.alphaMap && + this.alphaMap.isTexture && + (n.alphaMap = this.alphaMap.toJSON(t).uuid), + this.lightMap && + this.lightMap.isTexture && + ((n.lightMap = this.lightMap.toJSON(t).uuid), + (n.lightMapIntensity = this.lightMapIntensity)), + this.aoMap && + this.aoMap.isTexture && + ((n.aoMap = this.aoMap.toJSON(t).uuid), + (n.aoMapIntensity = this.aoMapIntensity)), + this.bumpMap && + this.bumpMap.isTexture && + ((n.bumpMap = this.bumpMap.toJSON(t).uuid), + (n.bumpScale = this.bumpScale)), + this.normalMap && + this.normalMap.isTexture && + ((n.normalMap = this.normalMap.toJSON(t).uuid), + (n.normalMapType = this.normalMapType), + (n.normalScale = this.normalScale.toArray())), + this.displacementMap && + this.displacementMap.isTexture && + ((n.displacementMap = this.displacementMap.toJSON(t).uuid), + (n.displacementScale = this.displacementScale), + (n.displacementBias = this.displacementBias)), + this.roughnessMap && + this.roughnessMap.isTexture && + (n.roughnessMap = this.roughnessMap.toJSON(t).uuid), + this.metalnessMap && + this.metalnessMap.isTexture && + (n.metalnessMap = this.metalnessMap.toJSON(t).uuid), + this.emissiveMap && + this.emissiveMap.isTexture && + (n.emissiveMap = this.emissiveMap.toJSON(t).uuid), + this.specularMap && + this.specularMap.isTexture && + (n.specularMap = this.specularMap.toJSON(t).uuid), + this.envMap && + this.envMap.isTexture && + ((n.envMap = this.envMap.toJSON(t).uuid), + void 0 !== this.combine && (n.combine = this.combine)), + void 0 !== this.envMapIntensity && + (n.envMapIntensity = this.envMapIntensity), + void 0 !== this.reflectivity && (n.reflectivity = this.reflectivity), + void 0 !== this.refractionRatio && + (n.refractionRatio = this.refractionRatio), + this.gradientMap && + this.gradientMap.isTexture && + (n.gradientMap = this.gradientMap.toJSON(t).uuid), + void 0 !== this.size && (n.size = this.size), + null !== this.shadowSide && (n.shadowSide = this.shadowSide), + void 0 !== this.sizeAttenuation && + (n.sizeAttenuation = this.sizeAttenuation), + 1 !== this.blending && (n.blending = this.blending), + 0 !== this.side && (n.side = this.side), + this.vertexColors && (n.vertexColors = !0), + this.opacity < 1 && (n.opacity = this.opacity), + !0 === this.transparent && (n.transparent = this.transparent), + (n.depthFunc = this.depthFunc), + (n.depthTest = this.depthTest), + (n.depthWrite = this.depthWrite), + (n.colorWrite = this.colorWrite), + (n.stencilWrite = this.stencilWrite), + (n.stencilWriteMask = this.stencilWriteMask), + (n.stencilFunc = this.stencilFunc), + (n.stencilRef = this.stencilRef), + (n.stencilFuncMask = this.stencilFuncMask), + (n.stencilFail = this.stencilFail), + (n.stencilZFail = this.stencilZFail), + (n.stencilZPass = this.stencilZPass), + this.rotation && 0 !== this.rotation && (n.rotation = this.rotation), + !0 === this.polygonOffset && (n.polygonOffset = !0), + 0 !== this.polygonOffsetFactor && + (n.polygonOffsetFactor = this.polygonOffsetFactor), + 0 !== this.polygonOffsetUnits && + (n.polygonOffsetUnits = this.polygonOffsetUnits), + this.linewidth && + 1 !== this.linewidth && + (n.linewidth = this.linewidth), + void 0 !== this.dashSize && (n.dashSize = this.dashSize), + void 0 !== this.gapSize && (n.gapSize = this.gapSize), + void 0 !== this.scale && (n.scale = this.scale), + !0 === this.dithering && (n.dithering = !0), + this.alphaTest > 0 && (n.alphaTest = this.alphaTest), + !0 === this.alphaToCoverage && + (n.alphaToCoverage = this.alphaToCoverage), + !0 === this.premultipliedAlpha && + (n.premultipliedAlpha = this.premultipliedAlpha), + !0 === this.wireframe && (n.wireframe = this.wireframe), + this.wireframeLinewidth > 1 && + (n.wireframeLinewidth = this.wireframeLinewidth), + 'round' !== this.wireframeLinecap && + (n.wireframeLinecap = this.wireframeLinecap), + 'round' !== this.wireframeLinejoin && + (n.wireframeLinejoin = this.wireframeLinejoin), + !0 === this.morphTargets && (n.morphTargets = !0), + !0 === this.morphNormals && (n.morphNormals = !0), + !0 === this.skinning && (n.skinning = !0), + !0 === this.flatShading && (n.flatShading = this.flatShading), + !1 === this.visible && (n.visible = !1), + !1 === this.toneMapped && (n.toneMapped = !1), + '{}' !== JSON.stringify(this.userData) && (n.userData = this.userData), + e) + ) { + const e = i(t.textures), + r = i(t.images); + e.length > 0 && (n.textures = e), r.length > 0 && (n.images = r); + } + return n; + }, + clone: function () { + return new this.constructor().copy(this); + }, + copy: function (t) { + (this.name = t.name), + (this.fog = t.fog), + (this.blending = t.blending), + (this.side = t.side), + (this.vertexColors = t.vertexColors), + (this.opacity = t.opacity), + (this.transparent = t.transparent), + (this.blendSrc = t.blendSrc), + (this.blendDst = t.blendDst), + (this.blendEquation = t.blendEquation), + (this.blendSrcAlpha = t.blendSrcAlpha), + (this.blendDstAlpha = t.blendDstAlpha), + (this.blendEquationAlpha = t.blendEquationAlpha), + (this.depthFunc = t.depthFunc), + (this.depthTest = t.depthTest), + (this.depthWrite = t.depthWrite), + (this.stencilWriteMask = t.stencilWriteMask), + (this.stencilFunc = t.stencilFunc), + (this.stencilRef = t.stencilRef), + (this.stencilFuncMask = t.stencilFuncMask), + (this.stencilFail = t.stencilFail), + (this.stencilZFail = t.stencilZFail), + (this.stencilZPass = t.stencilZPass), + (this.stencilWrite = t.stencilWrite); + const e = t.clippingPlanes; + let n = null; + if (null !== e) { + const t = e.length; + n = new Array(t); + for (let i = 0; i !== t; ++i) n[i] = e[i].clone(); + } + return ( + (this.clippingPlanes = n), + (this.clipIntersection = t.clipIntersection), + (this.clipShadows = t.clipShadows), + (this.shadowSide = t.shadowSide), + (this.colorWrite = t.colorWrite), + (this.precision = t.precision), + (this.polygonOffset = t.polygonOffset), + (this.polygonOffsetFactor = t.polygonOffsetFactor), + (this.polygonOffsetUnits = t.polygonOffsetUnits), + (this.dithering = t.dithering), + (this.alphaTest = t.alphaTest), + (this.alphaToCoverage = t.alphaToCoverage), + (this.premultipliedAlpha = t.premultipliedAlpha), + (this.visible = t.visible), + (this.toneMapped = t.toneMapped), + (this.userData = JSON.parse(JSON.stringify(t.userData))), + this + ); + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + })), + Object.defineProperty(Xe.prototype, 'needsUpdate', { + set: function (t) { + !0 === t && this.version++; + }, + }); + const Ye = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074, + }, + Ze = { h: 0, s: 0, l: 0 }, + Je = { h: 0, s: 0, l: 0 }; + function Qe(t, e, n) { + return ( + n < 0 && (n += 1), + n > 1 && (n -= 1), + n < 1 / 6 + ? t + 6 * (e - t) * n + : n < 0.5 + ? e + : n < 2 / 3 + ? t + 6 * (e - t) * (2 / 3 - n) + : t + ); + } + function Ke(t) { + return t < 0.04045 + ? 0.0773993808 * t + : Math.pow(0.9478672986 * t + 0.0521327014, 2.4); + } + function $e(t) { + return t < 0.0031308 ? 12.92 * t : 1.055 * Math.pow(t, 0.41666) - 0.055; + } + class tn { + constructor(t, e, n) { + return void 0 === e && void 0 === n ? this.set(t) : this.setRGB(t, e, n); + } + set(t) { + return ( + t && t.isColor + ? this.copy(t) + : 'number' == typeof t + ? this.setHex(t) + : 'string' == typeof t && this.setStyle(t), + this + ); + } + setScalar(t) { + return (this.r = t), (this.g = t), (this.b = t), this; + } + setHex(t) { + return ( + (t = Math.floor(t)), + (this.r = ((t >> 16) & 255) / 255), + (this.g = ((t >> 8) & 255) / 255), + (this.b = (255 & t) / 255), + this + ); + } + setRGB(t, e, n) { + return (this.r = t), (this.g = e), (this.b = n), this; + } + setHSL(t, e, n) { + if (((t = ut(t, 1)), (e = ht(e, 0, 1)), (n = ht(n, 0, 1)), 0 === e)) + this.r = this.g = this.b = n; + else { + const i = n <= 0.5 ? n * (1 + e) : n + e - n * e, + r = 2 * n - i; + (this.r = Qe(r, i, t + 1 / 3)), + (this.g = Qe(r, i, t)), + (this.b = Qe(r, i, t - 1 / 3)); + } + return this; + } + setStyle(t) { + function e(e) { + void 0 !== e && + parseFloat(e) < 1 && + console.warn( + 'THREE.Color: Alpha component of ' + t + ' will be ignored.' + ); + } + let n; + if ((n = /^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t))) { + let t; + const i = n[1], + r = n[2]; + switch (i) { + case 'rgb': + case 'rgba': + if ( + (t = + /^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( + r + )) + ) + return ( + (this.r = Math.min(255, parseInt(t[1], 10)) / 255), + (this.g = Math.min(255, parseInt(t[2], 10)) / 255), + (this.b = Math.min(255, parseInt(t[3], 10)) / 255), + e(t[4]), + this + ); + if ( + (t = + /^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( + r + )) + ) + return ( + (this.r = Math.min(100, parseInt(t[1], 10)) / 100), + (this.g = Math.min(100, parseInt(t[2], 10)) / 100), + (this.b = Math.min(100, parseInt(t[3], 10)) / 100), + e(t[4]), + this + ); + break; + case 'hsl': + case 'hsla': + if ( + (t = + /^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( + r + )) + ) { + const n = parseFloat(t[1]) / 360, + i = parseInt(t[2], 10) / 100, + r = parseInt(t[3], 10) / 100; + return e(t[4]), this.setHSL(n, i, r); + } + } + } else if ((n = /^\#([A-Fa-f\d]+)$/.exec(t))) { + const t = n[1], + e = t.length; + if (3 === e) + return ( + (this.r = parseInt(t.charAt(0) + t.charAt(0), 16) / 255), + (this.g = parseInt(t.charAt(1) + t.charAt(1), 16) / 255), + (this.b = parseInt(t.charAt(2) + t.charAt(2), 16) / 255), + this + ); + if (6 === e) + return ( + (this.r = parseInt(t.charAt(0) + t.charAt(1), 16) / 255), + (this.g = parseInt(t.charAt(2) + t.charAt(3), 16) / 255), + (this.b = parseInt(t.charAt(4) + t.charAt(5), 16) / 255), + this + ); + } + return t && t.length > 0 ? this.setColorName(t) : this; + } + setColorName(t) { + const e = Ye[t.toLowerCase()]; + return ( + void 0 !== e + ? this.setHex(e) + : console.warn('THREE.Color: Unknown color ' + t), + this + ); + } + clone() { + return new this.constructor(this.r, this.g, this.b); + } + copy(t) { + return (this.r = t.r), (this.g = t.g), (this.b = t.b), this; + } + copyGammaToLinear(t, e = 2) { + return ( + (this.r = Math.pow(t.r, e)), + (this.g = Math.pow(t.g, e)), + (this.b = Math.pow(t.b, e)), + this + ); + } + copyLinearToGamma(t, e = 2) { + const n = e > 0 ? 1 / e : 1; + return ( + (this.r = Math.pow(t.r, n)), + (this.g = Math.pow(t.g, n)), + (this.b = Math.pow(t.b, n)), + this + ); + } + convertGammaToLinear(t) { + return this.copyGammaToLinear(this, t), this; + } + convertLinearToGamma(t) { + return this.copyLinearToGamma(this, t), this; + } + copySRGBToLinear(t) { + return (this.r = Ke(t.r)), (this.g = Ke(t.g)), (this.b = Ke(t.b)), this; + } + copyLinearToSRGB(t) { + return (this.r = $e(t.r)), (this.g = $e(t.g)), (this.b = $e(t.b)), this; + } + convertSRGBToLinear() { + return this.copySRGBToLinear(this), this; + } + convertLinearToSRGB() { + return this.copyLinearToSRGB(this), this; + } + getHex() { + return ( + ((255 * this.r) << 16) ^ ((255 * this.g) << 8) ^ ((255 * this.b) << 0) + ); + } + getHexString() { + return ('000000' + this.getHex().toString(16)).slice(-6); + } + getHSL(t) { + void 0 === t && + (console.warn('THREE.Color: .getHSL() target is now required'), + (t = { h: 0, s: 0, l: 0 })); + const e = this.r, + n = this.g, + i = this.b, + r = Math.max(e, n, i), + s = Math.min(e, n, i); + let a, o; + const l = (s + r) / 2; + if (s === r) (a = 0), (o = 0); + else { + const t = r - s; + switch (((o = l <= 0.5 ? t / (r + s) : t / (2 - r - s)), r)) { + case e: + a = (n - i) / t + (n < i ? 6 : 0); + break; + case n: + a = (i - e) / t + 2; + break; + case i: + a = (e - n) / t + 4; + } + a /= 6; + } + return (t.h = a), (t.s = o), (t.l = l), t; + } + getStyle() { + return ( + 'rgb(' + + ((255 * this.r) | 0) + + ',' + + ((255 * this.g) | 0) + + ',' + + ((255 * this.b) | 0) + + ')' + ); + } + offsetHSL(t, e, n) { + return ( + this.getHSL(Ze), + (Ze.h += t), + (Ze.s += e), + (Ze.l += n), + this.setHSL(Ze.h, Ze.s, Ze.l), + this + ); + } + add(t) { + return (this.r += t.r), (this.g += t.g), (this.b += t.b), this; + } + addColors(t, e) { + return ( + (this.r = t.r + e.r), (this.g = t.g + e.g), (this.b = t.b + e.b), this + ); + } + addScalar(t) { + return (this.r += t), (this.g += t), (this.b += t), this; + } + sub(t) { + return ( + (this.r = Math.max(0, this.r - t.r)), + (this.g = Math.max(0, this.g - t.g)), + (this.b = Math.max(0, this.b - t.b)), + this + ); + } + multiply(t) { + return (this.r *= t.r), (this.g *= t.g), (this.b *= t.b), this; + } + multiplyScalar(t) { + return (this.r *= t), (this.g *= t), (this.b *= t), this; + } + lerp(t, e) { + return ( + (this.r += (t.r - this.r) * e), + (this.g += (t.g - this.g) * e), + (this.b += (t.b - this.b) * e), + this + ); + } + lerpColors(t, e, n) { + return ( + (this.r = t.r + (e.r - t.r) * n), + (this.g = t.g + (e.g - t.g) * n), + (this.b = t.b + (e.b - t.b) * n), + this + ); + } + lerpHSL(t, e) { + this.getHSL(Ze), t.getHSL(Je); + const n = dt(Ze.h, Je.h, e), + i = dt(Ze.s, Je.s, e), + r = dt(Ze.l, Je.l, e); + return this.setHSL(n, i, r), this; + } + equals(t) { + return t.r === this.r && t.g === this.g && t.b === this.b; + } + fromArray(t, e = 0) { + return (this.r = t[e]), (this.g = t[e + 1]), (this.b = t[e + 2]), this; + } + toArray(t = [], e = 0) { + return (t[e] = this.r), (t[e + 1] = this.g), (t[e + 2] = this.b), t; + } + fromBufferAttribute(t, e) { + return ( + (this.r = t.getX(e)), + (this.g = t.getY(e)), + (this.b = t.getZ(e)), + !0 === t.normalized && + ((this.r /= 255), (this.g /= 255), (this.b /= 255)), + this + ); + } + toJSON() { + return this.getHex(); + } + } + (tn.NAMES = Ye), + (tn.prototype.isColor = !0), + (tn.prototype.r = 1), + (tn.prototype.g = 1), + (tn.prototype.b = 1); + class en extends Xe { + constructor(t) { + super(), + (this.type = 'MeshBasicMaterial'), + (this.color = new tn(16777215)), + (this.map = null), + (this.lightMap = null), + (this.lightMapIntensity = 1), + (this.aoMap = null), + (this.aoMapIntensity = 1), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = 0), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.skinning = !1), + (this.morphTargets = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.map = t.map), + (this.lightMap = t.lightMap), + (this.lightMapIntensity = t.lightMapIntensity), + (this.aoMap = t.aoMap), + (this.aoMapIntensity = t.aoMapIntensity), + (this.specularMap = t.specularMap), + (this.alphaMap = t.alphaMap), + (this.envMap = t.envMap), + (this.combine = t.combine), + (this.reflectivity = t.reflectivity), + (this.refractionRatio = t.refractionRatio), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.wireframeLinecap = t.wireframeLinecap), + (this.wireframeLinejoin = t.wireframeLinejoin), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + this + ); + } + } + en.prototype.isMeshBasicMaterial = !0; + const nn = new Lt(), + rn = new vt(); + class sn { + constructor(t, e, n) { + if (Array.isArray(t)) + throw new TypeError( + 'THREE.BufferAttribute: array should be a Typed Array.' + ); + (this.name = ''), + (this.array = t), + (this.itemSize = e), + (this.count = void 0 !== t ? t.length / e : 0), + (this.normalized = !0 === n), + (this.usage = et), + (this.updateRange = { offset: 0, count: -1 }), + (this.version = 0), + (this.onUploadCallback = function () {}); + } + set needsUpdate(t) { + !0 === t && this.version++; + } + setUsage(t) { + return (this.usage = t), this; + } + copy(t) { + return ( + (this.name = t.name), + (this.array = new t.array.constructor(t.array)), + (this.itemSize = t.itemSize), + (this.count = t.count), + (this.normalized = t.normalized), + (this.usage = t.usage), + this + ); + } + copyAt(t, e, n) { + (t *= this.itemSize), (n *= e.itemSize); + for (let i = 0, r = this.itemSize; i < r; i++) + this.array[t + i] = e.array[n + i]; + return this; + } + copyArray(t) { + return this.array.set(t), this; + } + copyColorsArray(t) { + const e = this.array; + let n = 0; + for (let i = 0, r = t.length; i < r; i++) { + let r = t[i]; + void 0 === r && + (console.warn( + 'THREE.BufferAttribute.copyColorsArray(): color is undefined', + i + ), + (r = new tn())), + (e[n++] = r.r), + (e[n++] = r.g), + (e[n++] = r.b); + } + return this; + } + copyVector2sArray(t) { + const e = this.array; + let n = 0; + for (let i = 0, r = t.length; i < r; i++) { + let r = t[i]; + void 0 === r && + (console.warn( + 'THREE.BufferAttribute.copyVector2sArray(): vector is undefined', + i + ), + (r = new vt())), + (e[n++] = r.x), + (e[n++] = r.y); + } + return this; + } + copyVector3sArray(t) { + const e = this.array; + let n = 0; + for (let i = 0, r = t.length; i < r; i++) { + let r = t[i]; + void 0 === r && + (console.warn( + 'THREE.BufferAttribute.copyVector3sArray(): vector is undefined', + i + ), + (r = new Lt())), + (e[n++] = r.x), + (e[n++] = r.y), + (e[n++] = r.z); + } + return this; + } + copyVector4sArray(t) { + const e = this.array; + let n = 0; + for (let i = 0, r = t.length; i < r; i++) { + let r = t[i]; + void 0 === r && + (console.warn( + 'THREE.BufferAttribute.copyVector4sArray(): vector is undefined', + i + ), + (r = new St())), + (e[n++] = r.x), + (e[n++] = r.y), + (e[n++] = r.z), + (e[n++] = r.w); + } + return this; + } + applyMatrix3(t) { + if (2 === this.itemSize) + for (let e = 0, n = this.count; e < n; e++) + rn.fromBufferAttribute(this, e), + rn.applyMatrix3(t), + this.setXY(e, rn.x, rn.y); + else if (3 === this.itemSize) + for (let e = 0, n = this.count; e < n; e++) + nn.fromBufferAttribute(this, e), + nn.applyMatrix3(t), + this.setXYZ(e, nn.x, nn.y, nn.z); + return this; + } + applyMatrix4(t) { + for (let e = 0, n = this.count; e < n; e++) + (nn.x = this.getX(e)), + (nn.y = this.getY(e)), + (nn.z = this.getZ(e)), + nn.applyMatrix4(t), + this.setXYZ(e, nn.x, nn.y, nn.z); + return this; + } + applyNormalMatrix(t) { + for (let e = 0, n = this.count; e < n; e++) + (nn.x = this.getX(e)), + (nn.y = this.getY(e)), + (nn.z = this.getZ(e)), + nn.applyNormalMatrix(t), + this.setXYZ(e, nn.x, nn.y, nn.z); + return this; + } + transformDirection(t) { + for (let e = 0, n = this.count; e < n; e++) + (nn.x = this.getX(e)), + (nn.y = this.getY(e)), + (nn.z = this.getZ(e)), + nn.transformDirection(t), + this.setXYZ(e, nn.x, nn.y, nn.z); + return this; + } + set(t, e = 0) { + return this.array.set(t, e), this; + } + getX(t) { + return this.array[t * this.itemSize]; + } + setX(t, e) { + return (this.array[t * this.itemSize] = e), this; + } + getY(t) { + return this.array[t * this.itemSize + 1]; + } + setY(t, e) { + return (this.array[t * this.itemSize + 1] = e), this; + } + getZ(t) { + return this.array[t * this.itemSize + 2]; + } + setZ(t, e) { + return (this.array[t * this.itemSize + 2] = e), this; + } + getW(t) { + return this.array[t * this.itemSize + 3]; + } + setW(t, e) { + return (this.array[t * this.itemSize + 3] = e), this; + } + setXY(t, e, n) { + return ( + (t *= this.itemSize), + (this.array[t + 0] = e), + (this.array[t + 1] = n), + this + ); + } + setXYZ(t, e, n, i) { + return ( + (t *= this.itemSize), + (this.array[t + 0] = e), + (this.array[t + 1] = n), + (this.array[t + 2] = i), + this + ); + } + setXYZW(t, e, n, i, r) { + return ( + (t *= this.itemSize), + (this.array[t + 0] = e), + (this.array[t + 1] = n), + (this.array[t + 2] = i), + (this.array[t + 3] = r), + this + ); + } + onUpload(t) { + return (this.onUploadCallback = t), this; + } + clone() { + return new this.constructor(this.array, this.itemSize).copy(this); + } + toJSON() { + const t = { + itemSize: this.itemSize, + type: this.array.constructor.name, + array: Array.prototype.slice.call(this.array), + normalized: this.normalized, + }; + return ( + '' !== this.name && (t.name = this.name), + this.usage !== et && (t.usage = this.usage), + (0 === this.updateRange.offset && -1 === this.updateRange.count) || + (t.updateRange = this.updateRange), + t + ); + } + } + sn.prototype.isBufferAttribute = !0; + class an extends sn { + constructor(t, e, n) { + super(new Int8Array(t), e, n); + } + } + class on extends sn { + constructor(t, e, n) { + super(new Uint8Array(t), e, n); + } + } + class ln extends sn { + constructor(t, e, n) { + super(new Uint8ClampedArray(t), e, n); + } + } + class cn extends sn { + constructor(t, e, n) { + super(new Int16Array(t), e, n); + } + } + class hn extends sn { + constructor(t, e, n) { + super(new Uint16Array(t), e, n); + } + } + class un extends sn { + constructor(t, e, n) { + super(new Int32Array(t), e, n); + } + } + class dn extends sn { + constructor(t, e, n) { + super(new Uint32Array(t), e, n); + } + } + class pn extends sn { + constructor(t, e, n) { + super(new Uint16Array(t), e, n); + } + } + pn.prototype.isFloat16BufferAttribute = !0; + class mn extends sn { + constructor(t, e, n) { + super(new Float32Array(t), e, n); + } + } + class fn extends sn { + constructor(t, e, n) { + super(new Float64Array(t), e, n); + } + } + function gn(t) { + if (0 === t.length) return -1 / 0; + let e = t[0]; + for (let n = 1, i = t.length; n < i; ++n) t[n] > e && (e = t[n]); + return e; + } + const vn = { + Int8Array: Int8Array, + Uint8Array: Uint8Array, + Uint8ClampedArray: Uint8ClampedArray, + Int16Array: Int16Array, + Uint16Array: Uint16Array, + Int32Array: Int32Array, + Uint32Array: Uint32Array, + Float32Array: Float32Array, + Float64Array: Float64Array, + }; + function yn(t, e) { + return new vn[t](e); + } + let xn = 0; + const _n = new se(), + wn = new Ce(), + bn = new Lt(), + Mn = new Pt(), + Sn = new Pt(), + Tn = new Lt(); + class En extends rt { + constructor() { + super(), + Object.defineProperty(this, 'id', { value: xn++ }), + (this.uuid = ct()), + (this.name = ''), + (this.type = 'BufferGeometry'), + (this.index = null), + (this.attributes = {}), + (this.morphAttributes = {}), + (this.morphTargetsRelative = !1), + (this.groups = []), + (this.boundingBox = null), + (this.boundingSphere = null), + (this.drawRange = { start: 0, count: 1 / 0 }), + (this.userData = {}); + } + getIndex() { + return this.index; + } + setIndex(t) { + return ( + Array.isArray(t) + ? (this.index = new (gn(t) > 65535 ? dn : hn)(t, 1)) + : (this.index = t), + this + ); + } + getAttribute(t) { + return this.attributes[t]; + } + setAttribute(t, e) { + return (this.attributes[t] = e), this; + } + deleteAttribute(t) { + return delete this.attributes[t], this; + } + hasAttribute(t) { + return void 0 !== this.attributes[t]; + } + addGroup(t, e, n = 0) { + this.groups.push({ start: t, count: e, materialIndex: n }); + } + clearGroups() { + this.groups = []; + } + setDrawRange(t, e) { + (this.drawRange.start = t), (this.drawRange.count = e); + } + applyMatrix4(t) { + const e = this.attributes.position; + void 0 !== e && (e.applyMatrix4(t), (e.needsUpdate = !0)); + const n = this.attributes.normal; + if (void 0 !== n) { + const e = new yt().getNormalMatrix(t); + n.applyNormalMatrix(e), (n.needsUpdate = !0); + } + const i = this.attributes.tangent; + return ( + void 0 !== i && (i.transformDirection(t), (i.needsUpdate = !0)), + null !== this.boundingBox && this.computeBoundingBox(), + null !== this.boundingSphere && this.computeBoundingSphere(), + this + ); + } + rotateX(t) { + return _n.makeRotationX(t), this.applyMatrix4(_n), this; + } + rotateY(t) { + return _n.makeRotationY(t), this.applyMatrix4(_n), this; + } + rotateZ(t) { + return _n.makeRotationZ(t), this.applyMatrix4(_n), this; + } + translate(t, e, n) { + return _n.makeTranslation(t, e, n), this.applyMatrix4(_n), this; + } + scale(t, e, n) { + return _n.makeScale(t, e, n), this.applyMatrix4(_n), this; + } + lookAt(t) { + return ( + wn.lookAt(t), wn.updateMatrix(), this.applyMatrix4(wn.matrix), this + ); + } + center() { + return ( + this.computeBoundingBox(), + this.boundingBox.getCenter(bn).negate(), + this.translate(bn.x, bn.y, bn.z), + this + ); + } + setFromPoints(t) { + const e = []; + for (let n = 0, i = t.length; n < i; n++) { + const i = t[n]; + e.push(i.x, i.y, i.z || 0); + } + return this.setAttribute('position', new mn(e, 3)), this; + } + computeBoundingBox() { + null === this.boundingBox && (this.boundingBox = new Pt()); + const t = this.attributes.position, + e = this.morphAttributes.position; + if (t && t.isGLBufferAttribute) + return ( + console.error( + 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".', + this + ), + void this.boundingBox.set( + new Lt(-1 / 0, -1 / 0, -1 / 0), + new Lt(1 / 0, 1 / 0, 1 / 0) + ) + ); + if (void 0 !== t) { + if ((this.boundingBox.setFromBufferAttribute(t), e)) + for (let t = 0, n = e.length; t < n; t++) { + const n = e[t]; + Mn.setFromBufferAttribute(n), + this.morphTargetsRelative + ? (Tn.addVectors(this.boundingBox.min, Mn.min), + this.boundingBox.expandByPoint(Tn), + Tn.addVectors(this.boundingBox.max, Mn.max), + this.boundingBox.expandByPoint(Tn)) + : (this.boundingBox.expandByPoint(Mn.min), + this.boundingBox.expandByPoint(Mn.max)); + } + } else this.boundingBox.makeEmpty(); + (isNaN(this.boundingBox.min.x) || + isNaN(this.boundingBox.min.y) || + isNaN(this.boundingBox.min.z)) && + console.error( + 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', + this + ); + } + computeBoundingSphere() { + null === this.boundingSphere && (this.boundingSphere = new Jt()); + const t = this.attributes.position, + e = this.morphAttributes.position; + if (t && t.isGLBufferAttribute) + return ( + console.error( + 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".', + this + ), + void this.boundingSphere.set(new Lt(), 1 / 0) + ); + if (t) { + const n = this.boundingSphere.center; + if ((Mn.setFromBufferAttribute(t), e)) + for (let t = 0, n = e.length; t < n; t++) { + const n = e[t]; + Sn.setFromBufferAttribute(n), + this.morphTargetsRelative + ? (Tn.addVectors(Mn.min, Sn.min), + Mn.expandByPoint(Tn), + Tn.addVectors(Mn.max, Sn.max), + Mn.expandByPoint(Tn)) + : (Mn.expandByPoint(Sn.min), Mn.expandByPoint(Sn.max)); + } + Mn.getCenter(n); + let i = 0; + for (let e = 0, r = t.count; e < r; e++) + Tn.fromBufferAttribute(t, e), + (i = Math.max(i, n.distanceToSquared(Tn))); + if (e) + for (let r = 0, s = e.length; r < s; r++) { + const s = e[r], + a = this.morphTargetsRelative; + for (let e = 0, r = s.count; e < r; e++) + Tn.fromBufferAttribute(s, e), + a && (bn.fromBufferAttribute(t, e), Tn.add(bn)), + (i = Math.max(i, n.distanceToSquared(Tn))); + } + (this.boundingSphere.radius = Math.sqrt(i)), + isNaN(this.boundingSphere.radius) && + console.error( + 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', + this + ); + } + } + computeFaceNormals() {} + computeTangents() { + const t = this.index, + e = this.attributes; + if ( + null === t || + void 0 === e.position || + void 0 === e.normal || + void 0 === e.uv + ) + return void console.error( + 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' + ); + const n = t.array, + i = e.position.array, + r = e.normal.array, + s = e.uv.array, + a = i.length / 3; + void 0 === e.tangent && + this.setAttribute('tangent', new sn(new Float32Array(4 * a), 4)); + const o = e.tangent.array, + l = [], + c = []; + for (let t = 0; t < a; t++) (l[t] = new Lt()), (c[t] = new Lt()); + const h = new Lt(), + u = new Lt(), + d = new Lt(), + p = new vt(), + m = new vt(), + f = new vt(), + g = new Lt(), + v = new Lt(); + function y(t, e, n) { + h.fromArray(i, 3 * t), + u.fromArray(i, 3 * e), + d.fromArray(i, 3 * n), + p.fromArray(s, 2 * t), + m.fromArray(s, 2 * e), + f.fromArray(s, 2 * n), + u.sub(h), + d.sub(h), + m.sub(p), + f.sub(p); + const r = 1 / (m.x * f.y - f.x * m.y); + isFinite(r) && + (g + .copy(u) + .multiplyScalar(f.y) + .addScaledVector(d, -m.y) + .multiplyScalar(r), + v + .copy(d) + .multiplyScalar(m.x) + .addScaledVector(u, -f.x) + .multiplyScalar(r), + l[t].add(g), + l[e].add(g), + l[n].add(g), + c[t].add(v), + c[e].add(v), + c[n].add(v)); + } + let x = this.groups; + 0 === x.length && (x = [{ start: 0, count: n.length }]); + for (let t = 0, e = x.length; t < e; ++t) { + const e = x[t], + i = e.start; + for (let t = i, r = i + e.count; t < r; t += 3) + y(n[t + 0], n[t + 1], n[t + 2]); + } + const _ = new Lt(), + w = new Lt(), + b = new Lt(), + M = new Lt(); + function S(t) { + b.fromArray(r, 3 * t), M.copy(b); + const e = l[t]; + _.copy(e), + _.sub(b.multiplyScalar(b.dot(e))).normalize(), + w.crossVectors(M, e); + const n = w.dot(c[t]) < 0 ? -1 : 1; + (o[4 * t] = _.x), + (o[4 * t + 1] = _.y), + (o[4 * t + 2] = _.z), + (o[4 * t + 3] = n); + } + for (let t = 0, e = x.length; t < e; ++t) { + const e = x[t], + i = e.start; + for (let t = i, r = i + e.count; t < r; t += 3) + S(n[t + 0]), S(n[t + 1]), S(n[t + 2]); + } + } + computeVertexNormals() { + const t = this.index, + e = this.getAttribute('position'); + if (void 0 !== e) { + let n = this.getAttribute('normal'); + if (void 0 === n) + (n = new sn(new Float32Array(3 * e.count), 3)), + this.setAttribute('normal', n); + else for (let t = 0, e = n.count; t < e; t++) n.setXYZ(t, 0, 0, 0); + const i = new Lt(), + r = new Lt(), + s = new Lt(), + a = new Lt(), + o = new Lt(), + l = new Lt(), + c = new Lt(), + h = new Lt(); + if (t) + for (let u = 0, d = t.count; u < d; u += 3) { + const d = t.getX(u + 0), + p = t.getX(u + 1), + m = t.getX(u + 2); + i.fromBufferAttribute(e, d), + r.fromBufferAttribute(e, p), + s.fromBufferAttribute(e, m), + c.subVectors(s, r), + h.subVectors(i, r), + c.cross(h), + a.fromBufferAttribute(n, d), + o.fromBufferAttribute(n, p), + l.fromBufferAttribute(n, m), + a.add(c), + o.add(c), + l.add(c), + n.setXYZ(d, a.x, a.y, a.z), + n.setXYZ(p, o.x, o.y, o.z), + n.setXYZ(m, l.x, l.y, l.z); + } + else + for (let t = 0, a = e.count; t < a; t += 3) + i.fromBufferAttribute(e, t + 0), + r.fromBufferAttribute(e, t + 1), + s.fromBufferAttribute(e, t + 2), + c.subVectors(s, r), + h.subVectors(i, r), + c.cross(h), + n.setXYZ(t + 0, c.x, c.y, c.z), + n.setXYZ(t + 1, c.x, c.y, c.z), + n.setXYZ(t + 2, c.x, c.y, c.z); + this.normalizeNormals(), (n.needsUpdate = !0); + } + } + merge(t, e) { + if (!t || !t.isBufferGeometry) + return void console.error( + 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', + t + ); + void 0 === e && + ((e = 0), + console.warn( + 'THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.' + )); + const n = this.attributes; + for (const i in n) { + if (void 0 === t.attributes[i]) continue; + const r = n[i].array, + s = t.attributes[i], + a = s.array, + o = s.itemSize * e, + l = Math.min(a.length, r.length - o); + for (let t = 0, e = o; t < l; t++, e++) r[e] = a[t]; + } + return this; + } + normalizeNormals() { + const t = this.attributes.normal; + for (let e = 0, n = t.count; e < n; e++) + Tn.fromBufferAttribute(t, e), + Tn.normalize(), + t.setXYZ(e, Tn.x, Tn.y, Tn.z); + } + toNonIndexed() { + function t(t, e) { + const n = t.array, + i = t.itemSize, + r = t.normalized, + s = new n.constructor(e.length * i); + let a = 0, + o = 0; + for (let t = 0, r = e.length; t < r; t++) { + a = e[t] * i; + for (let t = 0; t < i; t++) s[o++] = n[a++]; + } + return new sn(s, i, r); + } + if (null === this.index) + return ( + console.warn( + 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' + ), + this + ); + const e = new En(), + n = this.index.array, + i = this.attributes; + for (const r in i) { + const s = t(i[r], n); + e.setAttribute(r, s); + } + const r = this.morphAttributes; + for (const i in r) { + const s = [], + a = r[i]; + for (let e = 0, i = a.length; e < i; e++) { + const i = t(a[e], n); + s.push(i); + } + e.morphAttributes[i] = s; + } + e.morphTargetsRelative = this.morphTargetsRelative; + const s = this.groups; + for (let t = 0, n = s.length; t < n; t++) { + const n = s[t]; + e.addGroup(n.start, n.count, n.materialIndex); + } + return e; + } + toJSON() { + const t = { + metadata: { + version: 4.5, + type: 'BufferGeometry', + generator: 'BufferGeometry.toJSON', + }, + }; + if ( + ((t.uuid = this.uuid), + (t.type = this.type), + '' !== this.name && (t.name = this.name), + Object.keys(this.userData).length > 0 && (t.userData = this.userData), + void 0 !== this.parameters) + ) { + const e = this.parameters; + for (const n in e) void 0 !== e[n] && (t[n] = e[n]); + return t; + } + t.data = { attributes: {} }; + const e = this.index; + null !== e && + (t.data.index = { + type: e.array.constructor.name, + array: Array.prototype.slice.call(e.array), + }); + const n = this.attributes; + for (const e in n) { + const i = n[e]; + t.data.attributes[e] = i.toJSON(t.data); + } + const i = {}; + let r = !1; + for (const e in this.morphAttributes) { + const n = this.morphAttributes[e], + s = []; + for (let e = 0, i = n.length; e < i; e++) { + const i = n[e]; + s.push(i.toJSON(t.data)); + } + s.length > 0 && ((i[e] = s), (r = !0)); + } + r && + ((t.data.morphAttributes = i), + (t.data.morphTargetsRelative = this.morphTargetsRelative)); + const s = this.groups; + s.length > 0 && (t.data.groups = JSON.parse(JSON.stringify(s))); + const a = this.boundingSphere; + return ( + null !== a && + (t.data.boundingSphere = { + center: a.center.toArray(), + radius: a.radius, + }), + t + ); + } + clone() { + return new En().copy(this); + } + copy(t) { + (this.index = null), + (this.attributes = {}), + (this.morphAttributes = {}), + (this.groups = []), + (this.boundingBox = null), + (this.boundingSphere = null); + const e = {}; + this.name = t.name; + const n = t.index; + null !== n && this.setIndex(n.clone(e)); + const i = t.attributes; + for (const t in i) { + const n = i[t]; + this.setAttribute(t, n.clone(e)); + } + const r = t.morphAttributes; + for (const t in r) { + const n = [], + i = r[t]; + for (let t = 0, r = i.length; t < r; t++) n.push(i[t].clone(e)); + this.morphAttributes[t] = n; + } + this.morphTargetsRelative = t.morphTargetsRelative; + const s = t.groups; + for (let t = 0, e = s.length; t < e; t++) { + const e = s[t]; + this.addGroup(e.start, e.count, e.materialIndex); + } + const a = t.boundingBox; + null !== a && (this.boundingBox = a.clone()); + const o = t.boundingSphere; + return ( + null !== o && (this.boundingSphere = o.clone()), + (this.drawRange.start = t.drawRange.start), + (this.drawRange.count = t.drawRange.count), + (this.userData = t.userData), + this + ); + } + dispose() { + this.dispatchEvent({ type: 'dispose' }); + } + } + En.prototype.isBufferGeometry = !0; + const An = new se(), + Ln = new re(), + Rn = new Jt(), + Cn = new Lt(), + Pn = new Lt(), + Dn = new Lt(), + In = new Lt(), + Nn = new Lt(), + Bn = new Lt(), + zn = new Lt(), + Fn = new Lt(), + On = new Lt(), + Hn = new vt(), + Gn = new vt(), + Un = new vt(), + kn = new Lt(), + Vn = new Lt(); + class Wn extends Ce { + constructor(t = new En(), e = new en()) { + super(), + (this.type = 'Mesh'), + (this.geometry = t), + (this.material = e), + this.updateMorphTargets(); + } + copy(t) { + return ( + super.copy(t), + void 0 !== t.morphTargetInfluences && + (this.morphTargetInfluences = t.morphTargetInfluences.slice()), + void 0 !== t.morphTargetDictionary && + (this.morphTargetDictionary = Object.assign( + {}, + t.morphTargetDictionary + )), + (this.material = t.material), + (this.geometry = t.geometry), + this + ); + } + updateMorphTargets() { + const t = this.geometry; + if (t.isBufferGeometry) { + const e = t.morphAttributes, + n = Object.keys(e); + if (n.length > 0) { + const t = e[n[0]]; + if (void 0 !== t) { + (this.morphTargetInfluences = []), + (this.morphTargetDictionary = {}); + for (let e = 0, n = t.length; e < n; e++) { + const n = t[e].name || String(e); + this.morphTargetInfluences.push(0), + (this.morphTargetDictionary[n] = e); + } + } + } + } else { + const e = t.morphTargets; + void 0 !== e && + e.length > 0 && + console.error( + 'THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + } + raycast(t, e) { + const n = this.geometry, + i = this.material, + r = this.matrixWorld; + if (void 0 === i) return; + if ( + (null === n.boundingSphere && n.computeBoundingSphere(), + Rn.copy(n.boundingSphere), + Rn.applyMatrix4(r), + !1 === t.ray.intersectsSphere(Rn)) + ) + return; + if ( + (An.copy(r).invert(), + Ln.copy(t.ray).applyMatrix4(An), + null !== n.boundingBox && !1 === Ln.intersectsBox(n.boundingBox)) + ) + return; + let s; + if (n.isBufferGeometry) { + const r = n.index, + a = n.attributes.position, + o = n.morphAttributes.position, + l = n.morphTargetsRelative, + c = n.attributes.uv, + h = n.attributes.uv2, + u = n.groups, + d = n.drawRange; + if (null !== r) + if (Array.isArray(i)) + for (let n = 0, p = u.length; n < p; n++) { + const p = u[n], + m = i[p.materialIndex]; + for ( + let n = Math.max(p.start, d.start), + i = Math.min(p.start + p.count, d.start + d.count); + n < i; + n += 3 + ) { + const i = r.getX(n), + u = r.getX(n + 1), + d = r.getX(n + 2); + (s = jn(this, m, t, Ln, a, o, l, c, h, i, u, d)), + s && + ((s.faceIndex = Math.floor(n / 3)), + (s.face.materialIndex = p.materialIndex), + e.push(s)); + } + } + else { + for ( + let n = Math.max(0, d.start), + u = Math.min(r.count, d.start + d.count); + n < u; + n += 3 + ) { + const u = r.getX(n), + d = r.getX(n + 1), + p = r.getX(n + 2); + (s = jn(this, i, t, Ln, a, o, l, c, h, u, d, p)), + s && ((s.faceIndex = Math.floor(n / 3)), e.push(s)); + } + } + else if (void 0 !== a) + if (Array.isArray(i)) + for (let n = 0, r = u.length; n < r; n++) { + const r = u[n], + p = i[r.materialIndex]; + for ( + let n = Math.max(r.start, d.start), + i = Math.min(r.start + r.count, d.start + d.count); + n < i; + n += 3 + ) { + (s = jn(this, p, t, Ln, a, o, l, c, h, n, n + 1, n + 2)), + s && + ((s.faceIndex = Math.floor(n / 3)), + (s.face.materialIndex = r.materialIndex), + e.push(s)); + } + } + else { + for ( + let n = Math.max(0, d.start), + r = Math.min(a.count, d.start + d.count); + n < r; + n += 3 + ) { + (s = jn(this, i, t, Ln, a, o, l, c, h, n, n + 1, n + 2)), + s && ((s.faceIndex = Math.floor(n / 3)), e.push(s)); + } + } + } else + n.isGeometry && + console.error( + 'THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + } + function jn(t, e, n, i, r, s, a, o, l, c, h, u) { + Cn.fromBufferAttribute(r, c), + Pn.fromBufferAttribute(r, h), + Dn.fromBufferAttribute(r, u); + const d = t.morphTargetInfluences; + if (e.morphTargets && s && d) { + zn.set(0, 0, 0), Fn.set(0, 0, 0), On.set(0, 0, 0); + for (let t = 0, e = s.length; t < e; t++) { + const e = d[t], + n = s[t]; + 0 !== e && + (In.fromBufferAttribute(n, c), + Nn.fromBufferAttribute(n, h), + Bn.fromBufferAttribute(n, u), + a + ? (zn.addScaledVector(In, e), + Fn.addScaledVector(Nn, e), + On.addScaledVector(Bn, e)) + : (zn.addScaledVector(In.sub(Cn), e), + Fn.addScaledVector(Nn.sub(Pn), e), + On.addScaledVector(Bn.sub(Dn), e))); + } + Cn.add(zn), Pn.add(Fn), Dn.add(On); + } + t.isSkinnedMesh && + e.skinning && + (t.boneTransform(c, Cn), t.boneTransform(h, Pn), t.boneTransform(u, Dn)); + const p = (function (t, e, n, i, r, s, a, o) { + let l; + if ( + ((l = + 1 === e.side + ? i.intersectTriangle(a, s, r, !0, o) + : i.intersectTriangle(r, s, a, 2 !== e.side, o)), + null === l) + ) + return null; + Vn.copy(o), Vn.applyMatrix4(t.matrixWorld); + const c = n.ray.origin.distanceTo(Vn); + return c < n.near || c > n.far + ? null + : { distance: c, point: Vn.clone(), object: t }; + })(t, e, n, i, Cn, Pn, Dn, kn); + if (p) { + o && + (Hn.fromBufferAttribute(o, c), + Gn.fromBufferAttribute(o, h), + Un.fromBufferAttribute(o, u), + (p.uv = je.getUV(kn, Cn, Pn, Dn, Hn, Gn, Un, new vt()))), + l && + (Hn.fromBufferAttribute(l, c), + Gn.fromBufferAttribute(l, h), + Un.fromBufferAttribute(l, u), + (p.uv2 = je.getUV(kn, Cn, Pn, Dn, Hn, Gn, Un, new vt()))); + const t = { a: c, b: h, c: u, normal: new Lt(), materialIndex: 0 }; + je.getNormal(Cn, Pn, Dn, t.normal), (p.face = t); + } + return p; + } + Wn.prototype.isMesh = !0; + class qn extends En { + constructor(t = 1, e = 1, n = 1, i = 1, r = 1, s = 1) { + super(), + (this.type = 'BoxGeometry'), + (this.parameters = { + width: t, + height: e, + depth: n, + widthSegments: i, + heightSegments: r, + depthSegments: s, + }); + const a = this; + (i = Math.floor(i)), (r = Math.floor(r)), (s = Math.floor(s)); + const o = [], + l = [], + c = [], + h = []; + let u = 0, + d = 0; + function p(t, e, n, i, r, s, p, m, f, g, v) { + const y = s / f, + x = p / g, + _ = s / 2, + w = p / 2, + b = m / 2, + M = f + 1, + S = g + 1; + let T = 0, + E = 0; + const A = new Lt(); + for (let s = 0; s < S; s++) { + const a = s * x - w; + for (let o = 0; o < M; o++) { + const u = o * y - _; + (A[t] = u * i), + (A[e] = a * r), + (A[n] = b), + l.push(A.x, A.y, A.z), + (A[t] = 0), + (A[e] = 0), + (A[n] = m > 0 ? 1 : -1), + c.push(A.x, A.y, A.z), + h.push(o / f), + h.push(1 - s / g), + (T += 1); + } + } + for (let t = 0; t < g; t++) + for (let e = 0; e < f; e++) { + const n = u + e + M * t, + i = u + e + M * (t + 1), + r = u + (e + 1) + M * (t + 1), + s = u + (e + 1) + M * t; + o.push(n, i, s), o.push(i, r, s), (E += 6); + } + a.addGroup(d, E, v), (d += E), (u += T); + } + p('z', 'y', 'x', -1, -1, n, e, t, s, r, 0), + p('z', 'y', 'x', 1, -1, n, e, -t, s, r, 1), + p('x', 'z', 'y', 1, 1, t, n, e, i, s, 2), + p('x', 'z', 'y', 1, -1, t, n, -e, i, s, 3), + p('x', 'y', 'z', 1, -1, t, e, n, i, r, 4), + p('x', 'y', 'z', -1, -1, t, e, -n, i, r, 5), + this.setIndex(o), + this.setAttribute('position', new mn(l, 3)), + this.setAttribute('normal', new mn(c, 3)), + this.setAttribute('uv', new mn(h, 2)); + } + } + function Xn(t) { + const e = {}; + for (const n in t) { + e[n] = {}; + for (const i in t[n]) { + const r = t[n][i]; + r && + (r.isColor || + r.isMatrix3 || + r.isMatrix4 || + r.isVector2 || + r.isVector3 || + r.isVector4 || + r.isTexture || + r.isQuaternion) + ? (e[n][i] = r.clone()) + : Array.isArray(r) + ? (e[n][i] = r.slice()) + : (e[n][i] = r); + } + } + return e; + } + function Yn(t) { + const e = {}; + for (let n = 0; n < t.length; n++) { + const i = Xn(t[n]); + for (const t in i) e[t] = i[t]; + } + return e; + } + const Zn = { clone: Xn, merge: Yn }; + class Jn extends Xe { + constructor(t) { + super(), + (this.type = 'ShaderMaterial'), + (this.defines = {}), + (this.uniforms = {}), + (this.vertexShader = + 'void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}'), + (this.fragmentShader = + 'void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}'), + (this.linewidth = 1), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.fog = !1), + (this.lights = !1), + (this.clipping = !1), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.extensions = { + derivatives: !1, + fragDepth: !1, + drawBuffers: !1, + shaderTextureLOD: !1, + }), + (this.defaultAttributeValues = { + color: [1, 1, 1], + uv: [0, 0], + uv2: [0, 0], + }), + (this.index0AttributeName = void 0), + (this.uniformsNeedUpdate = !1), + (this.glslVersion = null), + void 0 !== t && + (void 0 !== t.attributes && + console.error( + 'THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.' + ), + this.setValues(t)); + } + copy(t) { + return ( + super.copy(t), + (this.fragmentShader = t.fragmentShader), + (this.vertexShader = t.vertexShader), + (this.uniforms = Xn(t.uniforms)), + (this.defines = Object.assign({}, t.defines)), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.lights = t.lights), + (this.clipping = t.clipping), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + (this.extensions = Object.assign({}, t.extensions)), + (this.glslVersion = t.glslVersion), + this + ); + } + toJSON(t) { + const e = super.toJSON(t); + (e.glslVersion = this.glslVersion), (e.uniforms = {}); + for (const n in this.uniforms) { + const i = this.uniforms[n].value; + i && i.isTexture + ? (e.uniforms[n] = { type: 't', value: i.toJSON(t).uuid }) + : i && i.isColor + ? (e.uniforms[n] = { type: 'c', value: i.getHex() }) + : i && i.isVector2 + ? (e.uniforms[n] = { type: 'v2', value: i.toArray() }) + : i && i.isVector3 + ? (e.uniforms[n] = { type: 'v3', value: i.toArray() }) + : i && i.isVector4 + ? (e.uniforms[n] = { type: 'v4', value: i.toArray() }) + : i && i.isMatrix3 + ? (e.uniforms[n] = { type: 'm3', value: i.toArray() }) + : i && i.isMatrix4 + ? (e.uniforms[n] = { type: 'm4', value: i.toArray() }) + : (e.uniforms[n] = { value: i }); + } + Object.keys(this.defines).length > 0 && (e.defines = this.defines), + (e.vertexShader = this.vertexShader), + (e.fragmentShader = this.fragmentShader); + const n = {}; + for (const t in this.extensions) !0 === this.extensions[t] && (n[t] = !0); + return Object.keys(n).length > 0 && (e.extensions = n), e; + } + } + Jn.prototype.isShaderMaterial = !0; + class Qn extends Ce { + constructor() { + super(), + (this.type = 'Camera'), + (this.matrixWorldInverse = new se()), + (this.projectionMatrix = new se()), + (this.projectionMatrixInverse = new se()); + } + copy(t, e) { + return ( + super.copy(t, e), + this.matrixWorldInverse.copy(t.matrixWorldInverse), + this.projectionMatrix.copy(t.projectionMatrix), + this.projectionMatrixInverse.copy(t.projectionMatrixInverse), + this + ); + } + getWorldDirection(t) { + void 0 === t && + (console.warn( + 'THREE.Camera: .getWorldDirection() target is now required' + ), + (t = new Lt())), + this.updateWorldMatrix(!0, !1); + const e = this.matrixWorld.elements; + return t.set(-e[8], -e[9], -e[10]).normalize(); + } + updateMatrixWorld(t) { + super.updateMatrixWorld(t), + this.matrixWorldInverse.copy(this.matrixWorld).invert(); + } + updateWorldMatrix(t, e) { + super.updateWorldMatrix(t, e), + this.matrixWorldInverse.copy(this.matrixWorld).invert(); + } + clone() { + return new this.constructor().copy(this); + } + } + Qn.prototype.isCamera = !0; + class Kn extends Qn { + constructor(t = 50, e = 1, n = 0.1, i = 2e3) { + super(), + (this.type = 'PerspectiveCamera'), + (this.fov = t), + (this.zoom = 1), + (this.near = n), + (this.far = i), + (this.focus = 10), + (this.aspect = e), + (this.view = null), + (this.filmGauge = 35), + (this.filmOffset = 0), + this.updateProjectionMatrix(); + } + copy(t, e) { + return ( + super.copy(t, e), + (this.fov = t.fov), + (this.zoom = t.zoom), + (this.near = t.near), + (this.far = t.far), + (this.focus = t.focus), + (this.aspect = t.aspect), + (this.view = null === t.view ? null : Object.assign({}, t.view)), + (this.filmGauge = t.filmGauge), + (this.filmOffset = t.filmOffset), + this + ); + } + setFocalLength(t) { + const e = (0.5 * this.getFilmHeight()) / t; + (this.fov = 2 * lt * Math.atan(e)), this.updateProjectionMatrix(); + } + getFocalLength() { + const t = Math.tan(0.5 * ot * this.fov); + return (0.5 * this.getFilmHeight()) / t; + } + getEffectiveFOV() { + return 2 * lt * Math.atan(Math.tan(0.5 * ot * this.fov) / this.zoom); + } + getFilmWidth() { + return this.filmGauge * Math.min(this.aspect, 1); + } + getFilmHeight() { + return this.filmGauge / Math.max(this.aspect, 1); + } + setViewOffset(t, e, n, i, r, s) { + (this.aspect = t / e), + null === this.view && + (this.view = { + enabled: !0, + fullWidth: 1, + fullHeight: 1, + offsetX: 0, + offsetY: 0, + width: 1, + height: 1, + }), + (this.view.enabled = !0), + (this.view.fullWidth = t), + (this.view.fullHeight = e), + (this.view.offsetX = n), + (this.view.offsetY = i), + (this.view.width = r), + (this.view.height = s), + this.updateProjectionMatrix(); + } + clearViewOffset() { + null !== this.view && (this.view.enabled = !1), + this.updateProjectionMatrix(); + } + updateProjectionMatrix() { + const t = this.near; + let e = (t * Math.tan(0.5 * ot * this.fov)) / this.zoom, + n = 2 * e, + i = this.aspect * n, + r = -0.5 * i; + const s = this.view; + if (null !== this.view && this.view.enabled) { + const t = s.fullWidth, + a = s.fullHeight; + (r += (s.offsetX * i) / t), + (e -= (s.offsetY * n) / a), + (i *= s.width / t), + (n *= s.height / a); + } + const a = this.filmOffset; + 0 !== a && (r += (t * a) / this.getFilmWidth()), + this.projectionMatrix.makePerspective(r, r + i, e, e - n, t, this.far), + this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); + } + toJSON(t) { + const e = super.toJSON(t); + return ( + (e.object.fov = this.fov), + (e.object.zoom = this.zoom), + (e.object.near = this.near), + (e.object.far = this.far), + (e.object.focus = this.focus), + (e.object.aspect = this.aspect), + null !== this.view && (e.object.view = Object.assign({}, this.view)), + (e.object.filmGauge = this.filmGauge), + (e.object.filmOffset = this.filmOffset), + e + ); + } + } + Kn.prototype.isPerspectiveCamera = !0; + const $n = 90; + class ti extends Ce { + constructor(t, e, n) { + if ( + (super(), (this.type = 'CubeCamera'), !0 !== n.isWebGLCubeRenderTarget) + ) + return void console.error( + 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' + ); + this.renderTarget = n; + const i = new Kn($n, 1, t, e); + (i.layers = this.layers), + i.up.set(0, -1, 0), + i.lookAt(new Lt(1, 0, 0)), + this.add(i); + const r = new Kn($n, 1, t, e); + (r.layers = this.layers), + r.up.set(0, -1, 0), + r.lookAt(new Lt(-1, 0, 0)), + this.add(r); + const s = new Kn($n, 1, t, e); + (s.layers = this.layers), + s.up.set(0, 0, 1), + s.lookAt(new Lt(0, 1, 0)), + this.add(s); + const a = new Kn($n, 1, t, e); + (a.layers = this.layers), + a.up.set(0, 0, -1), + a.lookAt(new Lt(0, -1, 0)), + this.add(a); + const o = new Kn($n, 1, t, e); + (o.layers = this.layers), + o.up.set(0, -1, 0), + o.lookAt(new Lt(0, 0, 1)), + this.add(o); + const l = new Kn($n, 1, t, e); + (l.layers = this.layers), + l.up.set(0, -1, 0), + l.lookAt(new Lt(0, 0, -1)), + this.add(l); + } + update(t, e) { + null === this.parent && this.updateMatrixWorld(); + const n = this.renderTarget, + [i, r, s, a, o, l] = this.children, + c = t.xr.enabled, + h = t.getRenderTarget(); + t.xr.enabled = !1; + const u = n.texture.generateMipmaps; + (n.texture.generateMipmaps = !1), + t.setRenderTarget(n, 0), + t.render(e, i), + t.setRenderTarget(n, 1), + t.render(e, r), + t.setRenderTarget(n, 2), + t.render(e, s), + t.setRenderTarget(n, 3), + t.render(e, a), + t.setRenderTarget(n, 4), + t.render(e, o), + (n.texture.generateMipmaps = u), + t.setRenderTarget(n, 5), + t.render(e, l), + t.setRenderTarget(h), + (t.xr.enabled = c); + } + } + class ei extends bt { + constructor(t, e, n, i, s, a, o, l, c, h) { + super( + (t = void 0 !== t ? t : []), + (e = void 0 !== e ? e : r), + n, + i, + s, + a, + (o = void 0 !== o ? o : T), + l, + c, + h + ), + (this._needsFlipEnvMap = !0), + (this.flipY = !1); + } + get images() { + return this.image; + } + set images(t) { + this.image = t; + } + } + ei.prototype.isCubeTexture = !0; + class ni extends Tt { + constructor(t, e, n) { + Number.isInteger(e) && + (console.warn( + 'THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )' + ), + (e = n)), + super(t, t, e), + (e = e || {}), + (this.texture = new ei( + void 0, + e.mapping, + e.wrapS, + e.wrapT, + e.magFilter, + e.minFilter, + e.format, + e.type, + e.anisotropy, + e.encoding + )), + (this.texture.generateMipmaps = + void 0 !== e.generateMipmaps && e.generateMipmaps), + (this.texture.minFilter = void 0 !== e.minFilter ? e.minFilter : g), + (this.texture._needsFlipEnvMap = !1); + } + fromEquirectangularTexture(t, e) { + (this.texture.type = e.type), + (this.texture.format = E), + (this.texture.encoding = e.encoding), + (this.texture.generateMipmaps = e.generateMipmaps), + (this.texture.minFilter = e.minFilter), + (this.texture.magFilter = e.magFilter); + const n = { + uniforms: { tEquirect: { value: null } }, + vertexShader: + '\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t', + fragmentShader: + '\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t', + }, + i = new qn(5, 5, 5), + r = new Jn({ + name: 'CubemapFromEquirect', + uniforms: Xn(n.uniforms), + vertexShader: n.vertexShader, + fragmentShader: n.fragmentShader, + side: 1, + blending: 0, + }); + r.uniforms.tEquirect.value = e; + const s = new Wn(i, r), + a = e.minFilter; + e.minFilter === y && (e.minFilter = g); + return ( + new ti(1, 10, this).update(t, s), + (e.minFilter = a), + s.geometry.dispose(), + s.material.dispose(), + this + ); + } + clear(t, e, n, i) { + const r = t.getRenderTarget(); + for (let r = 0; r < 6; r++) t.setRenderTarget(this, r), t.clear(e, n, i); + t.setRenderTarget(r); + } + } + ni.prototype.isWebGLCubeRenderTarget = !0; + class ii extends bt { + constructor(t, e, n, i, r, s, a, o, l, c, h, u) { + super(null, s, a, o, l, c, i, r, h, u), + (this.image = { data: t || null, width: e || 1, height: n || 1 }), + (this.magFilter = void 0 !== l ? l : p), + (this.minFilter = void 0 !== c ? c : p), + (this.generateMipmaps = !1), + (this.flipY = !1), + (this.unpackAlignment = 1), + (this.needsUpdate = !0); + } + } + ii.prototype.isDataTexture = !0; + const ri = new Jt(), + si = new Lt(); + class ai { + constructor( + t = new Ne(), + e = new Ne(), + n = new Ne(), + i = new Ne(), + r = new Ne(), + s = new Ne() + ) { + this.planes = [t, e, n, i, r, s]; + } + set(t, e, n, i, r, s) { + const a = this.planes; + return ( + a[0].copy(t), + a[1].copy(e), + a[2].copy(n), + a[3].copy(i), + a[4].copy(r), + a[5].copy(s), + this + ); + } + copy(t) { + const e = this.planes; + for (let n = 0; n < 6; n++) e[n].copy(t.planes[n]); + return this; + } + setFromProjectionMatrix(t) { + const e = this.planes, + n = t.elements, + i = n[0], + r = n[1], + s = n[2], + a = n[3], + o = n[4], + l = n[5], + c = n[6], + h = n[7], + u = n[8], + d = n[9], + p = n[10], + m = n[11], + f = n[12], + g = n[13], + v = n[14], + y = n[15]; + return ( + e[0].setComponents(a - i, h - o, m - u, y - f).normalize(), + e[1].setComponents(a + i, h + o, m + u, y + f).normalize(), + e[2].setComponents(a + r, h + l, m + d, y + g).normalize(), + e[3].setComponents(a - r, h - l, m - d, y - g).normalize(), + e[4].setComponents(a - s, h - c, m - p, y - v).normalize(), + e[5].setComponents(a + s, h + c, m + p, y + v).normalize(), + this + ); + } + intersectsObject(t) { + const e = t.geometry; + return ( + null === e.boundingSphere && e.computeBoundingSphere(), + ri.copy(e.boundingSphere).applyMatrix4(t.matrixWorld), + this.intersectsSphere(ri) + ); + } + intersectsSprite(t) { + return ( + ri.center.set(0, 0, 0), + (ri.radius = 0.7071067811865476), + ri.applyMatrix4(t.matrixWorld), + this.intersectsSphere(ri) + ); + } + intersectsSphere(t) { + const e = this.planes, + n = t.center, + i = -t.radius; + for (let t = 0; t < 6; t++) { + if (e[t].distanceToPoint(n) < i) return !1; + } + return !0; + } + intersectsBox(t) { + const e = this.planes; + for (let n = 0; n < 6; n++) { + const i = e[n]; + if ( + ((si.x = i.normal.x > 0 ? t.max.x : t.min.x), + (si.y = i.normal.y > 0 ? t.max.y : t.min.y), + (si.z = i.normal.z > 0 ? t.max.z : t.min.z), + i.distanceToPoint(si) < 0) + ) + return !1; + } + return !0; + } + containsPoint(t) { + const e = this.planes; + for (let n = 0; n < 6; n++) if (e[n].distanceToPoint(t) < 0) return !1; + return !0; + } + clone() { + return new this.constructor().copy(this); + } + } + function oi() { + let t = null, + e = !1, + n = null, + i = null; + function r(e, s) { + n(e, s), (i = t.requestAnimationFrame(r)); + } + return { + start: function () { + !0 !== e && null !== n && ((i = t.requestAnimationFrame(r)), (e = !0)); + }, + stop: function () { + t.cancelAnimationFrame(i), (e = !1); + }, + setAnimationLoop: function (t) { + n = t; + }, + setContext: function (e) { + t = e; + }, + }; + } + function li(t, e) { + const n = e.isWebGL2, + i = new WeakMap(); + return { + get: function (t) { + return t.isInterleavedBufferAttribute && (t = t.data), i.get(t); + }, + remove: function (e) { + e.isInterleavedBufferAttribute && (e = e.data); + const n = i.get(e); + n && (t.deleteBuffer(n.buffer), i.delete(e)); + }, + update: function (e, r) { + if (e.isGLBufferAttribute) { + const t = i.get(e); + return void ( + (!t || t.version < e.version) && + i.set(e, { + buffer: e.buffer, + type: e.type, + bytesPerElement: e.elementSize, + version: e.version, + }) + ); + } + e.isInterleavedBufferAttribute && (e = e.data); + const s = i.get(e); + void 0 === s + ? i.set( + e, + (function (e, i) { + const r = e.array, + s = e.usage, + a = t.createBuffer(); + t.bindBuffer(i, a), t.bufferData(i, r, s), e.onUploadCallback(); + let o = 5126; + return ( + r instanceof Float32Array + ? (o = 5126) + : r instanceof Float64Array + ? console.warn( + 'THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.' + ) + : r instanceof Uint16Array + ? e.isFloat16BufferAttribute + ? n + ? (o = 5131) + : console.warn( + 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' + ) + : (o = 5123) + : r instanceof Int16Array + ? (o = 5122) + : r instanceof Uint32Array + ? (o = 5125) + : r instanceof Int32Array + ? (o = 5124) + : r instanceof Int8Array + ? (o = 5120) + : r instanceof Uint8Array && (o = 5121), + { + buffer: a, + type: o, + bytesPerElement: r.BYTES_PER_ELEMENT, + version: e.version, + } + ); + })(e, r) + ) + : s.version < e.version && + (!(function (e, i, r) { + const s = i.array, + a = i.updateRange; + t.bindBuffer(r, e), + -1 === a.count + ? t.bufferSubData(r, 0, s) + : (n + ? t.bufferSubData( + r, + a.offset * s.BYTES_PER_ELEMENT, + s, + a.offset, + a.count + ) + : t.bufferSubData( + r, + a.offset * s.BYTES_PER_ELEMENT, + s.subarray(a.offset, a.offset + a.count) + ), + (a.count = -1)); + })(s.buffer, e, r), + (s.version = e.version)); + }, + }; + } + class ci extends En { + constructor(t = 1, e = 1, n = 1, i = 1) { + super(), + (this.type = 'PlaneGeometry'), + (this.parameters = { + width: t, + height: e, + widthSegments: n, + heightSegments: i, + }); + const r = t / 2, + s = e / 2, + a = Math.floor(n), + o = Math.floor(i), + l = a + 1, + c = o + 1, + h = t / a, + u = e / o, + d = [], + p = [], + m = [], + f = []; + for (let t = 0; t < c; t++) { + const e = t * u - s; + for (let n = 0; n < l; n++) { + const i = n * h - r; + p.push(i, -e, 0), m.push(0, 0, 1), f.push(n / a), f.push(1 - t / o); + } + } + for (let t = 0; t < o; t++) + for (let e = 0; e < a; e++) { + const n = e + l * t, + i = e + l * (t + 1), + r = e + 1 + l * (t + 1), + s = e + 1 + l * t; + d.push(n, i, s), d.push(i, r, s); + } + this.setIndex(d), + this.setAttribute('position', new mn(p, 3)), + this.setAttribute('normal', new mn(m, 3)), + this.setAttribute('uv', new mn(f, 2)); + } + } + const hi = { + alphamap_fragment: + '#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif', + alphamap_pars_fragment: + '#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif', + alphatest_fragment: + '#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif', + aomap_fragment: + '#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif', + aomap_pars_fragment: + '#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif', + begin_vertex: 'vec3 transformed = vec3( position );', + beginnormal_vertex: + 'vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif', + bsdfs: + 'vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif', + bumpmap_pars_fragment: + '#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif', + clipping_planes_fragment: + '#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif', + clipping_planes_pars_fragment: + '#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif', + clipping_planes_pars_vertex: + '#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif', + clipping_planes_vertex: + '#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif', + color_fragment: + '#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif', + color_pars_fragment: + '#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif', + color_pars_vertex: + '#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif', + color_vertex: + '#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif', + common: + '#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}', + cube_uv_reflection_fragment: + '#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif', + defaultnormal_vertex: + 'vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif', + displacementmap_pars_vertex: + '#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif', + displacementmap_vertex: + '#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif', + emissivemap_fragment: + '#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif', + emissivemap_pars_fragment: + '#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif', + encodings_fragment: 'gl_FragColor = linearToOutputTexel( gl_FragColor );', + encodings_pars_fragment: + '\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}', + envmap_fragment: + '#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif', + envmap_common_pars_fragment: + '#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif', + envmap_pars_fragment: + '#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif', + envmap_pars_vertex: + '#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif', + envmap_physical_pars_fragment: + '#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif', + envmap_vertex: + '#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif', + fog_vertex: '#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif', + fog_pars_vertex: '#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif', + fog_fragment: + '#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif', + fog_pars_fragment: + '#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif', + gradientmap_pars_fragment: + '#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}', + lightmap_fragment: + '#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif', + lightmap_pars_fragment: + '#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif', + lights_lambert_vertex: + 'vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif', + lights_pars_begin: + 'uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif', + lights_toon_fragment: + 'ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;', + lights_toon_pars_fragment: + 'varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)', + lights_phong_fragment: + 'BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;', + lights_phong_pars_fragment: + 'varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)', + lights_physical_fragment: + 'PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif', + lights_physical_pars_fragment: + 'struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}', + lights_fragment_begin: + '\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif', + lights_fragment_maps: + '#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif', + lights_fragment_end: + '#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif', + logdepthbuf_fragment: + '#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif', + logdepthbuf_pars_fragment: + '#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif', + logdepthbuf_pars_vertex: + '#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif', + logdepthbuf_vertex: + '#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif', + map_fragment: + '#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif', + map_pars_fragment: '#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif', + map_particle_fragment: + '#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif', + map_particle_pars_fragment: + '#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif', + metalnessmap_fragment: + 'float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif', + metalnessmap_pars_fragment: + '#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif', + morphnormal_vertex: + '#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif', + morphtarget_pars_vertex: + '#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif', + morphtarget_vertex: + '#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif', + normal_fragment_begin: + 'float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;', + normal_fragment_maps: + '#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif', + normalmap_pars_fragment: + '#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif', + clearcoat_normal_fragment_begin: + '#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif', + clearcoat_normal_fragment_maps: + '#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif', + clearcoat_pars_fragment: + '#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif', + packing: + 'vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}', + premultiplied_alpha_fragment: + '#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif', + project_vertex: + 'vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;', + dithering_fragment: + '#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif', + dithering_pars_fragment: + '#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif', + roughnessmap_fragment: + 'float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif', + roughnessmap_pars_fragment: + '#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif', + shadowmap_pars_fragment: + '#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif', + shadowmap_pars_vertex: + '#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif', + shadowmap_vertex: + '#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif', + shadowmask_pars_fragment: + 'float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}', + skinbase_vertex: + '#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif', + skinning_pars_vertex: + '#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif', + skinning_vertex: + '#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif', + skinnormal_vertex: + '#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif', + specularmap_fragment: + 'float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif', + specularmap_pars_fragment: + '#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif', + tonemapping_fragment: + '#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif', + tonemapping_pars_fragment: + '#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }', + transmissionmap_fragment: + '#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif', + transmissionmap_pars_fragment: + '#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif', + uv_pars_fragment: + '#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif', + uv_pars_vertex: + '#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif', + uv_vertex: + '#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif', + uv2_pars_fragment: + '#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif', + uv2_pars_vertex: + '#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif', + uv2_vertex: + '#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif', + worldpos_vertex: + '#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif', + background_frag: + 'uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}', + background_vert: + 'varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}', + cube_frag: + '#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}', + cube_vert: + 'varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}', + depth_frag: + '#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}', + depth_vert: + '#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}', + distanceRGBA_frag: + '#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}', + distanceRGBA_vert: + '#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}', + equirect_frag: + 'uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}', + equirect_vert: + 'varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}', + linedashed_frag: + 'uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}', + linedashed_vert: + 'uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshbasic_frag: + 'uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshbasic_vert: + '#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshlambert_frag: + 'uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshlambert_vert: + '#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshmatcap_frag: + '#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshmatcap_vert: + '#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}', + meshtoon_frag: + '#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshtoon_vert: + '#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}', + meshphong_frag: + '#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshphong_vert: + '#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshphysical_frag: + '#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + meshphysical_vert: + '#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}', + normal_frag: + '#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}', + normal_vert: + '#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}', + points_frag: + 'uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}', + points_vert: + 'uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}', + shadow_frag: + 'uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}', + shadow_vert: + '#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}', + sprite_frag: + 'uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}', + sprite_vert: + 'uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}', + }, + ui = { + common: { + diffuse: { value: new tn(15658734) }, + opacity: { value: 1 }, + map: { value: null }, + uvTransform: { value: new yt() }, + uv2Transform: { value: new yt() }, + alphaMap: { value: null }, + }, + specularmap: { specularMap: { value: null } }, + envmap: { + envMap: { value: null }, + flipEnvMap: { value: -1 }, + reflectivity: { value: 1 }, + refractionRatio: { value: 0.98 }, + maxMipLevel: { value: 0 }, + }, + aomap: { aoMap: { value: null }, aoMapIntensity: { value: 1 } }, + lightmap: { lightMap: { value: null }, lightMapIntensity: { value: 1 } }, + emissivemap: { emissiveMap: { value: null } }, + bumpmap: { bumpMap: { value: null }, bumpScale: { value: 1 } }, + normalmap: { + normalMap: { value: null }, + normalScale: { value: new vt(1, 1) }, + }, + displacementmap: { + displacementMap: { value: null }, + displacementScale: { value: 1 }, + displacementBias: { value: 0 }, + }, + roughnessmap: { roughnessMap: { value: null } }, + metalnessmap: { metalnessMap: { value: null } }, + gradientmap: { gradientMap: { value: null } }, + fog: { + fogDensity: { value: 25e-5 }, + fogNear: { value: 1 }, + fogFar: { value: 2e3 }, + fogColor: { value: new tn(16777215) }, + }, + lights: { + ambientLightColor: { value: [] }, + lightProbe: { value: [] }, + directionalLights: { + value: [], + properties: { direction: {}, color: {} }, + }, + directionalLightShadows: { + value: [], + properties: { + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {}, + }, + }, + directionalShadowMap: { value: [] }, + directionalShadowMatrix: { value: [] }, + spotLights: { + value: [], + properties: { + color: {}, + position: {}, + direction: {}, + distance: {}, + coneCos: {}, + penumbraCos: {}, + decay: {}, + }, + }, + spotLightShadows: { + value: [], + properties: { + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {}, + }, + }, + spotShadowMap: { value: [] }, + spotShadowMatrix: { value: [] }, + pointLights: { + value: [], + properties: { color: {}, position: {}, decay: {}, distance: {} }, + }, + pointLightShadows: { + value: [], + properties: { + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {}, + shadowCameraNear: {}, + shadowCameraFar: {}, + }, + }, + pointShadowMap: { value: [] }, + pointShadowMatrix: { value: [] }, + hemisphereLights: { + value: [], + properties: { direction: {}, skyColor: {}, groundColor: {} }, + }, + rectAreaLights: { + value: [], + properties: { color: {}, position: {}, width: {}, height: {} }, + }, + ltc_1: { value: null }, + ltc_2: { value: null }, + }, + points: { + diffuse: { value: new tn(15658734) }, + opacity: { value: 1 }, + size: { value: 1 }, + scale: { value: 1 }, + map: { value: null }, + alphaMap: { value: null }, + uvTransform: { value: new yt() }, + }, + sprite: { + diffuse: { value: new tn(15658734) }, + opacity: { value: 1 }, + center: { value: new vt(0.5, 0.5) }, + rotation: { value: 0 }, + map: { value: null }, + alphaMap: { value: null }, + uvTransform: { value: new yt() }, + }, + }, + di = { + basic: { + uniforms: Yn([ + ui.common, + ui.specularmap, + ui.envmap, + ui.aomap, + ui.lightmap, + ui.fog, + ]), + vertexShader: hi.meshbasic_vert, + fragmentShader: hi.meshbasic_frag, + }, + lambert: { + uniforms: Yn([ + ui.common, + ui.specularmap, + ui.envmap, + ui.aomap, + ui.lightmap, + ui.emissivemap, + ui.fog, + ui.lights, + { emissive: { value: new tn(0) } }, + ]), + vertexShader: hi.meshlambert_vert, + fragmentShader: hi.meshlambert_frag, + }, + phong: { + uniforms: Yn([ + ui.common, + ui.specularmap, + ui.envmap, + ui.aomap, + ui.lightmap, + ui.emissivemap, + ui.bumpmap, + ui.normalmap, + ui.displacementmap, + ui.fog, + ui.lights, + { + emissive: { value: new tn(0) }, + specular: { value: new tn(1118481) }, + shininess: { value: 30 }, + }, + ]), + vertexShader: hi.meshphong_vert, + fragmentShader: hi.meshphong_frag, + }, + standard: { + uniforms: Yn([ + ui.common, + ui.envmap, + ui.aomap, + ui.lightmap, + ui.emissivemap, + ui.bumpmap, + ui.normalmap, + ui.displacementmap, + ui.roughnessmap, + ui.metalnessmap, + ui.fog, + ui.lights, + { + emissive: { value: new tn(0) }, + roughness: { value: 1 }, + metalness: { value: 0 }, + envMapIntensity: { value: 1 }, + }, + ]), + vertexShader: hi.meshphysical_vert, + fragmentShader: hi.meshphysical_frag, + }, + toon: { + uniforms: Yn([ + ui.common, + ui.aomap, + ui.lightmap, + ui.emissivemap, + ui.bumpmap, + ui.normalmap, + ui.displacementmap, + ui.gradientmap, + ui.fog, + ui.lights, + { emissive: { value: new tn(0) } }, + ]), + vertexShader: hi.meshtoon_vert, + fragmentShader: hi.meshtoon_frag, + }, + matcap: { + uniforms: Yn([ + ui.common, + ui.bumpmap, + ui.normalmap, + ui.displacementmap, + ui.fog, + { matcap: { value: null } }, + ]), + vertexShader: hi.meshmatcap_vert, + fragmentShader: hi.meshmatcap_frag, + }, + points: { + uniforms: Yn([ui.points, ui.fog]), + vertexShader: hi.points_vert, + fragmentShader: hi.points_frag, + }, + dashed: { + uniforms: Yn([ + ui.common, + ui.fog, + { + scale: { value: 1 }, + dashSize: { value: 1 }, + totalSize: { value: 2 }, + }, + ]), + vertexShader: hi.linedashed_vert, + fragmentShader: hi.linedashed_frag, + }, + depth: { + uniforms: Yn([ui.common, ui.displacementmap]), + vertexShader: hi.depth_vert, + fragmentShader: hi.depth_frag, + }, + normal: { + uniforms: Yn([ + ui.common, + ui.bumpmap, + ui.normalmap, + ui.displacementmap, + { opacity: { value: 1 } }, + ]), + vertexShader: hi.normal_vert, + fragmentShader: hi.normal_frag, + }, + sprite: { + uniforms: Yn([ui.sprite, ui.fog]), + vertexShader: hi.sprite_vert, + fragmentShader: hi.sprite_frag, + }, + background: { + uniforms: { uvTransform: { value: new yt() }, t2D: { value: null } }, + vertexShader: hi.background_vert, + fragmentShader: hi.background_frag, + }, + cube: { + uniforms: Yn([ui.envmap, { opacity: { value: 1 } }]), + vertexShader: hi.cube_vert, + fragmentShader: hi.cube_frag, + }, + equirect: { + uniforms: { tEquirect: { value: null } }, + vertexShader: hi.equirect_vert, + fragmentShader: hi.equirect_frag, + }, + distanceRGBA: { + uniforms: Yn([ + ui.common, + ui.displacementmap, + { + referencePosition: { value: new Lt() }, + nearDistance: { value: 1 }, + farDistance: { value: 1e3 }, + }, + ]), + vertexShader: hi.distanceRGBA_vert, + fragmentShader: hi.distanceRGBA_frag, + }, + shadow: { + uniforms: Yn([ + ui.lights, + ui.fog, + { color: { value: new tn(0) }, opacity: { value: 1 } }, + ]), + vertexShader: hi.shadow_vert, + fragmentShader: hi.shadow_frag, + }, + }; + function pi(t, e, n, i, r) { + const s = new tn(0); + let a, + o, + c = 0, + h = null, + u = 0, + d = null; + function p(t, e) { + n.buffers.color.setClear(t.r, t.g, t.b, e, r); + } + return { + getClearColor: function () { + return s; + }, + setClearColor: function (t, e = 1) { + s.set(t), (c = e), p(s, c); + }, + getClearAlpha: function () { + return c; + }, + setClearAlpha: function (t) { + (c = t), p(s, c); + }, + render: function (n, r, m, f) { + let g = !0 === r.isScene ? r.background : null; + g && g.isTexture && (g = e.get(g)); + const v = t.xr, + y = v.getSession && v.getSession(); + y && 'additive' === y.environmentBlendMode && (g = null), + null === g ? p(s, c) : g && g.isColor && (p(g, 1), (f = !0)), + (t.autoClear || f) && + t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), + g && (g.isCubeTexture || g.mapping === l) + ? (void 0 === o && + ((o = new Wn( + new qn(1, 1, 1), + new Jn({ + name: 'BackgroundCubeMaterial', + uniforms: Xn(di.cube.uniforms), + vertexShader: di.cube.vertexShader, + fragmentShader: di.cube.fragmentShader, + side: 1, + depthTest: !1, + depthWrite: !1, + fog: !1, + }) + )), + o.geometry.deleteAttribute('normal'), + o.geometry.deleteAttribute('uv'), + (o.onBeforeRender = function (t, e, n) { + this.matrixWorld.copyPosition(n.matrixWorld); + }), + Object.defineProperty(o.material, 'envMap', { + get: function () { + return this.uniforms.envMap.value; + }, + }), + i.update(o)), + (o.material.uniforms.envMap.value = g), + (o.material.uniforms.flipEnvMap.value = + g.isCubeTexture && g._needsFlipEnvMap ? -1 : 1), + (h === g && u === g.version && d === t.toneMapping) || + ((o.material.needsUpdate = !0), + (h = g), + (u = g.version), + (d = t.toneMapping)), + n.unshift(o, o.geometry, o.material, 0, 0, null)) + : g && + g.isTexture && + (void 0 === a && + ((a = new Wn( + new ci(2, 2), + new Jn({ + name: 'BackgroundMaterial', + uniforms: Xn(di.background.uniforms), + vertexShader: di.background.vertexShader, + fragmentShader: di.background.fragmentShader, + side: 0, + depthTest: !1, + depthWrite: !1, + fog: !1, + }) + )), + a.geometry.deleteAttribute('normal'), + Object.defineProperty(a.material, 'map', { + get: function () { + return this.uniforms.t2D.value; + }, + }), + i.update(a)), + (a.material.uniforms.t2D.value = g), + !0 === g.matrixAutoUpdate && g.updateMatrix(), + a.material.uniforms.uvTransform.value.copy(g.matrix), + (h === g && u === g.version && d === t.toneMapping) || + ((a.material.needsUpdate = !0), + (h = g), + (u = g.version), + (d = t.toneMapping)), + n.unshift(a, a.geometry, a.material, 0, 0, null)); + }, + }; + } + function mi(t, e, n, i) { + const r = t.getParameter(34921), + s = i.isWebGL2 ? null : e.get('OES_vertex_array_object'), + a = i.isWebGL2 || null !== s, + o = {}, + l = d(null); + let c = l; + function h(e) { + return i.isWebGL2 ? t.bindVertexArray(e) : s.bindVertexArrayOES(e); + } + function u(e) { + return i.isWebGL2 ? t.deleteVertexArray(e) : s.deleteVertexArrayOES(e); + } + function d(t) { + const e = [], + n = [], + i = []; + for (let t = 0; t < r; t++) (e[t] = 0), (n[t] = 0), (i[t] = 0); + return { + geometry: null, + program: null, + wireframe: !1, + newAttributes: e, + enabledAttributes: n, + attributeDivisors: i, + object: t, + attributes: {}, + index: null, + }; + } + function p() { + const t = c.newAttributes; + for (let e = 0, n = t.length; e < n; e++) t[e] = 0; + } + function m(t) { + f(t, 0); + } + function f(n, r) { + const s = c.newAttributes, + a = c.enabledAttributes, + o = c.attributeDivisors; + if ( + ((s[n] = 1), + 0 === a[n] && (t.enableVertexAttribArray(n), (a[n] = 1)), + o[n] !== r) + ) { + (i.isWebGL2 ? t : e.get('ANGLE_instanced_arrays'))[ + i.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE' + ](n, r), + (o[n] = r); + } + } + function g() { + const e = c.newAttributes, + n = c.enabledAttributes; + for (let i = 0, r = n.length; i < r; i++) + n[i] !== e[i] && (t.disableVertexAttribArray(i), (n[i] = 0)); + } + function v(e, n, r, s, a, o) { + !0 !== i.isWebGL2 || (5124 !== r && 5125 !== r) + ? t.vertexAttribPointer(e, n, r, s, a, o) + : t.vertexAttribIPointer(e, n, r, a, o); + } + function y() { + x(), c !== l && ((c = l), h(c.object)); + } + function x() { + (l.geometry = null), (l.program = null), (l.wireframe = !1); + } + return { + setup: function (r, l, u, y, x) { + let _ = !1; + if (a) { + const e = (function (e, n, r) { + const a = !0 === r.wireframe; + let l = o[e.id]; + void 0 === l && ((l = {}), (o[e.id] = l)); + let c = l[n.id]; + void 0 === c && ((c = {}), (l[n.id] = c)); + let h = c[a]; + void 0 === h && + ((h = d( + i.isWebGL2 ? t.createVertexArray() : s.createVertexArrayOES() + )), + (c[a] = h)); + return h; + })(y, u, l); + c !== e && ((c = e), h(c.object)), + (_ = (function (t, e) { + const n = c.attributes, + i = t.attributes; + let r = 0; + for (const t in i) { + const e = n[t], + s = i[t]; + if (void 0 === e) return !0; + if (e.attribute !== s) return !0; + if (e.data !== s.data) return !0; + r++; + } + return c.attributesNum !== r || c.index !== e; + })(y, x)), + _ && + (function (t, e) { + const n = {}, + i = t.attributes; + let r = 0; + for (const t in i) { + const e = i[t], + s = {}; + (s.attribute = e), + e.data && (s.data = e.data), + (n[t] = s), + r++; + } + (c.attributes = n), (c.attributesNum = r), (c.index = e); + })(y, x); + } else { + const t = !0 === l.wireframe; + (c.geometry === y.id && c.program === u.id && c.wireframe === t) || + ((c.geometry = y.id), + (c.program = u.id), + (c.wireframe = t), + (_ = !0)); + } + !0 === r.isInstancedMesh && (_ = !0), + null !== x && n.update(x, 34963), + _ && + (!(function (r, s, a, o) { + if ( + !1 === i.isWebGL2 && + (r.isInstancedMesh || o.isInstancedBufferGeometry) && + null === e.get('ANGLE_instanced_arrays') + ) + return; + p(); + const l = o.attributes, + c = a.getAttributes(), + h = s.defaultAttributeValues; + for (const e in c) { + const i = c[e]; + if (i >= 0) { + const s = l[e]; + if (void 0 !== s) { + const e = s.normalized, + r = s.itemSize, + a = n.get(s); + if (void 0 === a) continue; + const l = a.buffer, + c = a.type, + h = a.bytesPerElement; + if (s.isInterleavedBufferAttribute) { + const n = s.data, + a = n.stride, + u = s.offset; + n && n.isInstancedInterleavedBuffer + ? (f(i, n.meshPerAttribute), + void 0 === o._maxInstanceCount && + (o._maxInstanceCount = + n.meshPerAttribute * n.count)) + : m(i), + t.bindBuffer(34962, l), + v(i, r, c, e, a * h, u * h); + } else + s.isInstancedBufferAttribute + ? (f(i, s.meshPerAttribute), + void 0 === o._maxInstanceCount && + (o._maxInstanceCount = + s.meshPerAttribute * s.count)) + : m(i), + t.bindBuffer(34962, l), + v(i, r, c, e, 0, 0); + } else if ('instanceMatrix' === e) { + const e = n.get(r.instanceMatrix); + if (void 0 === e) continue; + const s = e.buffer, + a = e.type; + f(i + 0, 1), + f(i + 1, 1), + f(i + 2, 1), + f(i + 3, 1), + t.bindBuffer(34962, s), + t.vertexAttribPointer(i + 0, 4, a, !1, 64, 0), + t.vertexAttribPointer(i + 1, 4, a, !1, 64, 16), + t.vertexAttribPointer(i + 2, 4, a, !1, 64, 32), + t.vertexAttribPointer(i + 3, 4, a, !1, 64, 48); + } else if ('instanceColor' === e) { + const e = n.get(r.instanceColor); + if (void 0 === e) continue; + const s = e.buffer, + a = e.type; + f(i, 1), + t.bindBuffer(34962, s), + t.vertexAttribPointer(i, 3, a, !1, 12, 0); + } else if (void 0 !== h) { + const n = h[e]; + if (void 0 !== n) + switch (n.length) { + case 2: + t.vertexAttrib2fv(i, n); + break; + case 3: + t.vertexAttrib3fv(i, n); + break; + case 4: + t.vertexAttrib4fv(i, n); + break; + default: + t.vertexAttrib1fv(i, n); + } + } + } + } + g(); + })(r, l, u, y), + null !== x && t.bindBuffer(34963, n.get(x).buffer)); + }, + reset: y, + resetDefaultState: x, + dispose: function () { + y(); + for (const t in o) { + const e = o[t]; + for (const t in e) { + const n = e[t]; + for (const t in n) u(n[t].object), delete n[t]; + delete e[t]; + } + delete o[t]; + } + }, + releaseStatesOfGeometry: function (t) { + if (void 0 === o[t.id]) return; + const e = o[t.id]; + for (const t in e) { + const n = e[t]; + for (const t in n) u(n[t].object), delete n[t]; + delete e[t]; + } + delete o[t.id]; + }, + releaseStatesOfProgram: function (t) { + for (const e in o) { + const n = o[e]; + if (void 0 === n[t.id]) continue; + const i = n[t.id]; + for (const t in i) u(i[t].object), delete i[t]; + delete n[t.id]; + } + }, + initAttributes: p, + enableAttribute: m, + disableUnusedAttributes: g, + }; + } + function fi(t, e, n, i) { + const r = i.isWebGL2; + let s; + (this.setMode = function (t) { + s = t; + }), + (this.render = function (e, i) { + t.drawArrays(s, e, i), n.update(i, s, 1); + }), + (this.renderInstances = function (i, a, o) { + if (0 === o) return; + let l, c; + if (r) (l = t), (c = 'drawArraysInstanced'); + else if ( + ((l = e.get('ANGLE_instanced_arrays')), + (c = 'drawArraysInstancedANGLE'), + null === l) + ) + return void console.error( + 'THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' + ); + l[c](s, i, a, o), n.update(a, s, o); + }); + } + function gi(t, e, n) { + let i; + function r(e) { + if ('highp' === e) { + if ( + t.getShaderPrecisionFormat(35633, 36338).precision > 0 && + t.getShaderPrecisionFormat(35632, 36338).precision > 0 + ) + return 'highp'; + e = 'mediump'; + } + return 'mediump' === e && + t.getShaderPrecisionFormat(35633, 36337).precision > 0 && + t.getShaderPrecisionFormat(35632, 36337).precision > 0 + ? 'mediump' + : 'lowp'; + } + const s = + ('undefined' != typeof WebGL2RenderingContext && + t instanceof WebGL2RenderingContext) || + ('undefined' != typeof WebGL2ComputeRenderingContext && + t instanceof WebGL2ComputeRenderingContext); + let a = void 0 !== n.precision ? n.precision : 'highp'; + const o = r(a); + o !== a && + (console.warn( + 'THREE.WebGLRenderer:', + a, + 'not supported, using', + o, + 'instead.' + ), + (a = o)); + const l = !0 === n.logarithmicDepthBuffer, + c = t.getParameter(34930), + h = t.getParameter(35660), + u = t.getParameter(3379), + d = t.getParameter(34076), + p = t.getParameter(34921), + m = t.getParameter(36347), + f = t.getParameter(36348), + g = t.getParameter(36349), + v = h > 0, + y = s || e.has('OES_texture_float'); + return { + isWebGL2: s, + getMaxAnisotropy: function () { + if (void 0 !== i) return i; + if (!0 === e.has('EXT_texture_filter_anisotropic')) { + const n = e.get('EXT_texture_filter_anisotropic'); + i = t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT); + } else i = 0; + return i; + }, + getMaxPrecision: r, + precision: a, + logarithmicDepthBuffer: l, + maxTextures: c, + maxVertexTextures: h, + maxTextureSize: u, + maxCubemapSize: d, + maxAttributes: p, + maxVertexUniforms: m, + maxVaryings: f, + maxFragmentUniforms: g, + vertexTextures: v, + floatFragmentTextures: y, + floatVertexTextures: v && y, + maxSamples: s ? t.getParameter(36183) : 0, + }; + } + function vi(t) { + const e = this; + let n = null, + i = 0, + r = !1, + s = !1; + const a = new Ne(), + o = new yt(), + l = { value: null, needsUpdate: !1 }; + function c() { + l.value !== n && ((l.value = n), (l.needsUpdate = i > 0)), + (e.numPlanes = i), + (e.numIntersection = 0); + } + function h(t, n, i, r) { + const s = null !== t ? t.length : 0; + let c = null; + if (0 !== s) { + if (((c = l.value), !0 !== r || null === c)) { + const e = i + 4 * s, + r = n.matrixWorldInverse; + o.getNormalMatrix(r), + (null === c || c.length < e) && (c = new Float32Array(e)); + for (let e = 0, n = i; e !== s; ++e, n += 4) + a.copy(t[e]).applyMatrix4(r, o), + a.normal.toArray(c, n), + (c[n + 3] = a.constant); + } + (l.value = c), (l.needsUpdate = !0); + } + return (e.numPlanes = s), (e.numIntersection = 0), c; + } + (this.uniform = l), + (this.numPlanes = 0), + (this.numIntersection = 0), + (this.init = function (t, e, s) { + const a = 0 !== t.length || e || 0 !== i || r; + return (r = e), (n = h(t, s, 0)), (i = t.length), a; + }), + (this.beginShadows = function () { + (s = !0), h(null); + }), + (this.endShadows = function () { + (s = !1), c(); + }), + (this.setState = function (e, a, o) { + const u = e.clippingPlanes, + d = e.clipIntersection, + p = e.clipShadows, + m = t.get(e); + if (!r || null === u || 0 === u.length || (s && !p)) s ? h(null) : c(); + else { + const t = s ? 0 : i, + e = 4 * t; + let r = m.clippingState || null; + (l.value = r), (r = h(u, a, e, o)); + for (let t = 0; t !== e; ++t) r[t] = n[t]; + (m.clippingState = r), + (this.numIntersection = d ? this.numPlanes : 0), + (this.numPlanes += t); + } + }); + } + function yi(t) { + let e = new WeakMap(); + function n(t, e) { + return e === a ? (t.mapping = r) : e === o && (t.mapping = s), t; + } + function i(t) { + const n = t.target; + n.removeEventListener('dispose', i); + const r = e.get(n); + void 0 !== r && (e.delete(n), r.dispose()); + } + return { + get: function (r) { + if (r && r.isTexture) { + const s = r.mapping; + if (s === a || s === o) { + if (e.has(r)) { + return n(e.get(r).texture, r.mapping); + } + { + const s = r.image; + if (s && s.height > 0) { + const a = t.getRenderTarget(), + o = new ni(s.height / 2); + return ( + o.fromEquirectangularTexture(t, r), + e.set(r, o), + t.setRenderTarget(a), + r.addEventListener('dispose', i), + n(o.texture, r.mapping) + ); + } + return null; + } + } + } + return r; + }, + dispose: function () { + e = new WeakMap(); + }, + }; + } + function xi(t) { + const e = {}; + function n(n) { + if (void 0 !== e[n]) return e[n]; + let i; + switch (n) { + case 'WEBGL_depth_texture': + i = + t.getExtension('WEBGL_depth_texture') || + t.getExtension('MOZ_WEBGL_depth_texture') || + t.getExtension('WEBKIT_WEBGL_depth_texture'); + break; + case 'EXT_texture_filter_anisotropic': + i = + t.getExtension('EXT_texture_filter_anisotropic') || + t.getExtension('MOZ_EXT_texture_filter_anisotropic') || + t.getExtension('WEBKIT_EXT_texture_filter_anisotropic'); + break; + case 'WEBGL_compressed_texture_s3tc': + i = + t.getExtension('WEBGL_compressed_texture_s3tc') || + t.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || + t.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc'); + break; + case 'WEBGL_compressed_texture_pvrtc': + i = + t.getExtension('WEBGL_compressed_texture_pvrtc') || + t.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'); + break; + default: + i = t.getExtension(n); + } + return (e[n] = i), i; + } + return { + has: function (t) { + return null !== n(t); + }, + init: function (t) { + t.isWebGL2 + ? n('EXT_color_buffer_float') + : (n('WEBGL_depth_texture'), + n('OES_texture_float'), + n('OES_texture_half_float'), + n('OES_texture_half_float_linear'), + n('OES_standard_derivatives'), + n('OES_element_index_uint'), + n('OES_vertex_array_object'), + n('ANGLE_instanced_arrays')), + n('OES_texture_float_linear'), + n('EXT_color_buffer_half_float'); + }, + get: function (t) { + const e = n(t); + return ( + null === e && + console.warn( + 'THREE.WebGLRenderer: ' + t + ' extension not supported.' + ), + e + ); + }, + }; + } + function _i(t, e, n, i) { + const r = {}, + s = new WeakMap(); + function a(t) { + const o = t.target; + null !== o.index && e.remove(o.index); + for (const t in o.attributes) e.remove(o.attributes[t]); + o.removeEventListener('dispose', a), delete r[o.id]; + const l = s.get(o); + l && (e.remove(l), s.delete(o)), + i.releaseStatesOfGeometry(o), + !0 === o.isInstancedBufferGeometry && delete o._maxInstanceCount, + n.memory.geometries--; + } + function o(t) { + const n = [], + i = t.index, + r = t.attributes.position; + let a = 0; + if (null !== i) { + const t = i.array; + a = i.version; + for (let e = 0, i = t.length; e < i; e += 3) { + const i = t[e + 0], + r = t[e + 1], + s = t[e + 2]; + n.push(i, r, r, s, s, i); + } + } else { + const t = r.array; + a = r.version; + for (let e = 0, i = t.length / 3 - 1; e < i; e += 3) { + const t = e + 0, + i = e + 1, + r = e + 2; + n.push(t, i, i, r, r, t); + } + } + const o = new (gn(n) > 65535 ? dn : hn)(n, 1); + o.version = a; + const l = s.get(t); + l && e.remove(l), s.set(t, o); + } + return { + get: function (t, e) { + return ( + !0 === r[e.id] || + (e.addEventListener('dispose', a), + (r[e.id] = !0), + n.memory.geometries++), + e + ); + }, + update: function (t) { + const n = t.attributes; + for (const t in n) e.update(n[t], 34962); + const i = t.morphAttributes; + for (const t in i) { + const n = i[t]; + for (let t = 0, i = n.length; t < i; t++) e.update(n[t], 34962); + } + }, + getWireframeAttribute: function (t) { + const e = s.get(t); + if (e) { + const n = t.index; + null !== n && e.version < n.version && o(t); + } else o(t); + return s.get(t); + }, + }; + } + function wi(t, e, n, i) { + const r = i.isWebGL2; + let s, a, o; + (this.setMode = function (t) { + s = t; + }), + (this.setIndex = function (t) { + (a = t.type), (o = t.bytesPerElement); + }), + (this.render = function (e, i) { + t.drawElements(s, i, a, e * o), n.update(i, s, 1); + }), + (this.renderInstances = function (i, l, c) { + if (0 === c) return; + let h, u; + if (r) (h = t), (u = 'drawElementsInstanced'); + else if ( + ((h = e.get('ANGLE_instanced_arrays')), + (u = 'drawElementsInstancedANGLE'), + null === h) + ) + return void console.error( + 'THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' + ); + h[u](s, l, a, i * o, c), n.update(l, s, c); + }); + } + function bi(t) { + const e = { frame: 0, calls: 0, triangles: 0, points: 0, lines: 0 }; + return { + memory: { geometries: 0, textures: 0 }, + render: e, + programs: null, + autoReset: !0, + reset: function () { + e.frame++, + (e.calls = 0), + (e.triangles = 0), + (e.points = 0), + (e.lines = 0); + }, + update: function (t, n, i) { + switch ((e.calls++, n)) { + case 4: + e.triangles += i * (t / 3); + break; + case 1: + e.lines += i * (t / 2); + break; + case 3: + e.lines += i * (t - 1); + break; + case 2: + e.lines += i * t; + break; + case 0: + e.points += i * t; + break; + default: + console.error('THREE.WebGLInfo: Unknown draw mode:', n); + } + }, + }; + } + function Mi(t, e) { + return t[0] - e[0]; + } + function Si(t, e) { + return Math.abs(e[1]) - Math.abs(t[1]); + } + function Ti(t) { + const e = {}, + n = new Float32Array(8), + i = []; + for (let t = 0; t < 8; t++) i[t] = [t, 0]; + return { + update: function (r, s, a, o) { + const l = r.morphTargetInfluences, + c = void 0 === l ? 0 : l.length; + let h = e[s.id]; + if (void 0 === h) { + h = []; + for (let t = 0; t < c; t++) h[t] = [t, 0]; + e[s.id] = h; + } + for (let t = 0; t < c; t++) { + const e = h[t]; + (e[0] = t), (e[1] = l[t]); + } + h.sort(Si); + for (let t = 0; t < 8; t++) + t < c && h[t][1] + ? ((i[t][0] = h[t][0]), (i[t][1] = h[t][1])) + : ((i[t][0] = Number.MAX_SAFE_INTEGER), (i[t][1] = 0)); + i.sort(Mi); + const u = a.morphTargets && s.morphAttributes.position, + d = a.morphNormals && s.morphAttributes.normal; + let p = 0; + for (let t = 0; t < 8; t++) { + const e = i[t], + r = e[0], + a = e[1]; + r !== Number.MAX_SAFE_INTEGER && a + ? (u && + s.getAttribute('morphTarget' + t) !== u[r] && + s.setAttribute('morphTarget' + t, u[r]), + d && + s.getAttribute('morphNormal' + t) !== d[r] && + s.setAttribute('morphNormal' + t, d[r]), + (n[t] = a), + (p += a)) + : (u && + !0 === s.hasAttribute('morphTarget' + t) && + s.deleteAttribute('morphTarget' + t), + d && + !0 === s.hasAttribute('morphNormal' + t) && + s.deleteAttribute('morphNormal' + t), + (n[t] = 0)); + } + const m = s.morphTargetsRelative ? 1 : 1 - p; + o.getUniforms().setValue(t, 'morphTargetBaseInfluence', m), + o.getUniforms().setValue(t, 'morphTargetInfluences', n); + }, + }; + } + function Ei(t, e, n, i) { + let r = new WeakMap(); + function s(t) { + const e = t.target; + e.removeEventListener('dispose', s), + n.remove(e.instanceMatrix), + null !== e.instanceColor && n.remove(e.instanceColor); + } + return { + update: function (t) { + const a = i.render.frame, + o = t.geometry, + l = e.get(t, o); + return ( + r.get(l) !== a && (e.update(l), r.set(l, a)), + t.isInstancedMesh && + (!1 === t.hasEventListener('dispose', s) && + t.addEventListener('dispose', s), + n.update(t.instanceMatrix, 34962), + null !== t.instanceColor && n.update(t.instanceColor, 34962)), + l + ); + }, + dispose: function () { + r = new WeakMap(); + }, + }; + } + di.physical = { + uniforms: Yn([ + di.standard.uniforms, + { + clearcoat: { value: 0 }, + clearcoatMap: { value: null }, + clearcoatRoughness: { value: 0 }, + clearcoatRoughnessMap: { value: null }, + clearcoatNormalScale: { value: new vt(1, 1) }, + clearcoatNormalMap: { value: null }, + sheen: { value: new tn(0) }, + transmission: { value: 0 }, + transmissionMap: { value: null }, + }, + ]), + vertexShader: hi.meshphysical_vert, + fragmentShader: hi.meshphysical_frag, + }; + class Ai extends bt { + constructor(t = null, e = 1, n = 1, i = 1) { + super(null), + (this.image = { data: t, width: e, height: n, depth: i }), + (this.magFilter = p), + (this.minFilter = p), + (this.wrapR = u), + (this.generateMipmaps = !1), + (this.flipY = !1), + (this.unpackAlignment = 1), + (this.needsUpdate = !0); + } + } + Ai.prototype.isDataTexture2DArray = !0; + class Li extends bt { + constructor(t = null, e = 1, n = 1, i = 1) { + super(null), + (this.image = { data: t, width: e, height: n, depth: i }), + (this.magFilter = p), + (this.minFilter = p), + (this.wrapR = u), + (this.generateMipmaps = !1), + (this.flipY = !1), + (this.unpackAlignment = 1), + (this.needsUpdate = !0); + } + } + Li.prototype.isDataTexture3D = !0; + const Ri = new bt(), + Ci = new Ai(), + Pi = new Li(), + Di = new ei(), + Ii = [], + Ni = [], + Bi = new Float32Array(16), + zi = new Float32Array(9), + Fi = new Float32Array(4); + function Oi(t, e, n) { + const i = t[0]; + if (i <= 0 || i > 0) return t; + const r = e * n; + let s = Ii[r]; + if ((void 0 === s && ((s = new Float32Array(r)), (Ii[r] = s)), 0 !== e)) { + i.toArray(s, 0); + for (let i = 1, r = 0; i !== e; ++i) (r += n), t[i].toArray(s, r); + } + return s; + } + function Hi(t, e) { + if (t.length !== e.length) return !1; + for (let n = 0, i = t.length; n < i; n++) if (t[n] !== e[n]) return !1; + return !0; + } + function Gi(t, e) { + for (let n = 0, i = e.length; n < i; n++) t[n] = e[n]; + } + function Ui(t, e) { + let n = Ni[e]; + void 0 === n && ((n = new Int32Array(e)), (Ni[e] = n)); + for (let i = 0; i !== e; ++i) n[i] = t.allocateTextureUnit(); + return n; + } + function ki(t, e) { + const n = this.cache; + n[0] !== e && (t.uniform1f(this.addr, e), (n[0] = e)); + } + function Vi(t, e) { + const n = this.cache; + if (void 0 !== e.x) + (n[0] === e.x && n[1] === e.y) || + (t.uniform2f(this.addr, e.x, e.y), (n[0] = e.x), (n[1] = e.y)); + else { + if (Hi(n, e)) return; + t.uniform2fv(this.addr, e), Gi(n, e); + } + } + function Wi(t, e) { + const n = this.cache; + if (void 0 !== e.x) + (n[0] === e.x && n[1] === e.y && n[2] === e.z) || + (t.uniform3f(this.addr, e.x, e.y, e.z), + (n[0] = e.x), + (n[1] = e.y), + (n[2] = e.z)); + else if (void 0 !== e.r) + (n[0] === e.r && n[1] === e.g && n[2] === e.b) || + (t.uniform3f(this.addr, e.r, e.g, e.b), + (n[0] = e.r), + (n[1] = e.g), + (n[2] = e.b)); + else { + if (Hi(n, e)) return; + t.uniform3fv(this.addr, e), Gi(n, e); + } + } + function ji(t, e) { + const n = this.cache; + if (void 0 !== e.x) + (n[0] === e.x && n[1] === e.y && n[2] === e.z && n[3] === e.w) || + (t.uniform4f(this.addr, e.x, e.y, e.z, e.w), + (n[0] = e.x), + (n[1] = e.y), + (n[2] = e.z), + (n[3] = e.w)); + else { + if (Hi(n, e)) return; + t.uniform4fv(this.addr, e), Gi(n, e); + } + } + function qi(t, e) { + const n = this.cache, + i = e.elements; + if (void 0 === i) { + if (Hi(n, e)) return; + t.uniformMatrix2fv(this.addr, !1, e), Gi(n, e); + } else { + if (Hi(n, i)) return; + Fi.set(i), t.uniformMatrix2fv(this.addr, !1, Fi), Gi(n, i); + } + } + function Xi(t, e) { + const n = this.cache, + i = e.elements; + if (void 0 === i) { + if (Hi(n, e)) return; + t.uniformMatrix3fv(this.addr, !1, e), Gi(n, e); + } else { + if (Hi(n, i)) return; + zi.set(i), t.uniformMatrix3fv(this.addr, !1, zi), Gi(n, i); + } + } + function Yi(t, e) { + const n = this.cache, + i = e.elements; + if (void 0 === i) { + if (Hi(n, e)) return; + t.uniformMatrix4fv(this.addr, !1, e), Gi(n, e); + } else { + if (Hi(n, i)) return; + Bi.set(i), t.uniformMatrix4fv(this.addr, !1, Bi), Gi(n, i); + } + } + function Zi(t, e) { + const n = this.cache; + n[0] !== e && (t.uniform1i(this.addr, e), (n[0] = e)); + } + function Ji(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform2iv(this.addr, e), Gi(n, e)); + } + function Qi(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform3iv(this.addr, e), Gi(n, e)); + } + function Ki(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform4iv(this.addr, e), Gi(n, e)); + } + function $i(t, e) { + const n = this.cache; + n[0] !== e && (t.uniform1ui(this.addr, e), (n[0] = e)); + } + function tr(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform2uiv(this.addr, e), Gi(n, e)); + } + function er(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform3uiv(this.addr, e), Gi(n, e)); + } + function nr(t, e) { + const n = this.cache; + Hi(n, e) || (t.uniform4uiv(this.addr, e), Gi(n, e)); + } + function ir(t, e, n) { + const i = this.cache, + r = n.allocateTextureUnit(); + i[0] !== r && (t.uniform1i(this.addr, r), (i[0] = r)), + n.safeSetTexture2D(e || Ri, r); + } + function rr(t, e, n) { + const i = this.cache, + r = n.allocateTextureUnit(); + i[0] !== r && (t.uniform1i(this.addr, r), (i[0] = r)), + n.setTexture3D(e || Pi, r); + } + function sr(t, e, n) { + const i = this.cache, + r = n.allocateTextureUnit(); + i[0] !== r && (t.uniform1i(this.addr, r), (i[0] = r)), + n.safeSetTextureCube(e || Di, r); + } + function ar(t, e, n) { + const i = this.cache, + r = n.allocateTextureUnit(); + i[0] !== r && (t.uniform1i(this.addr, r), (i[0] = r)), + n.setTexture2DArray(e || Ci, r); + } + function or(t, e) { + t.uniform1fv(this.addr, e); + } + function lr(t, e) { + const n = Oi(e, this.size, 2); + t.uniform2fv(this.addr, n); + } + function cr(t, e) { + const n = Oi(e, this.size, 3); + t.uniform3fv(this.addr, n); + } + function hr(t, e) { + const n = Oi(e, this.size, 4); + t.uniform4fv(this.addr, n); + } + function ur(t, e) { + const n = Oi(e, this.size, 4); + t.uniformMatrix2fv(this.addr, !1, n); + } + function dr(t, e) { + const n = Oi(e, this.size, 9); + t.uniformMatrix3fv(this.addr, !1, n); + } + function pr(t, e) { + const n = Oi(e, this.size, 16); + t.uniformMatrix4fv(this.addr, !1, n); + } + function mr(t, e) { + t.uniform1iv(this.addr, e); + } + function fr(t, e) { + t.uniform2iv(this.addr, e); + } + function gr(t, e) { + t.uniform3iv(this.addr, e); + } + function vr(t, e) { + t.uniform4iv(this.addr, e); + } + function yr(t, e) { + t.uniform1uiv(this.addr, e); + } + function xr(t, e) { + t.uniform2uiv(this.addr, e); + } + function _r(t, e) { + t.uniform3uiv(this.addr, e); + } + function wr(t, e) { + t.uniform4uiv(this.addr, e); + } + function br(t, e, n) { + const i = e.length, + r = Ui(n, i); + t.uniform1iv(this.addr, r); + for (let t = 0; t !== i; ++t) n.safeSetTexture2D(e[t] || Ri, r[t]); + } + function Mr(t, e, n) { + const i = e.length, + r = Ui(n, i); + t.uniform1iv(this.addr, r); + for (let t = 0; t !== i; ++t) n.safeSetTextureCube(e[t] || Di, r[t]); + } + function Sr(t, e, n) { + (this.id = t), + (this.addr = n), + (this.cache = []), + (this.setValue = (function (t) { + switch (t) { + case 5126: + return ki; + case 35664: + return Vi; + case 35665: + return Wi; + case 35666: + return ji; + case 35674: + return qi; + case 35675: + return Xi; + case 35676: + return Yi; + case 5124: + case 35670: + return Zi; + case 35667: + case 35671: + return Ji; + case 35668: + case 35672: + return Qi; + case 35669: + case 35673: + return Ki; + case 5125: + return $i; + case 36294: + return tr; + case 36295: + return er; + case 36296: + return nr; + case 35678: + case 36198: + case 36298: + case 36306: + case 35682: + return ir; + case 35679: + case 36299: + case 36307: + return rr; + case 35680: + case 36300: + case 36308: + case 36293: + return sr; + case 36289: + case 36303: + case 36311: + case 36292: + return ar; + } + })(e.type)); + } + function Tr(t, e, n) { + (this.id = t), + (this.addr = n), + (this.cache = []), + (this.size = e.size), + (this.setValue = (function (t) { + switch (t) { + case 5126: + return or; + case 35664: + return lr; + case 35665: + return cr; + case 35666: + return hr; + case 35674: + return ur; + case 35675: + return dr; + case 35676: + return pr; + case 5124: + case 35670: + return mr; + case 35667: + case 35671: + return fr; + case 35668: + case 35672: + return gr; + case 35669: + case 35673: + return vr; + case 5125: + return yr; + case 36294: + return xr; + case 36295: + return _r; + case 36296: + return wr; + case 35678: + case 36198: + case 36298: + case 36306: + case 35682: + return br; + case 35680: + case 36300: + case 36308: + case 36293: + return Mr; + } + })(e.type)); + } + function Er(t) { + (this.id = t), (this.seq = []), (this.map = {}); + } + (Tr.prototype.updateCache = function (t) { + const e = this.cache; + t instanceof Float32Array && + e.length !== t.length && + (this.cache = new Float32Array(t.length)), + Gi(e, t); + }), + (Er.prototype.setValue = function (t, e, n) { + const i = this.seq; + for (let r = 0, s = i.length; r !== s; ++r) { + const s = i[r]; + s.setValue(t, e[s.id], n); + } + }); + const Ar = /(\w+)(\])?(\[|\.)?/g; + function Lr(t, e) { + t.seq.push(e), (t.map[e.id] = e); + } + function Rr(t, e, n) { + const i = t.name, + r = i.length; + for (Ar.lastIndex = 0; ; ) { + const s = Ar.exec(i), + a = Ar.lastIndex; + let o = s[1]; + const l = ']' === s[2], + c = s[3]; + if ((l && (o |= 0), void 0 === c || ('[' === c && a + 2 === r))) { + Lr(n, void 0 === c ? new Sr(o, t, e) : new Tr(o, t, e)); + break; + } + { + let t = n.map[o]; + void 0 === t && ((t = new Er(o)), Lr(n, t)), (n = t); + } + } + } + function Cr(t, e) { + (this.seq = []), (this.map = {}); + const n = t.getProgramParameter(e, 35718); + for (let i = 0; i < n; ++i) { + const n = t.getActiveUniform(e, i); + Rr(n, t.getUniformLocation(e, n.name), this); + } + } + function Pr(t, e, n) { + const i = t.createShader(e); + return t.shaderSource(i, n), t.compileShader(i), i; + } + (Cr.prototype.setValue = function (t, e, n, i) { + const r = this.map[e]; + void 0 !== r && r.setValue(t, n, i); + }), + (Cr.prototype.setOptional = function (t, e, n) { + const i = e[n]; + void 0 !== i && this.setValue(t, n, i); + }), + (Cr.upload = function (t, e, n, i) { + for (let r = 0, s = e.length; r !== s; ++r) { + const s = e[r], + a = n[s.id]; + !1 !== a.needsUpdate && s.setValue(t, a.value, i); + } + }), + (Cr.seqWithValue = function (t, e) { + const n = []; + for (let i = 0, r = t.length; i !== r; ++i) { + const r = t[i]; + r.id in e && n.push(r); + } + return n; + }); + let Dr = 0; + function Ir(t) { + switch (t) { + case X: + return ['Linear', '( value )']; + case Y: + return ['sRGB', '( value )']; + case J: + return ['RGBE', '( value )']; + case Q: + return ['RGBM', '( value, 7.0 )']; + case K: + return ['RGBM', '( value, 16.0 )']; + case $: + return ['RGBD', '( value, 256.0 )']; + case Z: + return ['Gamma', '( value, float( GAMMA_FACTOR ) )']; + case 3003: + return ['LogLuv', '( value )']; + default: + return ( + console.warn('THREE.WebGLProgram: Unsupported encoding:', t), + ['Linear', '( value )'] + ); + } + } + function Nr(t, e, n) { + const i = t.getShaderParameter(e, 35713), + r = t.getShaderInfoLog(e).trim(); + if (i && '' === r) return ''; + return ( + 'THREE.WebGLShader: gl.getShaderInfoLog() ' + + n + + '\n' + + r + + (function (t) { + const e = t.split('\n'); + for (let t = 0; t < e.length; t++) e[t] = t + 1 + ': ' + e[t]; + return e.join('\n'); + })(t.getShaderSource(e)) + ); + } + function Br(t, e) { + const n = Ir(e); + return ( + 'vec4 ' + + t + + '( vec4 value ) { return ' + + n[0] + + 'ToLinear' + + n[1] + + '; }' + ); + } + function zr(t, e) { + const n = Ir(e); + return ( + 'vec4 ' + t + '( vec4 value ) { return LinearTo' + n[0] + n[1] + '; }' + ); + } + function Fr(t, e) { + let n; + switch (e) { + case 1: + n = 'Linear'; + break; + case 2: + n = 'Reinhard'; + break; + case 3: + n = 'OptimizedCineon'; + break; + case 4: + n = 'ACESFilmic'; + break; + case 5: + n = 'Custom'; + break; + default: + console.warn('THREE.WebGLProgram: Unsupported toneMapping:', e), + (n = 'Linear'); + } + return ( + 'vec3 ' + t + '( vec3 color ) { return ' + n + 'ToneMapping( color ); }' + ); + } + function Or(t) { + return '' !== t; + } + function Hr(t, e) { + return t + .replace(/NUM_DIR_LIGHTS/g, e.numDirLights) + .replace(/NUM_SPOT_LIGHTS/g, e.numSpotLights) + .replace(/NUM_RECT_AREA_LIGHTS/g, e.numRectAreaLights) + .replace(/NUM_POINT_LIGHTS/g, e.numPointLights) + .replace(/NUM_HEMI_LIGHTS/g, e.numHemiLights) + .replace(/NUM_DIR_LIGHT_SHADOWS/g, e.numDirLightShadows) + .replace(/NUM_SPOT_LIGHT_SHADOWS/g, e.numSpotLightShadows) + .replace(/NUM_POINT_LIGHT_SHADOWS/g, e.numPointLightShadows); + } + function Gr(t, e) { + return t + .replace(/NUM_CLIPPING_PLANES/g, e.numClippingPlanes) + .replace( + /UNION_CLIPPING_PLANES/g, + e.numClippingPlanes - e.numClipIntersection + ); + } + const Ur = /^[ \t]*#include +<([\w\d./]+)>/gm; + function kr(t) { + return t.replace(Ur, Vr); + } + function Vr(t, e) { + const n = hi[e]; + if (void 0 === n) throw new Error('Can not resolve #include <' + e + '>'); + return kr(n); + } + const Wr = + /#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g, + jr = + /#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g; + function qr(t) { + return t.replace(jr, Yr).replace(Wr, Xr); + } + function Xr(t, e, n, i) { + return ( + console.warn( + 'WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.' + ), + Yr(t, e, n, i) + ); + } + function Yr(t, e, n, i) { + let r = ''; + for (let t = parseInt(e); t < parseInt(n); t++) + r += i + .replace(/\[\s*i\s*\]/g, '[ ' + t + ' ]') + .replace(/UNROLLED_LOOP_INDEX/g, t); + return r; + } + function Zr(t) { + let e = + 'precision ' + + t.precision + + ' float;\nprecision ' + + t.precision + + ' int;'; + return ( + 'highp' === t.precision + ? (e += '\n#define HIGH_PRECISION') + : 'mediump' === t.precision + ? (e += '\n#define MEDIUM_PRECISION') + : 'lowp' === t.precision && (e += '\n#define LOW_PRECISION'), + e + ); + } + function Jr(t, e, n, i) { + const a = t.getContext(), + o = n.defines; + let h = n.vertexShader, + u = n.fragmentShader; + const d = (function (t) { + let e = 'SHADOWMAP_TYPE_BASIC'; + return ( + 1 === t.shadowMapType + ? (e = 'SHADOWMAP_TYPE_PCF') + : 2 === t.shadowMapType + ? (e = 'SHADOWMAP_TYPE_PCF_SOFT') + : 3 === t.shadowMapType && (e = 'SHADOWMAP_TYPE_VSM'), + e + ); + })(n), + p = (function (t) { + let e = 'ENVMAP_TYPE_CUBE'; + if (t.envMap) + switch (t.envMapMode) { + case r: + case s: + e = 'ENVMAP_TYPE_CUBE'; + break; + case l: + case c: + e = 'ENVMAP_TYPE_CUBE_UV'; + } + return e; + })(n), + m = (function (t) { + let e = 'ENVMAP_MODE_REFLECTION'; + if (t.envMap) + switch (t.envMapMode) { + case s: + case c: + e = 'ENVMAP_MODE_REFRACTION'; + } + return e; + })(n), + f = (function (t) { + let e = 'ENVMAP_BLENDING_NONE'; + if (t.envMap) + switch (t.combine) { + case 0: + e = 'ENVMAP_BLENDING_MULTIPLY'; + break; + case 1: + e = 'ENVMAP_BLENDING_MIX'; + break; + case 2: + e = 'ENVMAP_BLENDING_ADD'; + } + return e; + })(n), + g = t.gammaFactor > 0 ? t.gammaFactor : 1, + v = n.isWebGL2 + ? '' + : (function (t) { + return [ + t.extensionDerivatives || + t.envMapCubeUV || + t.bumpMap || + t.tangentSpaceNormalMap || + t.clearcoatNormalMap || + t.flatShading || + 'physical' === t.shaderID + ? '#extension GL_OES_standard_derivatives : enable' + : '', + (t.extensionFragDepth || t.logarithmicDepthBuffer) && + t.rendererExtensionFragDepth + ? '#extension GL_EXT_frag_depth : enable' + : '', + t.extensionDrawBuffers && t.rendererExtensionDrawBuffers + ? '#extension GL_EXT_draw_buffers : require' + : '', + (t.extensionShaderTextureLOD || t.envMap) && + t.rendererExtensionShaderTextureLod + ? '#extension GL_EXT_shader_texture_lod : enable' + : '', + ] + .filter(Or) + .join('\n'); + })(n), + y = (function (t) { + const e = []; + for (const n in t) { + const i = t[n]; + !1 !== i && e.push('#define ' + n + ' ' + i); + } + return e.join('\n'); + })(o), + x = a.createProgram(); + let _, + w, + b = n.glslVersion ? '#version ' + n.glslVersion + '\n' : ''; + n.isRawShaderMaterial + ? ((_ = [y].filter(Or).join('\n')), + _.length > 0 && (_ += '\n'), + (w = [v, y].filter(Or).join('\n')), + w.length > 0 && (w += '\n')) + : ((_ = [ + Zr(n), + '#define SHADER_NAME ' + n.shaderName, + y, + n.instancing ? '#define USE_INSTANCING' : '', + n.instancingColor ? '#define USE_INSTANCING_COLOR' : '', + n.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', + '#define GAMMA_FACTOR ' + g, + '#define MAX_BONES ' + n.maxBones, + n.useFog && n.fog ? '#define USE_FOG' : '', + n.useFog && n.fogExp2 ? '#define FOG_EXP2' : '', + n.map ? '#define USE_MAP' : '', + n.envMap ? '#define USE_ENVMAP' : '', + n.envMap ? '#define ' + m : '', + n.lightMap ? '#define USE_LIGHTMAP' : '', + n.aoMap ? '#define USE_AOMAP' : '', + n.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + n.bumpMap ? '#define USE_BUMPMAP' : '', + n.normalMap ? '#define USE_NORMALMAP' : '', + n.normalMap && n.objectSpaceNormalMap + ? '#define OBJECTSPACE_NORMALMAP' + : '', + n.normalMap && n.tangentSpaceNormalMap + ? '#define TANGENTSPACE_NORMALMAP' + : '', + n.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', + n.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', + n.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', + n.displacementMap && n.supportsVertexTextures + ? '#define USE_DISPLACEMENTMAP' + : '', + n.specularMap ? '#define USE_SPECULARMAP' : '', + n.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', + n.metalnessMap ? '#define USE_METALNESSMAP' : '', + n.alphaMap ? '#define USE_ALPHAMAP' : '', + n.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', + n.vertexTangents ? '#define USE_TANGENT' : '', + n.vertexColors ? '#define USE_COLOR' : '', + n.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', + n.vertexUvs ? '#define USE_UV' : '', + n.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', + n.flatShading ? '#define FLAT_SHADED' : '', + n.skinning ? '#define USE_SKINNING' : '', + n.useVertexTexture ? '#define BONE_TEXTURE' : '', + n.morphTargets ? '#define USE_MORPHTARGETS' : '', + n.morphNormals && !1 === n.flatShading + ? '#define USE_MORPHNORMALS' + : '', + n.doubleSided ? '#define DOUBLE_SIDED' : '', + n.flipSided ? '#define FLIP_SIDED' : '', + n.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + n.shadowMapEnabled ? '#define ' + d : '', + n.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', + n.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + n.logarithmicDepthBuffer && n.rendererExtensionFragDepth + ? '#define USE_LOGDEPTHBUF_EXT' + : '', + 'uniform mat4 modelMatrix;', + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform mat4 viewMatrix;', + 'uniform mat3 normalMatrix;', + 'uniform vec3 cameraPosition;', + 'uniform bool isOrthographic;', + '#ifdef USE_INSTANCING', + '\tattribute mat4 instanceMatrix;', + '#endif', + '#ifdef USE_INSTANCING_COLOR', + '\tattribute vec3 instanceColor;', + '#endif', + 'attribute vec3 position;', + 'attribute vec3 normal;', + 'attribute vec2 uv;', + '#ifdef USE_TANGENT', + '\tattribute vec4 tangent;', + '#endif', + '#if defined( USE_COLOR_ALPHA )', + '\tattribute vec4 color;', + '#elif defined( USE_COLOR )', + '\tattribute vec3 color;', + '#endif', + '#ifdef USE_MORPHTARGETS', + '\tattribute vec3 morphTarget0;', + '\tattribute vec3 morphTarget1;', + '\tattribute vec3 morphTarget2;', + '\tattribute vec3 morphTarget3;', + '\t#ifdef USE_MORPHNORMALS', + '\t\tattribute vec3 morphNormal0;', + '\t\tattribute vec3 morphNormal1;', + '\t\tattribute vec3 morphNormal2;', + '\t\tattribute vec3 morphNormal3;', + '\t#else', + '\t\tattribute vec3 morphTarget4;', + '\t\tattribute vec3 morphTarget5;', + '\t\tattribute vec3 morphTarget6;', + '\t\tattribute vec3 morphTarget7;', + '\t#endif', + '#endif', + '#ifdef USE_SKINNING', + '\tattribute vec4 skinIndex;', + '\tattribute vec4 skinWeight;', + '#endif', + '\n', + ] + .filter(Or) + .join('\n')), + (w = [ + v, + Zr(n), + '#define SHADER_NAME ' + n.shaderName, + y, + n.alphaTest + ? '#define ALPHATEST ' + n.alphaTest + (n.alphaTest % 1 ? '' : '.0') + : '', + '#define GAMMA_FACTOR ' + g, + n.useFog && n.fog ? '#define USE_FOG' : '', + n.useFog && n.fogExp2 ? '#define FOG_EXP2' : '', + n.map ? '#define USE_MAP' : '', + n.matcap ? '#define USE_MATCAP' : '', + n.envMap ? '#define USE_ENVMAP' : '', + n.envMap ? '#define ' + p : '', + n.envMap ? '#define ' + m : '', + n.envMap ? '#define ' + f : '', + n.lightMap ? '#define USE_LIGHTMAP' : '', + n.aoMap ? '#define USE_AOMAP' : '', + n.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + n.bumpMap ? '#define USE_BUMPMAP' : '', + n.normalMap ? '#define USE_NORMALMAP' : '', + n.normalMap && n.objectSpaceNormalMap + ? '#define OBJECTSPACE_NORMALMAP' + : '', + n.normalMap && n.tangentSpaceNormalMap + ? '#define TANGENTSPACE_NORMALMAP' + : '', + n.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', + n.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', + n.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', + n.specularMap ? '#define USE_SPECULARMAP' : '', + n.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', + n.metalnessMap ? '#define USE_METALNESSMAP' : '', + n.alphaMap ? '#define USE_ALPHAMAP' : '', + n.sheen ? '#define USE_SHEEN' : '', + n.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', + n.vertexTangents ? '#define USE_TANGENT' : '', + n.vertexColors || n.instancingColor ? '#define USE_COLOR' : '', + n.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', + n.vertexUvs ? '#define USE_UV' : '', + n.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', + n.gradientMap ? '#define USE_GRADIENTMAP' : '', + n.flatShading ? '#define FLAT_SHADED' : '', + n.doubleSided ? '#define DOUBLE_SIDED' : '', + n.flipSided ? '#define FLIP_SIDED' : '', + n.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + n.shadowMapEnabled ? '#define ' + d : '', + n.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', + n.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '', + n.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + n.logarithmicDepthBuffer && n.rendererExtensionFragDepth + ? '#define USE_LOGDEPTHBUF_EXT' + : '', + (n.extensionShaderTextureLOD || n.envMap) && + n.rendererExtensionShaderTextureLod + ? '#define TEXTURE_LOD_EXT' + : '', + 'uniform mat4 viewMatrix;', + 'uniform vec3 cameraPosition;', + 'uniform bool isOrthographic;', + 0 !== n.toneMapping ? '#define TONE_MAPPING' : '', + 0 !== n.toneMapping ? hi.tonemapping_pars_fragment : '', + 0 !== n.toneMapping ? Fr('toneMapping', n.toneMapping) : '', + n.dithering ? '#define DITHERING' : '', + hi.encodings_pars_fragment, + n.map ? Br('mapTexelToLinear', n.mapEncoding) : '', + n.matcap ? Br('matcapTexelToLinear', n.matcapEncoding) : '', + n.envMap ? Br('envMapTexelToLinear', n.envMapEncoding) : '', + n.emissiveMap + ? Br('emissiveMapTexelToLinear', n.emissiveMapEncoding) + : '', + n.lightMap ? Br('lightMapTexelToLinear', n.lightMapEncoding) : '', + zr('linearToOutputTexel', n.outputEncoding), + n.depthPacking ? '#define DEPTH_PACKING ' + n.depthPacking : '', + '\n', + ] + .filter(Or) + .join('\n'))), + (h = kr(h)), + (h = Hr(h, n)), + (h = Gr(h, n)), + (u = kr(u)), + (u = Hr(u, n)), + (u = Gr(u, n)), + (h = qr(h)), + (u = qr(u)), + n.isWebGL2 && + !0 !== n.isRawShaderMaterial && + ((b = '#version 300 es\n'), + (_ = + [ + '#define attribute in', + '#define varying out', + '#define texture2D texture', + ].join('\n') + + '\n' + + _), + (w = + [ + '#define varying in', + n.glslVersion === it ? '' : 'out highp vec4 pc_fragColor;', + n.glslVersion === it ? '' : '#define gl_FragColor pc_fragColor', + '#define gl_FragDepthEXT gl_FragDepth', + '#define texture2D texture', + '#define textureCube texture', + '#define texture2DProj textureProj', + '#define texture2DLodEXT textureLod', + '#define texture2DProjLodEXT textureProjLod', + '#define textureCubeLodEXT textureLod', + '#define texture2DGradEXT textureGrad', + '#define texture2DProjGradEXT textureProjGrad', + '#define textureCubeGradEXT textureGrad', + ].join('\n') + + '\n' + + w)); + const M = b + w + u, + S = Pr(a, 35633, b + _ + h), + T = Pr(a, 35632, M); + if ( + (a.attachShader(x, S), + a.attachShader(x, T), + void 0 !== n.index0AttributeName + ? a.bindAttribLocation(x, 0, n.index0AttributeName) + : !0 === n.morphTargets && a.bindAttribLocation(x, 0, 'position'), + a.linkProgram(x), + t.debug.checkShaderErrors) + ) { + const t = a.getProgramInfoLog(x).trim(), + e = a.getShaderInfoLog(S).trim(), + n = a.getShaderInfoLog(T).trim(); + let i = !0, + r = !0; + if (!1 === a.getProgramParameter(x, 35714)) { + i = !1; + const e = Nr(a, S, 'vertex'), + n = Nr(a, T, 'fragment'); + console.error( + 'THREE.WebGLProgram: shader error: ', + a.getError(), + '35715', + a.getProgramParameter(x, 35715), + 'gl.getProgramInfoLog', + t, + e, + n + ); + } else + '' !== t + ? console.warn('THREE.WebGLProgram: gl.getProgramInfoLog()', t) + : ('' !== e && '' !== n) || (r = !1); + r && + (this.diagnostics = { + runnable: i, + programLog: t, + vertexShader: { log: e, prefix: _ }, + fragmentShader: { log: n, prefix: w }, + }); + } + let E, A; + return ( + a.deleteShader(S), + a.deleteShader(T), + (this.getUniforms = function () { + return void 0 === E && (E = new Cr(a, x)), E; + }), + (this.getAttributes = function () { + return ( + void 0 === A && + (A = (function (t, e) { + const n = {}, + i = t.getProgramParameter(e, 35721); + for (let r = 0; r < i; r++) { + const i = t.getActiveAttrib(e, r).name; + n[i] = t.getAttribLocation(e, i); + } + return n; + })(a, x)), + A + ); + }), + (this.destroy = function () { + i.releaseStatesOfProgram(this), + a.deleteProgram(x), + (this.program = void 0); + }), + (this.name = n.shaderName), + (this.id = Dr++), + (this.cacheKey = e), + (this.usedTimes = 1), + (this.program = x), + (this.vertexShader = S), + (this.fragmentShader = T), + this + ); + } + function Qr(t, e, n, i, r, s) { + const a = [], + o = i.isWebGL2, + h = i.logarithmicDepthBuffer, + u = i.floatVertexTextures, + d = i.maxVertexUniforms, + p = i.vertexTextures; + let m = i.precision; + const f = { + MeshDepthMaterial: 'depth', + MeshDistanceMaterial: 'distanceRGBA', + MeshNormalMaterial: 'normal', + MeshBasicMaterial: 'basic', + MeshLambertMaterial: 'lambert', + MeshPhongMaterial: 'phong', + MeshToonMaterial: 'toon', + MeshStandardMaterial: 'physical', + MeshPhysicalMaterial: 'physical', + MeshMatcapMaterial: 'matcap', + LineBasicMaterial: 'basic', + LineDashedMaterial: 'dashed', + PointsMaterial: 'points', + ShadowMaterial: 'shadow', + SpriteMaterial: 'sprite', + }, + g = [ + 'precision', + 'isWebGL2', + 'supportsVertexTextures', + 'outputEncoding', + 'instancing', + 'instancingColor', + 'map', + 'mapEncoding', + 'matcap', + 'matcapEncoding', + 'envMap', + 'envMapMode', + 'envMapEncoding', + 'envMapCubeUV', + 'lightMap', + 'lightMapEncoding', + 'aoMap', + 'emissiveMap', + 'emissiveMapEncoding', + 'bumpMap', + 'normalMap', + 'objectSpaceNormalMap', + 'tangentSpaceNormalMap', + 'clearcoatMap', + 'clearcoatRoughnessMap', + 'clearcoatNormalMap', + 'displacementMap', + 'specularMap', + 'roughnessMap', + 'metalnessMap', + 'gradientMap', + 'alphaMap', + 'combine', + 'vertexColors', + 'vertexAlphas', + 'vertexTangents', + 'vertexUvs', + 'uvsVertexOnly', + 'fog', + 'useFog', + 'fogExp2', + 'flatShading', + 'sizeAttenuation', + 'logarithmicDepthBuffer', + 'skinning', + 'maxBones', + 'useVertexTexture', + 'morphTargets', + 'morphNormals', + 'premultipliedAlpha', + 'numDirLights', + 'numPointLights', + 'numSpotLights', + 'numHemiLights', + 'numRectAreaLights', + 'numDirLightShadows', + 'numPointLightShadows', + 'numSpotLightShadows', + 'shadowMapEnabled', + 'shadowMapType', + 'toneMapping', + 'physicallyCorrectLights', + 'alphaTest', + 'doubleSided', + 'flipSided', + 'numClippingPlanes', + 'numClipIntersection', + 'depthPacking', + 'dithering', + 'sheen', + 'transmissionMap', + ]; + function v(t) { + let e; + return ( + t && t.isTexture + ? (e = t.encoding) + : t && t.isWebGLRenderTarget + ? (console.warn( + "THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead." + ), + (e = t.texture.encoding)) + : (e = X), + e + ); + } + return { + getParameters: function (r, a, g, y, x) { + const _ = y.fog, + w = r.isMeshStandardMaterial ? y.environment : null, + b = e.get(r.envMap || w), + M = f[r.type], + S = x.isSkinnedMesh + ? (function (t) { + const e = t.skeleton.bones; + if (u) return 1024; + { + const t = d, + n = Math.floor((t - 20) / 4), + i = Math.min(n, e.length); + return i < e.length + ? (console.warn( + 'THREE.WebGLRenderer: Skeleton has ' + + e.length + + ' bones. This GPU supports ' + + i + + '.' + ), + 0) + : i; + } + })(x) + : 0; + let T, E; + if ( + (null !== r.precision && + ((m = i.getMaxPrecision(r.precision)), + m !== r.precision && + console.warn( + 'THREE.WebGLProgram.getParameters:', + r.precision, + 'not supported, using', + m, + 'instead.' + )), + M) + ) { + const t = di[M]; + (T = t.vertexShader), (E = t.fragmentShader); + } else (T = r.vertexShader), (E = r.fragmentShader); + const A = t.getRenderTarget(); + return { + isWebGL2: o, + shaderID: M, + shaderName: r.type, + vertexShader: T, + fragmentShader: E, + defines: r.defines, + isRawShaderMaterial: !0 === r.isRawShaderMaterial, + glslVersion: r.glslVersion, + precision: m, + instancing: !0 === x.isInstancedMesh, + instancingColor: !0 === x.isInstancedMesh && null !== x.instanceColor, + supportsVertexTextures: p, + outputEncoding: null !== A ? v(A.texture) : t.outputEncoding, + map: !!r.map, + mapEncoding: v(r.map), + matcap: !!r.matcap, + matcapEncoding: v(r.matcap), + envMap: !!b, + envMapMode: b && b.mapping, + envMapEncoding: v(b), + envMapCubeUV: !!b && (b.mapping === l || b.mapping === c), + lightMap: !!r.lightMap, + lightMapEncoding: v(r.lightMap), + aoMap: !!r.aoMap, + emissiveMap: !!r.emissiveMap, + emissiveMapEncoding: v(r.emissiveMap), + bumpMap: !!r.bumpMap, + normalMap: !!r.normalMap, + objectSpaceNormalMap: 1 === r.normalMapType, + tangentSpaceNormalMap: 0 === r.normalMapType, + clearcoatMap: !!r.clearcoatMap, + clearcoatRoughnessMap: !!r.clearcoatRoughnessMap, + clearcoatNormalMap: !!r.clearcoatNormalMap, + displacementMap: !!r.displacementMap, + roughnessMap: !!r.roughnessMap, + metalnessMap: !!r.metalnessMap, + specularMap: !!r.specularMap, + alphaMap: !!r.alphaMap, + gradientMap: !!r.gradientMap, + sheen: !!r.sheen, + transmissionMap: !!r.transmissionMap, + combine: r.combine, + vertexTangents: r.normalMap && r.vertexTangents, + vertexColors: r.vertexColors, + vertexAlphas: + !0 === r.vertexColors && + x.geometry && + x.geometry.attributes.color && + 4 === x.geometry.attributes.color.itemSize, + vertexUvs: !!( + r.map || + r.bumpMap || + r.normalMap || + r.specularMap || + r.alphaMap || + r.emissiveMap || + r.roughnessMap || + r.metalnessMap || + r.clearcoatMap || + r.clearcoatRoughnessMap || + r.clearcoatNormalMap || + r.displacementMap || + r.transmissionMap + ), + uvsVertexOnly: !( + r.map || + r.bumpMap || + r.normalMap || + r.specularMap || + r.alphaMap || + r.emissiveMap || + r.roughnessMap || + r.metalnessMap || + r.clearcoatNormalMap || + r.transmissionMap || + !r.displacementMap + ), + fog: !!_, + useFog: r.fog, + fogExp2: _ && _.isFogExp2, + flatShading: !!r.flatShading, + sizeAttenuation: r.sizeAttenuation, + logarithmicDepthBuffer: h, + skinning: r.skinning && S > 0, + maxBones: S, + useVertexTexture: u, + morphTargets: r.morphTargets, + morphNormals: r.morphNormals, + numDirLights: a.directional.length, + numPointLights: a.point.length, + numSpotLights: a.spot.length, + numRectAreaLights: a.rectArea.length, + numHemiLights: a.hemi.length, + numDirLightShadows: a.directionalShadowMap.length, + numPointLightShadows: a.pointShadowMap.length, + numSpotLightShadows: a.spotShadowMap.length, + numClippingPlanes: s.numPlanes, + numClipIntersection: s.numIntersection, + dithering: r.dithering, + shadowMapEnabled: t.shadowMap.enabled && g.length > 0, + shadowMapType: t.shadowMap.type, + toneMapping: r.toneMapped ? t.toneMapping : 0, + physicallyCorrectLights: t.physicallyCorrectLights, + premultipliedAlpha: r.premultipliedAlpha, + alphaTest: r.alphaTest, + doubleSided: 2 === r.side, + flipSided: 1 === r.side, + depthPacking: void 0 !== r.depthPacking && r.depthPacking, + index0AttributeName: r.index0AttributeName, + extensionDerivatives: r.extensions && r.extensions.derivatives, + extensionFragDepth: r.extensions && r.extensions.fragDepth, + extensionDrawBuffers: r.extensions && r.extensions.drawBuffers, + extensionShaderTextureLOD: + r.extensions && r.extensions.shaderTextureLOD, + rendererExtensionFragDepth: o || n.has('EXT_frag_depth'), + rendererExtensionDrawBuffers: o || n.has('WEBGL_draw_buffers'), + rendererExtensionShaderTextureLod: + o || n.has('EXT_shader_texture_lod'), + customProgramCacheKey: r.customProgramCacheKey(), + }; + }, + getProgramCacheKey: function (e) { + const n = []; + if ( + (e.shaderID + ? n.push(e.shaderID) + : (n.push(e.fragmentShader), n.push(e.vertexShader)), + void 0 !== e.defines) + ) + for (const t in e.defines) n.push(t), n.push(e.defines[t]); + if (!1 === e.isRawShaderMaterial) { + for (let t = 0; t < g.length; t++) n.push(e[g[t]]); + n.push(t.outputEncoding), n.push(t.gammaFactor); + } + return n.push(e.customProgramCacheKey), n.join(); + }, + getUniforms: function (t) { + const e = f[t.type]; + let n; + if (e) { + const t = di[e]; + n = Zn.clone(t.uniforms); + } else n = t.uniforms; + return n; + }, + acquireProgram: function (e, n) { + let i; + for (let t = 0, e = a.length; t < e; t++) { + const e = a[t]; + if (e.cacheKey === n) { + (i = e), ++i.usedTimes; + break; + } + } + return void 0 === i && ((i = new Jr(t, n, e, r)), a.push(i)), i; + }, + releaseProgram: function (t) { + if (0 == --t.usedTimes) { + const e = a.indexOf(t); + (a[e] = a[a.length - 1]), a.pop(), t.destroy(); + } + }, + programs: a, + }; + } + function Kr() { + let t = new WeakMap(); + return { + get: function (e) { + let n = t.get(e); + return void 0 === n && ((n = {}), t.set(e, n)), n; + }, + remove: function (e) { + t.delete(e); + }, + update: function (e, n, i) { + t.get(e)[n] = i; + }, + dispose: function () { + t = new WeakMap(); + }, + }; + } + function $r(t, e) { + return t.groupOrder !== e.groupOrder + ? t.groupOrder - e.groupOrder + : t.renderOrder !== e.renderOrder + ? t.renderOrder - e.renderOrder + : t.program !== e.program + ? t.program.id - e.program.id + : t.material.id !== e.material.id + ? t.material.id - e.material.id + : t.z !== e.z + ? t.z - e.z + : t.id - e.id; + } + function ts(t, e) { + return t.groupOrder !== e.groupOrder + ? t.groupOrder - e.groupOrder + : t.renderOrder !== e.renderOrder + ? t.renderOrder - e.renderOrder + : t.z !== e.z + ? e.z - t.z + : t.id - e.id; + } + function es(t) { + const e = []; + let n = 0; + const i = [], + r = [], + s = { id: -1 }; + function a(i, r, a, o, l, c) { + let h = e[n]; + const u = t.get(a); + return ( + void 0 === h + ? ((h = { + id: i.id, + object: i, + geometry: r, + material: a, + program: u.program || s, + groupOrder: o, + renderOrder: i.renderOrder, + z: l, + group: c, + }), + (e[n] = h)) + : ((h.id = i.id), + (h.object = i), + (h.geometry = r), + (h.material = a), + (h.program = u.program || s), + (h.groupOrder = o), + (h.renderOrder = i.renderOrder), + (h.z = l), + (h.group = c)), + n++, + h + ); + } + return { + opaque: i, + transparent: r, + init: function () { + (n = 0), (i.length = 0), (r.length = 0); + }, + push: function (t, e, n, s, o, l) { + const c = a(t, e, n, s, o, l); + (!0 === n.transparent ? r : i).push(c); + }, + unshift: function (t, e, n, s, o, l) { + const c = a(t, e, n, s, o, l); + (!0 === n.transparent ? r : i).unshift(c); + }, + finish: function () { + for (let t = n, i = e.length; t < i; t++) { + const n = e[t]; + if (null === n.id) break; + (n.id = null), + (n.object = null), + (n.geometry = null), + (n.material = null), + (n.program = null), + (n.group = null); + } + }, + sort: function (t, e) { + i.length > 1 && i.sort(t || $r), r.length > 1 && r.sort(e || ts); + }, + }; + } + function ns(t) { + let e = new WeakMap(); + return { + get: function (n, i) { + let r; + return ( + !1 === e.has(n) + ? ((r = new es(t)), e.set(n, [r])) + : i >= e.get(n).length + ? ((r = new es(t)), e.get(n).push(r)) + : (r = e.get(n)[i]), + r + ); + }, + dispose: function () { + e = new WeakMap(); + }, + }; + } + function is() { + const t = {}; + return { + get: function (e) { + if (void 0 !== t[e.id]) return t[e.id]; + let n; + switch (e.type) { + case 'DirectionalLight': + n = { direction: new Lt(), color: new tn() }; + break; + case 'SpotLight': + n = { + position: new Lt(), + direction: new Lt(), + color: new tn(), + distance: 0, + coneCos: 0, + penumbraCos: 0, + decay: 0, + }; + break; + case 'PointLight': + n = { position: new Lt(), color: new tn(), distance: 0, decay: 0 }; + break; + case 'HemisphereLight': + n = { + direction: new Lt(), + skyColor: new tn(), + groundColor: new tn(), + }; + break; + case 'RectAreaLight': + n = { + color: new tn(), + position: new Lt(), + halfWidth: new Lt(), + halfHeight: new Lt(), + }; + } + return (t[e.id] = n), n; + }, + }; + } + let rs = 0; + function ss(t, e) { + return (e.castShadow ? 1 : 0) - (t.castShadow ? 1 : 0); + } + function as(t, e) { + const n = new is(), + i = (function () { + const t = {}; + return { + get: function (e) { + if (void 0 !== t[e.id]) return t[e.id]; + let n; + switch (e.type) { + case 'DirectionalLight': + case 'SpotLight': + n = { + shadowBias: 0, + shadowNormalBias: 0, + shadowRadius: 1, + shadowMapSize: new vt(), + }; + break; + case 'PointLight': + n = { + shadowBias: 0, + shadowNormalBias: 0, + shadowRadius: 1, + shadowMapSize: new vt(), + shadowCameraNear: 1, + shadowCameraFar: 1e3, + }; + } + return (t[e.id] = n), n; + }, + }; + })(), + r = { + version: 0, + hash: { + directionalLength: -1, + pointLength: -1, + spotLength: -1, + rectAreaLength: -1, + hemiLength: -1, + numDirectionalShadows: -1, + numPointShadows: -1, + numSpotShadows: -1, + }, + ambient: [0, 0, 0], + probe: [], + directional: [], + directionalShadow: [], + directionalShadowMap: [], + directionalShadowMatrix: [], + spot: [], + spotShadow: [], + spotShadowMap: [], + spotShadowMatrix: [], + rectArea: [], + rectAreaLTC1: null, + rectAreaLTC2: null, + point: [], + pointShadow: [], + pointShadowMap: [], + pointShadowMatrix: [], + hemi: [], + }; + for (let t = 0; t < 9; t++) r.probe.push(new Lt()); + const s = new Lt(), + a = new se(), + o = new se(); + return { + setup: function (s) { + let a = 0, + o = 0, + l = 0; + for (let t = 0; t < 9; t++) r.probe[t].set(0, 0, 0); + let c = 0, + h = 0, + u = 0, + d = 0, + p = 0, + m = 0, + f = 0, + g = 0; + s.sort(ss); + for (let t = 0, e = s.length; t < e; t++) { + const e = s[t], + v = e.color, + y = e.intensity, + x = e.distance, + _ = e.shadow && e.shadow.map ? e.shadow.map.texture : null; + if (e.isAmbientLight) (a += v.r * y), (o += v.g * y), (l += v.b * y); + else if (e.isLightProbe) + for (let t = 0; t < 9; t++) + r.probe[t].addScaledVector(e.sh.coefficients[t], y); + else if (e.isDirectionalLight) { + const t = n.get(e); + if ( + (t.color.copy(e.color).multiplyScalar(e.intensity), e.castShadow) + ) { + const t = e.shadow, + n = i.get(e); + (n.shadowBias = t.bias), + (n.shadowNormalBias = t.normalBias), + (n.shadowRadius = t.radius), + (n.shadowMapSize = t.mapSize), + (r.directionalShadow[c] = n), + (r.directionalShadowMap[c] = _), + (r.directionalShadowMatrix[c] = e.shadow.matrix), + m++; + } + (r.directional[c] = t), c++; + } else if (e.isSpotLight) { + const t = n.get(e); + if ( + (t.position.setFromMatrixPosition(e.matrixWorld), + t.color.copy(v).multiplyScalar(y), + (t.distance = x), + (t.coneCos = Math.cos(e.angle)), + (t.penumbraCos = Math.cos(e.angle * (1 - e.penumbra))), + (t.decay = e.decay), + e.castShadow) + ) { + const t = e.shadow, + n = i.get(e); + (n.shadowBias = t.bias), + (n.shadowNormalBias = t.normalBias), + (n.shadowRadius = t.radius), + (n.shadowMapSize = t.mapSize), + (r.spotShadow[u] = n), + (r.spotShadowMap[u] = _), + (r.spotShadowMatrix[u] = e.shadow.matrix), + g++; + } + (r.spot[u] = t), u++; + } else if (e.isRectAreaLight) { + const t = n.get(e); + t.color.copy(v).multiplyScalar(y), + t.halfWidth.set(0.5 * e.width, 0, 0), + t.halfHeight.set(0, 0.5 * e.height, 0), + (r.rectArea[d] = t), + d++; + } else if (e.isPointLight) { + const t = n.get(e); + if ( + (t.color.copy(e.color).multiplyScalar(e.intensity), + (t.distance = e.distance), + (t.decay = e.decay), + e.castShadow) + ) { + const t = e.shadow, + n = i.get(e); + (n.shadowBias = t.bias), + (n.shadowNormalBias = t.normalBias), + (n.shadowRadius = t.radius), + (n.shadowMapSize = t.mapSize), + (n.shadowCameraNear = t.camera.near), + (n.shadowCameraFar = t.camera.far), + (r.pointShadow[h] = n), + (r.pointShadowMap[h] = _), + (r.pointShadowMatrix[h] = e.shadow.matrix), + f++; + } + (r.point[h] = t), h++; + } else if (e.isHemisphereLight) { + const t = n.get(e); + t.skyColor.copy(e.color).multiplyScalar(y), + t.groundColor.copy(e.groundColor).multiplyScalar(y), + (r.hemi[p] = t), + p++; + } + } + d > 0 && + (e.isWebGL2 || !0 === t.has('OES_texture_float_linear') + ? ((r.rectAreaLTC1 = ui.LTC_FLOAT_1), + (r.rectAreaLTC2 = ui.LTC_FLOAT_2)) + : !0 === t.has('OES_texture_half_float_linear') + ? ((r.rectAreaLTC1 = ui.LTC_HALF_1), + (r.rectAreaLTC2 = ui.LTC_HALF_2)) + : console.error( + 'THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.' + )), + (r.ambient[0] = a), + (r.ambient[1] = o), + (r.ambient[2] = l); + const v = r.hash; + (v.directionalLength === c && + v.pointLength === h && + v.spotLength === u && + v.rectAreaLength === d && + v.hemiLength === p && + v.numDirectionalShadows === m && + v.numPointShadows === f && + v.numSpotShadows === g) || + ((r.directional.length = c), + (r.spot.length = u), + (r.rectArea.length = d), + (r.point.length = h), + (r.hemi.length = p), + (r.directionalShadow.length = m), + (r.directionalShadowMap.length = m), + (r.pointShadow.length = f), + (r.pointShadowMap.length = f), + (r.spotShadow.length = g), + (r.spotShadowMap.length = g), + (r.directionalShadowMatrix.length = m), + (r.pointShadowMatrix.length = f), + (r.spotShadowMatrix.length = g), + (v.directionalLength = c), + (v.pointLength = h), + (v.spotLength = u), + (v.rectAreaLength = d), + (v.hemiLength = p), + (v.numDirectionalShadows = m), + (v.numPointShadows = f), + (v.numSpotShadows = g), + (r.version = rs++)); + }, + setupView: function (t, e) { + let n = 0, + i = 0, + l = 0, + c = 0, + h = 0; + const u = e.matrixWorldInverse; + for (let e = 0, d = t.length; e < d; e++) { + const d = t[e]; + if (d.isDirectionalLight) { + const t = r.directional[n]; + t.direction.setFromMatrixPosition(d.matrixWorld), + s.setFromMatrixPosition(d.target.matrixWorld), + t.direction.sub(s), + t.direction.transformDirection(u), + n++; + } else if (d.isSpotLight) { + const t = r.spot[l]; + t.position.setFromMatrixPosition(d.matrixWorld), + t.position.applyMatrix4(u), + t.direction.setFromMatrixPosition(d.matrixWorld), + s.setFromMatrixPosition(d.target.matrixWorld), + t.direction.sub(s), + t.direction.transformDirection(u), + l++; + } else if (d.isRectAreaLight) { + const t = r.rectArea[c]; + t.position.setFromMatrixPosition(d.matrixWorld), + t.position.applyMatrix4(u), + o.identity(), + a.copy(d.matrixWorld), + a.premultiply(u), + o.extractRotation(a), + t.halfWidth.set(0.5 * d.width, 0, 0), + t.halfHeight.set(0, 0.5 * d.height, 0), + t.halfWidth.applyMatrix4(o), + t.halfHeight.applyMatrix4(o), + c++; + } else if (d.isPointLight) { + const t = r.point[i]; + t.position.setFromMatrixPosition(d.matrixWorld), + t.position.applyMatrix4(u), + i++; + } else if (d.isHemisphereLight) { + const t = r.hemi[h]; + t.direction.setFromMatrixPosition(d.matrixWorld), + t.direction.transformDirection(u), + t.direction.normalize(), + h++; + } + } + }, + state: r, + }; + } + function os(t, e) { + const n = new as(t, e), + i = [], + r = []; + return { + init: function () { + (i.length = 0), (r.length = 0); + }, + state: { lightsArray: i, shadowsArray: r, lights: n }, + setupLights: function () { + n.setup(i); + }, + setupLightsView: function (t) { + n.setupView(i, t); + }, + pushLight: function (t) { + i.push(t); + }, + pushShadow: function (t) { + r.push(t); + }, + }; + } + function ls(t, e) { + let n = new WeakMap(); + return { + get: function (i, r = 0) { + let s; + return ( + !1 === n.has(i) + ? ((s = new os(t, e)), n.set(i, [s])) + : r >= n.get(i).length + ? ((s = new os(t, e)), n.get(i).push(s)) + : (s = n.get(i)[r]), + s + ); + }, + dispose: function () { + n = new WeakMap(); + }, + }; + } + class cs extends Xe { + constructor(t) { + super(), + (this.type = 'MeshDepthMaterial'), + (this.depthPacking = 3200), + (this.skinning = !1), + (this.morphTargets = !1), + (this.map = null), + (this.alphaMap = null), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.fog = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.depthPacking = t.depthPacking), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.map = t.map), + (this.alphaMap = t.alphaMap), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + this + ); + } + } + cs.prototype.isMeshDepthMaterial = !0; + class hs extends Xe { + constructor(t) { + super(), + (this.type = 'MeshDistanceMaterial'), + (this.referencePosition = new Lt()), + (this.nearDistance = 1), + (this.farDistance = 1e3), + (this.skinning = !1), + (this.morphTargets = !1), + (this.map = null), + (this.alphaMap = null), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.fog = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.referencePosition.copy(t.referencePosition), + (this.nearDistance = t.nearDistance), + (this.farDistance = t.farDistance), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.map = t.map), + (this.alphaMap = t.alphaMap), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + this + ); + } + } + hs.prototype.isMeshDistanceMaterial = !0; + function us(t, e, n) { + let i = new ai(); + const r = new vt(), + s = new vt(), + a = new St(), + o = [], + l = [], + c = {}, + h = n.maxTextureSize, + u = { 0: 1, 1: 0, 2: 2 }, + d = new Jn({ + defines: { SAMPLE_RATE: 2 / 8, HALF_SAMPLE_RATE: 1 / 8 }, + uniforms: { + shadow_pass: { value: null }, + resolution: { value: new vt() }, + radius: { value: 4 }, + }, + vertexShader: + 'void main() {\n\tgl_Position = vec4( position, 1.0 );\n}', + fragmentShader: + 'uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}', + }), + m = d.clone(); + m.defines.HORIZONTAL_PASS = 1; + const f = new En(); + f.setAttribute( + 'position', + new sn(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3) + ); + const v = new Wn(f, d), + y = this; + function x(n, i) { + const r = e.update(v); + (d.uniforms.shadow_pass.value = n.map.texture), + (d.uniforms.resolution.value = n.mapSize), + (d.uniforms.radius.value = n.radius), + t.setRenderTarget(n.mapPass), + t.clear(), + t.renderBufferDirect(i, null, r, d, v, null), + (m.uniforms.shadow_pass.value = n.mapPass.texture), + (m.uniforms.resolution.value = n.mapSize), + (m.uniforms.radius.value = n.radius), + t.setRenderTarget(n.map), + t.clear(), + t.renderBufferDirect(i, null, r, m, v, null); + } + function _(t, e, n) { + const i = (t << 0) | (e << 1) | (n << 2); + let r = o[i]; + return ( + void 0 === r && + ((r = new cs({ depthPacking: 3201, morphTargets: t, skinning: e })), + (o[i] = r)), + r + ); + } + function w(t, e, n) { + const i = (t << 0) | (e << 1) | (n << 2); + let r = l[i]; + return ( + void 0 === r && + ((r = new hs({ morphTargets: t, skinning: e })), (l[i] = r)), + r + ); + } + function b(e, n, i, r, s, a, o) { + let l = null, + h = _, + d = e.customDepthMaterial; + if ( + (!0 === r.isPointLight && ((h = w), (d = e.customDistanceMaterial)), + void 0 === d) + ) { + let t = !1; + !0 === i.morphTargets && + (t = + n.morphAttributes && + n.morphAttributes.position && + n.morphAttributes.position.length > 0); + let r = !1; + !0 === e.isSkinnedMesh && + (!0 === i.skinning + ? (r = !0) + : console.warn( + 'THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:', + e + )); + l = h(t, r, !0 === e.isInstancedMesh); + } else l = d; + if ( + t.localClippingEnabled && + !0 === i.clipShadows && + 0 !== i.clippingPlanes.length + ) { + const t = l.uuid, + e = i.uuid; + let n = c[t]; + void 0 === n && ((n = {}), (c[t] = n)); + let r = n[e]; + void 0 === r && ((r = l.clone()), (n[e] = r)), (l = r); + } + return ( + (l.visible = i.visible), + (l.wireframe = i.wireframe), + (l.side = + 3 === o + ? null !== i.shadowSide + ? i.shadowSide + : i.side + : null !== i.shadowSide + ? i.shadowSide + : u[i.side]), + (l.clipShadows = i.clipShadows), + (l.clippingPlanes = i.clippingPlanes), + (l.clipIntersection = i.clipIntersection), + (l.wireframeLinewidth = i.wireframeLinewidth), + (l.linewidth = i.linewidth), + !0 === r.isPointLight && + !0 === l.isMeshDistanceMaterial && + (l.referencePosition.setFromMatrixPosition(r.matrixWorld), + (l.nearDistance = s), + (l.farDistance = a)), + l + ); + } + function M(n, r, s, a, o) { + if (!1 === n.visible) return; + if ( + n.layers.test(r.layers) && + (n.isMesh || n.isLine || n.isPoints) && + (n.castShadow || (n.receiveShadow && 3 === o)) && + (!n.frustumCulled || i.intersectsObject(n)) + ) { + n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse, n.matrixWorld); + const i = e.update(n), + r = n.material; + if (Array.isArray(r)) { + const e = i.groups; + for (let l = 0, c = e.length; l < c; l++) { + const c = e[l], + h = r[c.materialIndex]; + if (h && h.visible) { + const e = b(n, i, h, a, s.near, s.far, o); + t.renderBufferDirect(s, null, i, e, n, c); + } + } + } else if (r.visible) { + const e = b(n, i, r, a, s.near, s.far, o); + t.renderBufferDirect(s, null, i, e, n, null); + } + } + const l = n.children; + for (let t = 0, e = l.length; t < e; t++) M(l[t], r, s, a, o); + } + (this.enabled = !1), + (this.autoUpdate = !0), + (this.needsUpdate = !1), + (this.type = 1), + (this.render = function (e, n, o) { + if (!1 === y.enabled) return; + if (!1 === y.autoUpdate && !1 === y.needsUpdate) return; + if (0 === e.length) return; + const l = t.getRenderTarget(), + c = t.getActiveCubeFace(), + u = t.getActiveMipmapLevel(), + d = t.state; + d.setBlending(0), + d.buffers.color.setClear(1, 1, 1, 1), + d.buffers.depth.setTest(!0), + d.setScissorTest(!1); + for (let l = 0, c = e.length; l < c; l++) { + const c = e[l], + u = c.shadow; + if (void 0 === u) { + console.warn('THREE.WebGLShadowMap:', c, 'has no shadow.'); + continue; + } + if (!1 === u.autoUpdate && !1 === u.needsUpdate) continue; + r.copy(u.mapSize); + const m = u.getFrameExtents(); + if ( + (r.multiply(m), + s.copy(u.mapSize), + (r.x > h || r.y > h) && + (r.x > h && + ((s.x = Math.floor(h / m.x)), + (r.x = s.x * m.x), + (u.mapSize.x = s.x)), + r.y > h && + ((s.y = Math.floor(h / m.y)), + (r.y = s.y * m.y), + (u.mapSize.y = s.y))), + null === u.map && !u.isPointLightShadow && 3 === this.type) + ) { + const t = { minFilter: g, magFilter: g, format: E }; + (u.map = new Tt(r.x, r.y, t)), + (u.map.texture.name = c.name + '.shadowMap'), + (u.mapPass = new Tt(r.x, r.y, t)), + u.camera.updateProjectionMatrix(); + } + if (null === u.map) { + const t = { minFilter: p, magFilter: p, format: E }; + (u.map = new Tt(r.x, r.y, t)), + (u.map.texture.name = c.name + '.shadowMap'), + u.camera.updateProjectionMatrix(); + } + t.setRenderTarget(u.map), t.clear(); + const f = u.getViewportCount(); + for (let t = 0; t < f; t++) { + const e = u.getViewport(t); + a.set(s.x * e.x, s.y * e.y, s.x * e.z, s.y * e.w), + d.viewport(a), + u.updateMatrices(c, t), + (i = u.getFrustum()), + M(n, o, u.camera, c, this.type); + } + u.isPointLightShadow || 3 !== this.type || x(u, o), + (u.needsUpdate = !1); + } + (y.needsUpdate = !1), t.setRenderTarget(l, c, u); + }); + } + function ds(t, e, i) { + const r = i.isWebGL2; + const s = new (function () { + let e = !1; + const n = new St(); + let i = null; + const r = new St(0, 0, 0, 0); + return { + setMask: function (n) { + i === n || e || (t.colorMask(n, n, n, n), (i = n)); + }, + setLocked: function (t) { + e = t; + }, + setClear: function (e, i, s, a, o) { + !0 === o && ((e *= a), (i *= a), (s *= a)), + n.set(e, i, s, a), + !1 === r.equals(n) && (t.clearColor(e, i, s, a), r.copy(n)); + }, + reset: function () { + (e = !1), (i = null), r.set(-1, 0, 0, 0); + }, + }; + })(), + a = new (function () { + let e = !1, + n = null, + i = null, + r = null; + return { + setTest: function (t) { + t ? z(2929) : F(2929); + }, + setMask: function (i) { + n === i || e || (t.depthMask(i), (n = i)); + }, + setFunc: function (e) { + if (i !== e) { + if (e) + switch (e) { + case 0: + t.depthFunc(512); + break; + case 1: + t.depthFunc(519); + break; + case 2: + t.depthFunc(513); + break; + case 3: + t.depthFunc(515); + break; + case 4: + t.depthFunc(514); + break; + case 5: + t.depthFunc(518); + break; + case 6: + t.depthFunc(516); + break; + case 7: + t.depthFunc(517); + break; + default: + t.depthFunc(515); + } + else t.depthFunc(515); + i = e; + } + }, + setLocked: function (t) { + e = t; + }, + setClear: function (e) { + r !== e && (t.clearDepth(e), (r = e)); + }, + reset: function () { + (e = !1), (n = null), (i = null), (r = null); + }, + }; + })(), + o = new (function () { + let e = !1, + n = null, + i = null, + r = null, + s = null, + a = null, + o = null, + l = null, + c = null; + return { + setTest: function (t) { + e || (t ? z(2960) : F(2960)); + }, + setMask: function (i) { + n === i || e || (t.stencilMask(i), (n = i)); + }, + setFunc: function (e, n, a) { + (i === e && r === n && s === a) || + (t.stencilFunc(e, n, a), (i = e), (r = n), (s = a)); + }, + setOp: function (e, n, i) { + (a === e && o === n && l === i) || + (t.stencilOp(e, n, i), (a = e), (o = n), (l = i)); + }, + setLocked: function (t) { + e = t; + }, + setClear: function (e) { + c !== e && (t.clearStencil(e), (c = e)); + }, + reset: function () { + (e = !1), + (n = null), + (i = null), + (r = null), + (s = null), + (a = null), + (o = null), + (l = null), + (c = null); + }, + }; + })(); + let l = {}, + c = null, + h = {}, + u = null, + d = !1, + p = null, + m = null, + f = null, + g = null, + v = null, + y = null, + x = null, + _ = !1, + w = null, + b = null, + M = null, + S = null, + T = null; + const E = t.getParameter(35661); + let A = !1, + L = 0; + const R = t.getParameter(7938); + -1 !== R.indexOf('WebGL') + ? ((L = parseFloat(/^WebGL (\d)/.exec(R)[1])), (A = L >= 1)) + : -1 !== R.indexOf('OpenGL ES') && + ((L = parseFloat(/^OpenGL ES (\d)/.exec(R)[1])), (A = L >= 2)); + let C = null, + P = {}; + const D = new St(0, 0, t.canvas.width, t.canvas.height), + I = new St(0, 0, t.canvas.width, t.canvas.height); + function N(e, n, i) { + const r = new Uint8Array(4), + s = t.createTexture(); + t.bindTexture(e, s), + t.texParameteri(e, 10241, 9728), + t.texParameteri(e, 10240, 9728); + for (let e = 0; e < i; e++) + t.texImage2D(n + e, 0, 6408, 1, 1, 0, 6408, 5121, r); + return s; + } + const B = {}; + function z(e) { + !0 !== l[e] && (t.enable(e), (l[e] = !0)); + } + function F(e) { + !1 !== l[e] && (t.disable(e), (l[e] = !1)); + } + (B[3553] = N(3553, 3553, 1)), + (B[34067] = N(34067, 34069, 6)), + s.setClear(0, 0, 0, 1), + a.setClear(1), + o.setClear(0), + z(2929), + a.setFunc(3), + U(!1), + k(1), + z(2884), + G(0); + const O = { [n]: 32774, 101: 32778, 102: 32779 }; + if (r) (O[103] = 32775), (O[104] = 32776); + else { + const t = e.get('EXT_blend_minmax'); + null !== t && ((O[103] = t.MIN_EXT), (O[104] = t.MAX_EXT)); + } + const H = { + 200: 0, + 201: 1, + 202: 768, + 204: 770, + 210: 776, + 208: 774, + 206: 772, + 203: 769, + 205: 771, + 209: 775, + 207: 773, + }; + function G(e, i, r, s, a, o, l, c) { + if (0 !== e) { + if ((!1 === d && (z(3042), (d = !0)), 5 === e)) + (a = a || i), + (o = o || r), + (l = l || s), + (i === m && a === v) || + (t.blendEquationSeparate(O[i], O[a]), (m = i), (v = a)), + (r === f && s === g && o === y && l === x) || + (t.blendFuncSeparate(H[r], H[s], H[o], H[l]), + (f = r), + (g = s), + (y = o), + (x = l)), + (p = e), + (_ = null); + else if (e !== p || c !== _) { + if ( + ((m === n && v === n) || (t.blendEquation(32774), (m = n), (v = n)), + c) + ) + switch (e) { + case 1: + t.blendFuncSeparate(1, 771, 1, 771); + break; + case 2: + t.blendFunc(1, 1); + break; + case 3: + t.blendFuncSeparate(0, 0, 769, 771); + break; + case 4: + t.blendFuncSeparate(0, 768, 0, 770); + break; + default: + console.error('THREE.WebGLState: Invalid blending: ', e); + } + else + switch (e) { + case 1: + t.blendFuncSeparate(770, 771, 1, 771); + break; + case 2: + t.blendFunc(770, 1); + break; + case 3: + t.blendFunc(0, 769); + break; + case 4: + t.blendFunc(0, 768); + break; + default: + console.error('THREE.WebGLState: Invalid blending: ', e); + } + (f = null), (g = null), (y = null), (x = null), (p = e), (_ = c); + } + } else !0 === d && (F(3042), (d = !1)); + } + function U(e) { + w !== e && (e ? t.frontFace(2304) : t.frontFace(2305), (w = e)); + } + function k(e) { + 0 !== e + ? (z(2884), + e !== b && + (1 === e + ? t.cullFace(1029) + : 2 === e + ? t.cullFace(1028) + : t.cullFace(1032))) + : F(2884), + (b = e); + } + function V(e, n, i) { + e + ? (z(32823), + (S === n && T === i) || (t.polygonOffset(n, i), (S = n), (T = i))) + : F(32823); + } + function W(e) { + void 0 === e && (e = 33984 + E - 1), + C !== e && (t.activeTexture(e), (C = e)); + } + return { + buffers: { color: s, depth: a, stencil: o }, + enable: z, + disable: F, + bindFramebuffer: function (e, n) { + null === n && null !== c && (n = c), + h[e] !== n && + (t.bindFramebuffer(e, n), + (h[e] = n), + r && + (36009 === e && (h[36160] = n), 36160 === e && (h[36009] = n))); + }, + bindXRFramebuffer: function (e) { + e !== c && (t.bindFramebuffer(36160, e), (c = e)); + }, + useProgram: function (e) { + return u !== e && (t.useProgram(e), (u = e), !0); + }, + setBlending: G, + setMaterial: function (t, e) { + 2 === t.side ? F(2884) : z(2884); + let n = 1 === t.side; + e && (n = !n), + U(n), + 1 === t.blending && !1 === t.transparent + ? G(0) + : G( + t.blending, + t.blendEquation, + t.blendSrc, + t.blendDst, + t.blendEquationAlpha, + t.blendSrcAlpha, + t.blendDstAlpha, + t.premultipliedAlpha + ), + a.setFunc(t.depthFunc), + a.setTest(t.depthTest), + a.setMask(t.depthWrite), + s.setMask(t.colorWrite); + const i = t.stencilWrite; + o.setTest(i), + i && + (o.setMask(t.stencilWriteMask), + o.setFunc(t.stencilFunc, t.stencilRef, t.stencilFuncMask), + o.setOp(t.stencilFail, t.stencilZFail, t.stencilZPass)), + V(t.polygonOffset, t.polygonOffsetFactor, t.polygonOffsetUnits), + !0 === t.alphaToCoverage ? z(32926) : F(32926); + }, + setFlipSided: U, + setCullFace: k, + setLineWidth: function (e) { + e !== M && (A && t.lineWidth(e), (M = e)); + }, + setPolygonOffset: V, + setScissorTest: function (t) { + t ? z(3089) : F(3089); + }, + activeTexture: W, + bindTexture: function (e, n) { + null === C && W(); + let i = P[C]; + void 0 === i && ((i = { type: void 0, texture: void 0 }), (P[C] = i)), + (i.type === e && i.texture === n) || + (t.bindTexture(e, n || B[e]), (i.type = e), (i.texture = n)); + }, + unbindTexture: function () { + const e = P[C]; + void 0 !== e && + void 0 !== e.type && + (t.bindTexture(e.type, null), + (e.type = void 0), + (e.texture = void 0)); + }, + compressedTexImage2D: function () { + try { + t.compressedTexImage2D.apply(t, arguments); + } catch (t) { + console.error('THREE.WebGLState:', t); + } + }, + texImage2D: function () { + try { + t.texImage2D.apply(t, arguments); + } catch (t) { + console.error('THREE.WebGLState:', t); + } + }, + texImage3D: function () { + try { + t.texImage3D.apply(t, arguments); + } catch (t) { + console.error('THREE.WebGLState:', t); + } + }, + scissor: function (e) { + !1 === D.equals(e) && (t.scissor(e.x, e.y, e.z, e.w), D.copy(e)); + }, + viewport: function (e) { + !1 === I.equals(e) && (t.viewport(e.x, e.y, e.z, e.w), I.copy(e)); + }, + reset: function () { + t.disable(3042), + t.disable(2884), + t.disable(2929), + t.disable(32823), + t.disable(3089), + t.disable(2960), + t.disable(32926), + t.blendEquation(32774), + t.blendFunc(1, 0), + t.blendFuncSeparate(1, 0, 1, 0), + t.colorMask(!0, !0, !0, !0), + t.clearColor(0, 0, 0, 0), + t.depthMask(!0), + t.depthFunc(513), + t.clearDepth(1), + t.stencilMask(4294967295), + t.stencilFunc(519, 0, 4294967295), + t.stencilOp(7680, 7680, 7680), + t.clearStencil(0), + t.cullFace(1029), + t.frontFace(2305), + t.polygonOffset(0, 0), + t.activeTexture(33984), + t.bindFramebuffer(36160, null), + !0 === r && + (t.bindFramebuffer(36009, null), t.bindFramebuffer(36008, null)), + t.useProgram(null), + t.lineWidth(1), + t.scissor(0, 0, t.canvas.width, t.canvas.height), + t.viewport(0, 0, t.canvas.width, t.canvas.height), + (l = {}), + (C = null), + (P = {}), + (c = null), + (h = {}), + (u = null), + (d = !1), + (p = null), + (m = null), + (f = null), + (g = null), + (v = null), + (y = null), + (x = null), + (_ = !1), + (w = null), + (b = null), + (M = null), + (S = null), + (T = null), + D.set(0, 0, t.canvas.width, t.canvas.height), + I.set(0, 0, t.canvas.width, t.canvas.height), + s.reset(), + a.reset(), + o.reset(); + }, + }; + } + function ps(t, e, n, i, r, s, a) { + const o = r.isWebGL2, + l = r.maxTextures, + c = r.maxCubemapSize, + x = r.maxTextureSize, + R = r.maxSamples, + C = new WeakMap(); + let P, + D = !1; + try { + D = + 'undefined' != typeof OffscreenCanvas && + null !== new OffscreenCanvas(1, 1).getContext('2d'); + } catch (t) {} + function I(t, e) { + return D + ? new OffscreenCanvas(t, e) + : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'); + } + function N(t, e, n, i) { + let r = 1; + if ( + ((t.width > i || t.height > i) && (r = i / Math.max(t.width, t.height)), + r < 1 || !0 === e) + ) { + if ( + ('undefined' != typeof HTMLImageElement && + t instanceof HTMLImageElement) || + ('undefined' != typeof HTMLCanvasElement && + t instanceof HTMLCanvasElement) || + ('undefined' != typeof ImageBitmap && t instanceof ImageBitmap) + ) { + const i = e ? ft : Math.floor, + s = i(r * t.width), + a = i(r * t.height); + void 0 === P && (P = I(s, a)); + const o = n ? I(s, a) : P; + (o.width = s), (o.height = a); + return ( + o.getContext('2d').drawImage(t, 0, 0, s, a), + console.warn( + 'THREE.WebGLRenderer: Texture has been resized from (' + + t.width + + 'x' + + t.height + + ') to (' + + s + + 'x' + + a + + ').' + ), + o + ); + } + return ( + 'data' in t && + console.warn( + 'THREE.WebGLRenderer: Image in DataTexture is too big (' + + t.width + + 'x' + + t.height + + ').' + ), + t + ); + } + return t; + } + function B(t) { + return pt(t.width) && pt(t.height); + } + function z(t, e) { + return t.generateMipmaps && e && t.minFilter !== p && t.minFilter !== g; + } + function F(e, n, r, s) { + t.generateMipmap(e); + i.get(n).__maxMipLevel = Math.log2(Math.max(r, s)); + } + function O(n, i, r) { + if (!1 === o) return i; + if (null !== n) { + if (void 0 !== t[n]) return t[n]; + console.warn( + "THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '" + + n + + "'" + ); + } + let s = i; + return ( + 6403 === i && + (5126 === r && (s = 33326), + 5131 === r && (s = 33325), + 5121 === r && (s = 33321)), + 6407 === i && + (5126 === r && (s = 34837), + 5131 === r && (s = 34843), + 5121 === r && (s = 32849)), + 6408 === i && + (5126 === r && (s = 34836), + 5131 === r && (s = 34842), + 5121 === r && (s = 32856)), + (33325 !== s && 33326 !== s && 34842 !== s && 34836 !== s) || + e.get('EXT_color_buffer_float'), + s + ); + } + function H(t) { + return t === p || t === m || t === f ? 9728 : 9729; + } + function G(e) { + const n = e.target; + n.removeEventListener('dispose', G), + (function (e) { + const n = i.get(e); + if (void 0 === n.__webglInit) return; + t.deleteTexture(n.__webglTexture), i.remove(e); + })(n), + n.isVideoTexture && C.delete(n), + a.memory.textures--; + } + function U(e) { + const n = e.target; + n.removeEventListener('dispose', U), + (function (e) { + const n = e.texture, + r = i.get(e), + s = i.get(n); + if (!e) return; + void 0 !== s.__webglTexture && t.deleteTexture(s.__webglTexture); + e.depthTexture && e.depthTexture.dispose(); + if (e.isWebGLCubeRenderTarget) + for (let e = 0; e < 6; e++) + t.deleteFramebuffer(r.__webglFramebuffer[e]), + r.__webglDepthbuffer && + t.deleteRenderbuffer(r.__webglDepthbuffer[e]); + else + t.deleteFramebuffer(r.__webglFramebuffer), + r.__webglDepthbuffer && + t.deleteRenderbuffer(r.__webglDepthbuffer), + r.__webglMultisampledFramebuffer && + t.deleteFramebuffer(r.__webglMultisampledFramebuffer), + r.__webglColorRenderbuffer && + t.deleteRenderbuffer(r.__webglColorRenderbuffer), + r.__webglDepthRenderbuffer && + t.deleteRenderbuffer(r.__webglDepthRenderbuffer); + i.remove(n), i.remove(e); + })(n), + a.memory.textures--; + } + let k = 0; + function V(t, e) { + const r = i.get(t); + if ( + (t.isVideoTexture && + (function (t) { + const e = a.render.frame; + C.get(t) !== e && (C.set(t, e), t.update()); + })(t), + t.version > 0 && r.__version !== t.version) + ) { + const n = t.image; + if (void 0 === n) + console.warn( + 'THREE.WebGLRenderer: Texture marked for update but image is undefined' + ); + else { + if (!1 !== n.complete) return void Z(r, t, e); + console.warn( + 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' + ); + } + } + n.activeTexture(33984 + e), n.bindTexture(3553, r.__webglTexture); + } + function W(e, r) { + const a = i.get(e); + e.version > 0 && a.__version !== e.version + ? (function (e, i, r) { + if (6 !== i.image.length) return; + Y(e, i), + n.activeTexture(33984 + r), + n.bindTexture(34067, e.__webglTexture), + t.pixelStorei(37440, i.flipY), + t.pixelStorei(37441, i.premultiplyAlpha), + t.pixelStorei(3317, i.unpackAlignment), + t.pixelStorei(37443, 0); + const a = + i && (i.isCompressedTexture || i.image[0].isCompressedTexture), + l = i.image[0] && i.image[0].isDataTexture, + h = []; + for (let t = 0; t < 6; t++) + h[t] = + a || l + ? l + ? i.image[t].image + : i.image[t] + : N(i.image[t], !1, !0, c); + const u = h[0], + d = B(u) || o, + p = s.convert(i.format), + m = s.convert(i.type), + f = O(i.internalFormat, p, m); + let g; + if ((X(34067, i, d), a)) { + for (let t = 0; t < 6; t++) { + g = h[t].mipmaps; + for (let e = 0; e < g.length; e++) { + const r = g[e]; + i.format !== E && i.format !== T + ? null !== p + ? n.compressedTexImage2D( + 34069 + t, + e, + f, + r.width, + r.height, + 0, + r.data + ) + : console.warn( + 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' + ) + : n.texImage2D( + 34069 + t, + e, + f, + r.width, + r.height, + 0, + p, + m, + r.data + ); + } + } + e.__maxMipLevel = g.length - 1; + } else { + g = i.mipmaps; + for (let t = 0; t < 6; t++) + if (l) { + n.texImage2D( + 34069 + t, + 0, + f, + h[t].width, + h[t].height, + 0, + p, + m, + h[t].data + ); + for (let e = 0; e < g.length; e++) { + const i = g[e].image[t].image; + n.texImage2D( + 34069 + t, + e + 1, + f, + i.width, + i.height, + 0, + p, + m, + i.data + ); + } + } else { + n.texImage2D(34069 + t, 0, f, p, m, h[t]); + for (let e = 0; e < g.length; e++) { + const i = g[e]; + n.texImage2D(34069 + t, e + 1, f, p, m, i.image[t]); + } + } + e.__maxMipLevel = g.length; + } + z(i, d) && F(34067, i, u.width, u.height); + (e.__version = i.version), i.onUpdate && i.onUpdate(i); + })(a, e, r) + : (n.activeTexture(33984 + r), n.bindTexture(34067, a.__webglTexture)); + } + const j = { [h]: 10497, [u]: 33071, [d]: 33648 }, + q = { [p]: 9728, [m]: 9984, [f]: 9986, [g]: 9729, [v]: 9985, [y]: 9987 }; + function X(n, s, a) { + if ( + (a + ? (t.texParameteri(n, 10242, j[s.wrapS]), + t.texParameteri(n, 10243, j[s.wrapT]), + (32879 !== n && 35866 !== n) || + t.texParameteri(n, 32882, j[s.wrapR]), + t.texParameteri(n, 10240, q[s.magFilter]), + t.texParameteri(n, 10241, q[s.minFilter])) + : (t.texParameteri(n, 10242, 33071), + t.texParameteri(n, 10243, 33071), + (32879 !== n && 35866 !== n) || t.texParameteri(n, 32882, 33071), + (s.wrapS === u && s.wrapT === u) || + console.warn( + 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.' + ), + t.texParameteri(n, 10240, H(s.magFilter)), + t.texParameteri(n, 10241, H(s.minFilter)), + s.minFilter !== p && + s.minFilter !== g && + console.warn( + 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.' + )), + !0 === e.has('EXT_texture_filter_anisotropic')) + ) { + const a = e.get('EXT_texture_filter_anisotropic'); + if (s.type === b && !1 === e.has('OES_texture_float_linear')) return; + if ( + !1 === o && + s.type === M && + !1 === e.has('OES_texture_half_float_linear') + ) + return; + (s.anisotropy > 1 || i.get(s).__currentAnisotropy) && + (t.texParameterf( + n, + a.TEXTURE_MAX_ANISOTROPY_EXT, + Math.min(s.anisotropy, r.getMaxAnisotropy()) + ), + (i.get(s).__currentAnisotropy = s.anisotropy)); + } + } + function Y(e, n) { + void 0 === e.__webglInit && + ((e.__webglInit = !0), + n.addEventListener('dispose', G), + (e.__webglTexture = t.createTexture()), + a.memory.textures++); + } + function Z(e, i, r) { + let a = 3553; + i.isDataTexture2DArray && (a = 35866), + i.isDataTexture3D && (a = 32879), + Y(e, i), + n.activeTexture(33984 + r), + n.bindTexture(a, e.__webglTexture), + t.pixelStorei(37440, i.flipY), + t.pixelStorei(37441, i.premultiplyAlpha), + t.pixelStorei(3317, i.unpackAlignment), + t.pixelStorei(37443, 0); + const l = + (function (t) { + return ( + !o && + (t.wrapS !== u || + t.wrapT !== u || + (t.minFilter !== p && t.minFilter !== g)) + ); + })(i) && !1 === B(i.image), + c = N(i.image, l, !1, x), + h = B(c) || o, + d = s.convert(i.format); + let m, + f = s.convert(i.type), + v = O(i.internalFormat, d, f); + X(a, i, h); + const y = i.mipmaps; + if (i.isDepthTexture) + (v = 6402), + o + ? (v = + i.type === b + ? 36012 + : i.type === w + ? 33190 + : i.type === S + ? 35056 + : 33189) + : i.type === b && + console.error( + 'WebGLRenderer: Floating point depth texture requires WebGL2.' + ), + i.format === A && + 6402 === v && + i.type !== _ && + i.type !== w && + (console.warn( + 'THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.' + ), + (i.type = _), + (f = s.convert(i.type))), + i.format === L && + 6402 === v && + ((v = 34041), + i.type !== S && + (console.warn( + 'THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.' + ), + (i.type = S), + (f = s.convert(i.type)))), + n.texImage2D(3553, 0, v, c.width, c.height, 0, d, f, null); + else if (i.isDataTexture) + if (y.length > 0 && h) { + for (let t = 0, e = y.length; t < e; t++) + (m = y[t]), + n.texImage2D(3553, t, v, m.width, m.height, 0, d, f, m.data); + (i.generateMipmaps = !1), (e.__maxMipLevel = y.length - 1); + } else + n.texImage2D(3553, 0, v, c.width, c.height, 0, d, f, c.data), + (e.__maxMipLevel = 0); + else if (i.isCompressedTexture) { + for (let t = 0, e = y.length; t < e; t++) + (m = y[t]), + i.format !== E && i.format !== T + ? null !== d + ? n.compressedTexImage2D( + 3553, + t, + v, + m.width, + m.height, + 0, + m.data + ) + : console.warn( + 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' + ) + : n.texImage2D(3553, t, v, m.width, m.height, 0, d, f, m.data); + e.__maxMipLevel = y.length - 1; + } else if (i.isDataTexture2DArray) + n.texImage3D(35866, 0, v, c.width, c.height, c.depth, 0, d, f, c.data), + (e.__maxMipLevel = 0); + else if (i.isDataTexture3D) + n.texImage3D(32879, 0, v, c.width, c.height, c.depth, 0, d, f, c.data), + (e.__maxMipLevel = 0); + else if (y.length > 0 && h) { + for (let t = 0, e = y.length; t < e; t++) + (m = y[t]), n.texImage2D(3553, t, v, d, f, m); + (i.generateMipmaps = !1), (e.__maxMipLevel = y.length - 1); + } else n.texImage2D(3553, 0, v, d, f, c), (e.__maxMipLevel = 0); + z(i, h) && F(a, i, c.width, c.height), + (e.__version = i.version), + i.onUpdate && i.onUpdate(i); + } + function J(e, r, a, o) { + const l = r.texture, + c = s.convert(l.format), + h = s.convert(l.type), + u = O(l.internalFormat, c, h); + 32879 === o || 35866 === o + ? n.texImage3D(o, 0, u, r.width, r.height, r.depth, 0, c, h, null) + : n.texImage2D(o, 0, u, r.width, r.height, 0, c, h, null), + n.bindFramebuffer(36160, e), + t.framebufferTexture2D(36160, a, o, i.get(l).__webglTexture, 0), + n.bindFramebuffer(36160, null); + } + function Q(e, n, i) { + if ((t.bindRenderbuffer(36161, e), n.depthBuffer && !n.stencilBuffer)) { + let r = 33189; + if (i) { + const e = n.depthTexture; + e && + e.isDepthTexture && + (e.type === b ? (r = 36012) : e.type === w && (r = 33190)); + const i = $(n); + t.renderbufferStorageMultisample(36161, i, r, n.width, n.height); + } else t.renderbufferStorage(36161, r, n.width, n.height); + t.framebufferRenderbuffer(36160, 36096, 36161, e); + } else if (n.depthBuffer && n.stencilBuffer) { + if (i) { + const e = $(n); + t.renderbufferStorageMultisample(36161, e, 35056, n.width, n.height); + } else t.renderbufferStorage(36161, 34041, n.width, n.height); + t.framebufferRenderbuffer(36160, 33306, 36161, e); + } else { + const e = n.texture, + r = s.convert(e.format), + a = s.convert(e.type), + o = O(e.internalFormat, r, a); + if (i) { + const e = $(n); + t.renderbufferStorageMultisample(36161, e, o, n.width, n.height); + } else t.renderbufferStorage(36161, o, n.width, n.height); + } + t.bindRenderbuffer(36161, null); + } + function K(e) { + const r = i.get(e), + s = !0 === e.isWebGLCubeRenderTarget; + if (e.depthTexture) { + if (s) + throw new Error( + 'target.depthTexture not supported in Cube render targets' + ); + !(function (e, r) { + if (r && r.isWebGLCubeRenderTarget) + throw new Error( + 'Depth Texture with cube render targets is not supported' + ); + if ( + (n.bindFramebuffer(36160, e), + !r.depthTexture || !r.depthTexture.isDepthTexture) + ) + throw new Error( + 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' + ); + (i.get(r.depthTexture).__webglTexture && + r.depthTexture.image.width === r.width && + r.depthTexture.image.height === r.height) || + ((r.depthTexture.image.width = r.width), + (r.depthTexture.image.height = r.height), + (r.depthTexture.needsUpdate = !0)), + V(r.depthTexture, 0); + const s = i.get(r.depthTexture).__webglTexture; + if (r.depthTexture.format === A) + t.framebufferTexture2D(36160, 36096, 3553, s, 0); + else { + if (r.depthTexture.format !== L) + throw new Error('Unknown depthTexture format'); + t.framebufferTexture2D(36160, 33306, 3553, s, 0); + } + })(r.__webglFramebuffer, e); + } else if (s) { + r.__webglDepthbuffer = []; + for (let i = 0; i < 6; i++) + n.bindFramebuffer(36160, r.__webglFramebuffer[i]), + (r.__webglDepthbuffer[i] = t.createRenderbuffer()), + Q(r.__webglDepthbuffer[i], e, !1); + } else + n.bindFramebuffer(36160, r.__webglFramebuffer), + (r.__webglDepthbuffer = t.createRenderbuffer()), + Q(r.__webglDepthbuffer, e, !1); + n.bindFramebuffer(36160, null); + } + function $(t) { + return o && t.isWebGLMultisampleRenderTarget ? Math.min(R, t.samples) : 0; + } + let tt = !1, + et = !1; + (this.allocateTextureUnit = function () { + const t = k; + return ( + t >= l && + console.warn( + 'THREE.WebGLTextures: Trying to use ' + + t + + ' texture units while this GPU supports only ' + + l + ), + (k += 1), + t + ); + }), + (this.resetTextureUnits = function () { + k = 0; + }), + (this.setTexture2D = V), + (this.setTexture2DArray = function (t, e) { + const r = i.get(t); + t.version > 0 && r.__version !== t.version + ? Z(r, t, e) + : (n.activeTexture(33984 + e), + n.bindTexture(35866, r.__webglTexture)); + }), + (this.setTexture3D = function (t, e) { + const r = i.get(t); + t.version > 0 && r.__version !== t.version + ? Z(r, t, e) + : (n.activeTexture(33984 + e), + n.bindTexture(32879, r.__webglTexture)); + }), + (this.setTextureCube = W), + (this.setupRenderTarget = function (e) { + const r = e.texture, + l = i.get(e), + c = i.get(r); + e.addEventListener('dispose', U), + (c.__webglTexture = t.createTexture()), + (c.__version = r.version), + a.memory.textures++; + const h = !0 === e.isWebGLCubeRenderTarget, + u = !0 === e.isWebGLMultisampleRenderTarget, + d = r.isDataTexture3D || r.isDataTexture2DArray, + p = B(e) || o; + if ( + (!o || + r.format !== T || + (r.type !== b && r.type !== M) || + ((r.format = E), + console.warn( + 'THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.' + )), + h) + ) { + l.__webglFramebuffer = []; + for (let e = 0; e < 6; e++) + l.__webglFramebuffer[e] = t.createFramebuffer(); + } else if (((l.__webglFramebuffer = t.createFramebuffer()), u)) + if (o) { + (l.__webglMultisampledFramebuffer = t.createFramebuffer()), + (l.__webglColorRenderbuffer = t.createRenderbuffer()), + t.bindRenderbuffer(36161, l.__webglColorRenderbuffer); + const i = s.convert(r.format), + a = s.convert(r.type), + o = O(r.internalFormat, i, a), + c = $(e); + t.renderbufferStorageMultisample(36161, c, o, e.width, e.height), + n.bindFramebuffer(36160, l.__webglMultisampledFramebuffer), + t.framebufferRenderbuffer( + 36160, + 36064, + 36161, + l.__webglColorRenderbuffer + ), + t.bindRenderbuffer(36161, null), + e.depthBuffer && + ((l.__webglDepthRenderbuffer = t.createRenderbuffer()), + Q(l.__webglDepthRenderbuffer, e, !0)), + n.bindFramebuffer(36160, null); + } else + console.warn( + 'THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.' + ); + if (h) { + n.bindTexture(34067, c.__webglTexture), X(34067, r, p); + for (let t = 0; t < 6; t++) + J(l.__webglFramebuffer[t], e, 36064, 34069 + t); + z(r, p) && F(34067, r, e.width, e.height), n.bindTexture(34067, null); + } else { + let t = 3553; + if (d) + if (o) { + t = r.isDataTexture3D ? 32879 : 35866; + } else + console.warn( + 'THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.' + ); + n.bindTexture(t, c.__webglTexture), + X(t, r, p), + J(l.__webglFramebuffer, e, 36064, t), + z(r, p) && F(3553, r, e.width, e.height), + n.bindTexture(3553, null); + } + e.depthBuffer && K(e); + }), + (this.updateRenderTargetMipmap = function (t) { + const e = t.texture; + if (z(e, B(t) || o)) { + const r = t.isWebGLCubeRenderTarget ? 34067 : 3553, + s = i.get(e).__webglTexture; + n.bindTexture(r, s), + F(r, e, t.width, t.height), + n.bindTexture(r, null); + } + }), + (this.updateMultisampleRenderTarget = function (e) { + if (e.isWebGLMultisampleRenderTarget) + if (o) { + const r = e.width, + s = e.height; + let a = 16384; + e.depthBuffer && (a |= 256), e.stencilBuffer && (a |= 1024); + const o = i.get(e); + n.bindFramebuffer(36008, o.__webglMultisampledFramebuffer), + n.bindFramebuffer(36009, o.__webglFramebuffer), + t.blitFramebuffer(0, 0, r, s, 0, 0, r, s, a, 9728), + n.bindFramebuffer(36008, null), + n.bindFramebuffer(36009, o.__webglMultisampledFramebuffer); + } else + console.warn( + 'THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.' + ); + }), + (this.safeSetTexture2D = function (t, e) { + t && + t.isWebGLRenderTarget && + (!1 === tt && + (console.warn( + "THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead." + ), + (tt = !0)), + (t = t.texture)), + V(t, e); + }), + (this.safeSetTextureCube = function (t, e) { + t && + t.isWebGLCubeRenderTarget && + (!1 === et && + (console.warn( + "THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead." + ), + (et = !0)), + (t = t.texture)), + W(t, e); + }); + } + function ms(t, e, n) { + const i = n.isWebGL2; + return { + convert: function (t) { + let n; + if (t === x) return 5121; + if (1017 === t) return 32819; + if (1018 === t) return 32820; + if (1019 === t) return 33635; + if (1010 === t) return 5120; + if (1011 === t) return 5122; + if (t === _) return 5123; + if (1013 === t) return 5124; + if (t === w) return 5125; + if (t === b) return 5126; + if (t === M) + return i + ? 5131 + : ((n = e.get('OES_texture_half_float')), + null !== n ? n.HALF_FLOAT_OES : null); + if (1021 === t) return 6406; + if (t === T) return 6407; + if (t === E) return 6408; + if (1024 === t) return 6409; + if (1025 === t) return 6410; + if (t === A) return 6402; + if (t === L) return 34041; + if (1028 === t) return 6403; + if (1029 === t) return 36244; + if (1030 === t) return 33319; + if (1031 === t) return 33320; + if (1032 === t) return 36248; + if (1033 === t) return 36249; + if (t === R || t === C || t === P || t === D) { + if (((n = e.get('WEBGL_compressed_texture_s3tc')), null === n)) + return null; + if (t === R) return n.COMPRESSED_RGB_S3TC_DXT1_EXT; + if (t === C) return n.COMPRESSED_RGBA_S3TC_DXT1_EXT; + if (t === P) return n.COMPRESSED_RGBA_S3TC_DXT3_EXT; + if (t === D) return n.COMPRESSED_RGBA_S3TC_DXT5_EXT; + } + if (t === I || t === N || t === B || t === z) { + if (((n = e.get('WEBGL_compressed_texture_pvrtc')), null === n)) + return null; + if (t === I) return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + if (t === N) return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; + if (t === B) return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + if (t === z) return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + } + if (36196 === t) + return ( + (n = e.get('WEBGL_compressed_texture_etc1')), + null !== n ? n.COMPRESSED_RGB_ETC1_WEBGL : null + ); + if ( + (t === F || t === O) && + ((n = e.get('WEBGL_compressed_texture_etc')), null !== n) + ) { + if (t === F) return n.COMPRESSED_RGB8_ETC2; + if (t === O) return n.COMPRESSED_RGBA8_ETC2_EAC; + } + return 37808 === t || + 37809 === t || + 37810 === t || + 37811 === t || + 37812 === t || + 37813 === t || + 37814 === t || + 37815 === t || + 37816 === t || + 37817 === t || + 37818 === t || + 37819 === t || + 37820 === t || + 37821 === t || + 37840 === t || + 37841 === t || + 37842 === t || + 37843 === t || + 37844 === t || + 37845 === t || + 37846 === t || + 37847 === t || + 37848 === t || + 37849 === t || + 37850 === t || + 37851 === t || + 37852 === t || + 37853 === t + ? ((n = e.get('WEBGL_compressed_texture_astc')), + null !== n ? t : null) + : 36492 === t + ? ((n = e.get('EXT_texture_compression_bptc')), + null !== n ? t : null) + : t === S + ? i + ? 34042 + : ((n = e.get('WEBGL_depth_texture')), + null !== n ? n.UNSIGNED_INT_24_8_WEBGL : null) + : void 0; + }, + }; + } + class fs extends Kn { + constructor(t = []) { + super(), (this.cameras = t); + } + } + fs.prototype.isArrayCamera = !0; + class gs extends Ce { + constructor() { + super(), (this.type = 'Group'); + } + } + gs.prototype.isGroup = !0; + const vs = { type: 'move' }; + class ys { + constructor() { + (this._targetRay = null), (this._grip = null), (this._hand = null); + } + getHandSpace() { + return ( + null === this._hand && + ((this._hand = new gs()), + (this._hand.matrixAutoUpdate = !1), + (this._hand.visible = !1), + (this._hand.joints = {}), + (this._hand.inputState = { pinching: !1 })), + this._hand + ); + } + getTargetRaySpace() { + return ( + null === this._targetRay && + ((this._targetRay = new gs()), + (this._targetRay.matrixAutoUpdate = !1), + (this._targetRay.visible = !1), + (this._targetRay.hasLinearVelocity = !1), + (this._targetRay.linearVelocity = new Lt()), + (this._targetRay.hasAngularVelocity = !1), + (this._targetRay.angularVelocity = new Lt())), + this._targetRay + ); + } + getGripSpace() { + return ( + null === this._grip && + ((this._grip = new gs()), + (this._grip.matrixAutoUpdate = !1), + (this._grip.visible = !1), + (this._grip.hasLinearVelocity = !1), + (this._grip.linearVelocity = new Lt()), + (this._grip.hasAngularVelocity = !1), + (this._grip.angularVelocity = new Lt())), + this._grip + ); + } + dispatchEvent(t) { + return ( + null !== this._targetRay && this._targetRay.dispatchEvent(t), + null !== this._grip && this._grip.dispatchEvent(t), + null !== this._hand && this._hand.dispatchEvent(t), + this + ); + } + disconnect(t) { + return ( + this.dispatchEvent({ type: 'disconnected', data: t }), + null !== this._targetRay && (this._targetRay.visible = !1), + null !== this._grip && (this._grip.visible = !1), + null !== this._hand && (this._hand.visible = !1), + this + ); + } + update(t, e, n) { + let i = null, + r = null, + s = null; + const a = this._targetRay, + o = this._grip, + l = this._hand; + if (t && 'visible-blurred' !== e.session.visibilityState) + if ( + (null !== a && + ((i = e.getPose(t.targetRaySpace, n)), + null !== i && + (a.matrix.fromArray(i.transform.matrix), + a.matrix.decompose(a.position, a.rotation, a.scale), + i.linearVelocity + ? ((a.hasLinearVelocity = !0), + a.linearVelocity.copy(i.linearVelocity)) + : (a.hasLinearVelocity = !1), + i.angularVelocity + ? ((a.hasAngularVelocity = !0), + a.angularVelocity.copy(i.angularVelocity)) + : (a.hasAngularVelocity = !1), + this.dispatchEvent(vs))), + l && t.hand) + ) { + s = !0; + for (const i of t.hand.values()) { + const t = e.getJointPose(i, n); + if (void 0 === l.joints[i.jointName]) { + const t = new gs(); + (t.matrixAutoUpdate = !1), + (t.visible = !1), + (l.joints[i.jointName] = t), + l.add(t); + } + const r = l.joints[i.jointName]; + null !== t && + (r.matrix.fromArray(t.transform.matrix), + r.matrix.decompose(r.position, r.rotation, r.scale), + (r.jointRadius = t.radius)), + (r.visible = null !== t); + } + const i = l.joints['index-finger-tip'], + r = l.joints['thumb-tip'], + a = i.position.distanceTo(r.position), + o = 0.02, + c = 0.005; + l.inputState.pinching && a > o + c + ? ((l.inputState.pinching = !1), + this.dispatchEvent({ + type: 'pinchend', + handedness: t.handedness, + target: this, + })) + : !l.inputState.pinching && + a <= o - c && + ((l.inputState.pinching = !0), + this.dispatchEvent({ + type: 'pinchstart', + handedness: t.handedness, + target: this, + })); + } else + null !== o && + t.gripSpace && + ((r = e.getPose(t.gripSpace, n)), + null !== r && + (o.matrix.fromArray(r.transform.matrix), + o.matrix.decompose(o.position, o.rotation, o.scale), + r.linearVelocity + ? ((o.hasLinearVelocity = !0), + o.linearVelocity.copy(r.linearVelocity)) + : (o.hasLinearVelocity = !1), + r.angularVelocity + ? ((o.hasAngularVelocity = !0), + o.angularVelocity.copy(r.angularVelocity)) + : (o.hasAngularVelocity = !1))); + return ( + null !== a && (a.visible = null !== i), + null !== o && (o.visible = null !== r), + null !== l && (l.visible = null !== s), + this + ); + } + } + class xs extends rt { + constructor(t, e) { + super(); + const n = this, + i = t.state; + let r = null, + s = 1, + a = null, + o = 'local-floor', + l = null; + const c = [], + h = new Map(), + u = new Kn(); + u.layers.enable(1), (u.viewport = new St()); + const d = new Kn(); + d.layers.enable(2), (d.viewport = new St()); + const p = [u, d], + m = new fs(); + m.layers.enable(1), m.layers.enable(2); + let f = null, + g = null; + function v(t) { + const e = h.get(t.inputSource); + e && e.dispatchEvent({ type: t.type, data: t.inputSource }); + } + function y() { + h.forEach(function (t, e) { + t.disconnect(e); + }), + h.clear(), + (f = null), + (g = null), + i.bindXRFramebuffer(null), + t.setRenderTarget(t.getRenderTarget()), + S.stop(), + (n.isPresenting = !1), + n.dispatchEvent({ type: 'sessionend' }); + } + function x(t) { + const e = r.inputSources; + for (let t = 0; t < c.length; t++) h.set(e[t], c[t]); + for (let e = 0; e < t.removed.length; e++) { + const n = t.removed[e], + i = h.get(n); + i && + (i.dispatchEvent({ type: 'disconnected', data: n }), h.delete(n)); + } + for (let e = 0; e < t.added.length; e++) { + const n = t.added[e], + i = h.get(n); + i && i.dispatchEvent({ type: 'connected', data: n }); + } + } + (this.enabled = !1), + (this.isPresenting = !1), + (this.getController = function (t) { + let e = c[t]; + return ( + void 0 === e && ((e = new ys()), (c[t] = e)), e.getTargetRaySpace() + ); + }), + (this.getControllerGrip = function (t) { + let e = c[t]; + return void 0 === e && ((e = new ys()), (c[t] = e)), e.getGripSpace(); + }), + (this.getHand = function (t) { + let e = c[t]; + return void 0 === e && ((e = new ys()), (c[t] = e)), e.getHandSpace(); + }), + (this.setFramebufferScaleFactor = function (t) { + (s = t), + !0 === n.isPresenting && + console.warn( + 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' + ); + }), + (this.setReferenceSpaceType = function (t) { + (o = t), + !0 === n.isPresenting && + console.warn( + 'THREE.WebXRManager: Cannot change reference space type while presenting.' + ); + }), + (this.getReferenceSpace = function () { + return a; + }), + (this.getSession = function () { + return r; + }), + (this.setSession = async function (t) { + if (((r = t), null !== r)) { + r.addEventListener('select', v), + r.addEventListener('selectstart', v), + r.addEventListener('selectend', v), + r.addEventListener('squeeze', v), + r.addEventListener('squeezestart', v), + r.addEventListener('squeezeend', v), + r.addEventListener('end', y), + r.addEventListener('inputsourceschange', x); + const t = e.getContextAttributes(); + !0 !== t.xrCompatible && (await e.makeXRCompatible()); + const i = { + antialias: t.antialias, + alpha: t.alpha, + depth: t.depth, + stencil: t.stencil, + framebufferScaleFactor: s, + }, + l = new XRWebGLLayer(r, e, i); + r.updateRenderState({ baseLayer: l }), + (a = await r.requestReferenceSpace(o)), + S.setContext(r), + S.start(), + (n.isPresenting = !0), + n.dispatchEvent({ type: 'sessionstart' }); + } + }); + const _ = new Lt(), + w = new Lt(); + function b(t, e) { + null === e + ? t.matrixWorld.copy(t.matrix) + : t.matrixWorld.multiplyMatrices(e.matrixWorld, t.matrix), + t.matrixWorldInverse.copy(t.matrixWorld).invert(); + } + this.getCamera = function (t) { + (m.near = d.near = u.near = t.near), + (m.far = d.far = u.far = t.far), + (f === m.near && g === m.far) || + (r.updateRenderState({ depthNear: m.near, depthFar: m.far }), + (f = m.near), + (g = m.far)); + const e = t.parent, + n = m.cameras; + b(m, e); + for (let t = 0; t < n.length; t++) b(n[t], e); + t.matrixWorld.copy(m.matrixWorld), + t.matrix.copy(m.matrix), + t.matrix.decompose(t.position, t.quaternion, t.scale); + const i = t.children; + for (let t = 0, e = i.length; t < e; t++) i[t].updateMatrixWorld(!0); + return ( + 2 === n.length + ? (function (t, e, n) { + _.setFromMatrixPosition(e.matrixWorld), + w.setFromMatrixPosition(n.matrixWorld); + const i = _.distanceTo(w), + r = e.projectionMatrix.elements, + s = n.projectionMatrix.elements, + a = r[14] / (r[10] - 1), + o = r[14] / (r[10] + 1), + l = (r[9] + 1) / r[5], + c = (r[9] - 1) / r[5], + h = (r[8] - 1) / r[0], + u = (s[8] + 1) / s[0], + d = a * h, + p = a * u, + m = i / (-h + u), + f = m * -h; + e.matrixWorld.decompose(t.position, t.quaternion, t.scale), + t.translateX(f), + t.translateZ(m), + t.matrixWorld.compose(t.position, t.quaternion, t.scale), + t.matrixWorldInverse.copy(t.matrixWorld).invert(); + const g = a + m, + v = o + m, + y = d - f, + x = p + (i - f), + b = ((l * o) / v) * g, + M = ((c * o) / v) * g; + t.projectionMatrix.makePerspective(y, x, b, M, g, v); + })(m, u, d) + : m.projectionMatrix.copy(u.projectionMatrix), + m + ); + }; + let M = null; + const S = new oi(); + S.setAnimationLoop(function (t, e) { + if (((l = e.getViewerPose(a)), null !== l)) { + const t = l.views, + e = r.renderState.baseLayer; + i.bindXRFramebuffer(e.framebuffer); + let n = !1; + t.length !== m.cameras.length && ((m.cameras.length = 0), (n = !0)); + for (let i = 0; i < t.length; i++) { + const r = t[i], + s = e.getViewport(r), + a = p[i]; + a.matrix.fromArray(r.transform.matrix), + a.projectionMatrix.fromArray(r.projectionMatrix), + a.viewport.set(s.x, s.y, s.width, s.height), + 0 === i && m.matrix.copy(a.matrix), + !0 === n && m.cameras.push(a); + } + } + const n = r.inputSources; + for (let t = 0; t < c.length; t++) { + const i = c[t], + r = n[t]; + i.update(r, e, a); + } + M && M(t, e); + }), + (this.setAnimationLoop = function (t) { + M = t; + }), + (this.dispose = function () {}); + } + } + function _s(t) { + function e(e, n) { + (e.opacity.value = n.opacity), + n.color && e.diffuse.value.copy(n.color), + n.emissive && + e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity), + n.map && (e.map.value = n.map), + n.alphaMap && (e.alphaMap.value = n.alphaMap), + n.specularMap && (e.specularMap.value = n.specularMap); + const i = t.get(n).envMap; + if (i) { + (e.envMap.value = i), + (e.flipEnvMap.value = i.isCubeTexture && i._needsFlipEnvMap ? -1 : 1), + (e.reflectivity.value = n.reflectivity), + (e.refractionRatio.value = n.refractionRatio); + const r = t.get(i).__maxMipLevel; + void 0 !== r && (e.maxMipLevel.value = r); + } + let r, s; + n.lightMap && + ((e.lightMap.value = n.lightMap), + (e.lightMapIntensity.value = n.lightMapIntensity)), + n.aoMap && + ((e.aoMap.value = n.aoMap), + (e.aoMapIntensity.value = n.aoMapIntensity)), + n.map + ? (r = n.map) + : n.specularMap + ? (r = n.specularMap) + : n.displacementMap + ? (r = n.displacementMap) + : n.normalMap + ? (r = n.normalMap) + : n.bumpMap + ? (r = n.bumpMap) + : n.roughnessMap + ? (r = n.roughnessMap) + : n.metalnessMap + ? (r = n.metalnessMap) + : n.alphaMap + ? (r = n.alphaMap) + : n.emissiveMap + ? (r = n.emissiveMap) + : n.clearcoatMap + ? (r = n.clearcoatMap) + : n.clearcoatNormalMap + ? (r = n.clearcoatNormalMap) + : n.clearcoatRoughnessMap && + (r = n.clearcoatRoughnessMap), + void 0 !== r && + (r.isWebGLRenderTarget && (r = r.texture), + !0 === r.matrixAutoUpdate && r.updateMatrix(), + e.uvTransform.value.copy(r.matrix)), + n.aoMap ? (s = n.aoMap) : n.lightMap && (s = n.lightMap), + void 0 !== s && + (s.isWebGLRenderTarget && (s = s.texture), + !0 === s.matrixAutoUpdate && s.updateMatrix(), + e.uv2Transform.value.copy(s.matrix)); + } + function n(e, n) { + (e.roughness.value = n.roughness), + (e.metalness.value = n.metalness), + n.roughnessMap && (e.roughnessMap.value = n.roughnessMap), + n.metalnessMap && (e.metalnessMap.value = n.metalnessMap), + n.emissiveMap && (e.emissiveMap.value = n.emissiveMap), + n.bumpMap && + ((e.bumpMap.value = n.bumpMap), + (e.bumpScale.value = n.bumpScale), + 1 === n.side && (e.bumpScale.value *= -1)), + n.normalMap && + ((e.normalMap.value = n.normalMap), + e.normalScale.value.copy(n.normalScale), + 1 === n.side && e.normalScale.value.negate()), + n.displacementMap && + ((e.displacementMap.value = n.displacementMap), + (e.displacementScale.value = n.displacementScale), + (e.displacementBias.value = n.displacementBias)); + t.get(n).envMap && (e.envMapIntensity.value = n.envMapIntensity); + } + return { + refreshFogUniforms: function (t, e) { + t.fogColor.value.copy(e.color), + e.isFog + ? ((t.fogNear.value = e.near), (t.fogFar.value = e.far)) + : e.isFogExp2 && (t.fogDensity.value = e.density); + }, + refreshMaterialUniforms: function (t, i, r, s) { + i.isMeshBasicMaterial + ? e(t, i) + : i.isMeshLambertMaterial + ? (e(t, i), + (function (t, e) { + e.emissiveMap && (t.emissiveMap.value = e.emissiveMap); + })(t, i)) + : i.isMeshToonMaterial + ? (e(t, i), + (function (t, e) { + e.gradientMap && (t.gradientMap.value = e.gradientMap); + e.emissiveMap && (t.emissiveMap.value = e.emissiveMap); + e.bumpMap && + ((t.bumpMap.value = e.bumpMap), + (t.bumpScale.value = e.bumpScale), + 1 === e.side && (t.bumpScale.value *= -1)); + e.normalMap && + ((t.normalMap.value = e.normalMap), + t.normalScale.value.copy(e.normalScale), + 1 === e.side && t.normalScale.value.negate()); + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = e.displacementScale), + (t.displacementBias.value = e.displacementBias)); + })(t, i)) + : i.isMeshPhongMaterial + ? (e(t, i), + (function (t, e) { + t.specular.value.copy(e.specular), + (t.shininess.value = Math.max(e.shininess, 1e-4)), + e.emissiveMap && (t.emissiveMap.value = e.emissiveMap); + e.bumpMap && + ((t.bumpMap.value = e.bumpMap), + (t.bumpScale.value = e.bumpScale), + 1 === e.side && (t.bumpScale.value *= -1)); + e.normalMap && + ((t.normalMap.value = e.normalMap), + t.normalScale.value.copy(e.normalScale), + 1 === e.side && t.normalScale.value.negate()); + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = e.displacementScale), + (t.displacementBias.value = e.displacementBias)); + })(t, i)) + : i.isMeshStandardMaterial + ? (e(t, i), + i.isMeshPhysicalMaterial + ? (function (t, e) { + n(t, e), + (t.reflectivity.value = e.reflectivity), + (t.clearcoat.value = e.clearcoat), + (t.clearcoatRoughness.value = e.clearcoatRoughness), + e.sheen && t.sheen.value.copy(e.sheen); + e.clearcoatMap && + (t.clearcoatMap.value = e.clearcoatMap); + e.clearcoatRoughnessMap && + (t.clearcoatRoughnessMap.value = + e.clearcoatRoughnessMap); + e.clearcoatNormalMap && + (t.clearcoatNormalScale.value.copy( + e.clearcoatNormalScale + ), + (t.clearcoatNormalMap.value = e.clearcoatNormalMap), + 1 === e.side && + t.clearcoatNormalScale.value.negate()); + (t.transmission.value = e.transmission), + e.transmissionMap && + (t.transmissionMap.value = e.transmissionMap); + })(t, i) + : n(t, i)) + : i.isMeshMatcapMaterial + ? (e(t, i), + (function (t, e) { + e.matcap && (t.matcap.value = e.matcap); + e.bumpMap && + ((t.bumpMap.value = e.bumpMap), + (t.bumpScale.value = e.bumpScale), + 1 === e.side && (t.bumpScale.value *= -1)); + e.normalMap && + ((t.normalMap.value = e.normalMap), + t.normalScale.value.copy(e.normalScale), + 1 === e.side && t.normalScale.value.negate()); + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = e.displacementScale), + (t.displacementBias.value = e.displacementBias)); + })(t, i)) + : i.isMeshDepthMaterial + ? (e(t, i), + (function (t, e) { + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = e.displacementScale), + (t.displacementBias.value = e.displacementBias)); + })(t, i)) + : i.isMeshDistanceMaterial + ? (e(t, i), + (function (t, e) { + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = e.displacementScale), + (t.displacementBias.value = e.displacementBias)); + t.referencePosition.value.copy(e.referencePosition), + (t.nearDistance.value = e.nearDistance), + (t.farDistance.value = e.farDistance); + })(t, i)) + : i.isMeshNormalMaterial + ? (e(t, i), + (function (t, e) { + e.bumpMap && + ((t.bumpMap.value = e.bumpMap), + (t.bumpScale.value = e.bumpScale), + 1 === e.side && (t.bumpScale.value *= -1)); + e.normalMap && + ((t.normalMap.value = e.normalMap), + t.normalScale.value.copy(e.normalScale), + 1 === e.side && t.normalScale.value.negate()); + e.displacementMap && + ((t.displacementMap.value = e.displacementMap), + (t.displacementScale.value = + e.displacementScale), + (t.displacementBias.value = + e.displacementBias)); + })(t, i)) + : i.isLineBasicMaterial + ? ((function (t, e) { + t.diffuse.value.copy(e.color), + (t.opacity.value = e.opacity); + })(t, i), + i.isLineDashedMaterial && + (function (t, e) { + (t.dashSize.value = e.dashSize), + (t.totalSize.value = + e.dashSize + e.gapSize), + (t.scale.value = e.scale); + })(t, i)) + : i.isPointsMaterial + ? (function (t, e, n, i) { + t.diffuse.value.copy(e.color), + (t.opacity.value = e.opacity), + (t.size.value = e.size * n), + (t.scale.value = 0.5 * i), + e.map && (t.map.value = e.map); + e.alphaMap && (t.alphaMap.value = e.alphaMap); + let r; + e.map + ? (r = e.map) + : e.alphaMap && (r = e.alphaMap); + void 0 !== r && + (!0 === r.matrixAutoUpdate && + r.updateMatrix(), + t.uvTransform.value.copy(r.matrix)); + })(t, i, r, s) + : i.isSpriteMaterial + ? (function (t, e) { + t.diffuse.value.copy(e.color), + (t.opacity.value = e.opacity), + (t.rotation.value = e.rotation), + e.map && (t.map.value = e.map); + e.alphaMap && + (t.alphaMap.value = e.alphaMap); + let n; + e.map + ? (n = e.map) + : e.alphaMap && (n = e.alphaMap); + void 0 !== n && + (!0 === n.matrixAutoUpdate && + n.updateMatrix(), + t.uvTransform.value.copy(n.matrix)); + })(t, i) + : i.isShadowMaterial + ? (t.color.value.copy(i.color), + (t.opacity.value = i.opacity)) + : i.isShaderMaterial && + (i.uniformsNeedUpdate = !1); + }, + }; + } + function ws(t) { + const e = + void 0 !== (t = t || {}).canvas + ? t.canvas + : (function () { + const t = document.createElementNS( + 'http://www.w3.org/1999/xhtml', + 'canvas' + ); + return (t.style.display = 'block'), t; + })(), + n = void 0 !== t.context ? t.context : null, + i = void 0 !== t.alpha && t.alpha, + r = void 0 === t.depth || t.depth, + s = void 0 === t.stencil || t.stencil, + a = void 0 !== t.antialias && t.antialias, + o = void 0 === t.premultipliedAlpha || t.premultipliedAlpha, + l = void 0 !== t.preserveDrawingBuffer && t.preserveDrawingBuffer, + c = void 0 !== t.powerPreference ? t.powerPreference : 'default', + h = + void 0 !== t.failIfMajorPerformanceCaveat && + t.failIfMajorPerformanceCaveat; + let u = null, + d = null; + const p = [], + m = []; + (this.domElement = e), + (this.debug = { checkShaderErrors: !0 }), + (this.autoClear = !0), + (this.autoClearColor = !0), + (this.autoClearDepth = !0), + (this.autoClearStencil = !0), + (this.sortObjects = !0), + (this.clippingPlanes = []), + (this.localClippingEnabled = !1), + (this.gammaFactor = 2), + (this.outputEncoding = X), + (this.physicallyCorrectLights = !1), + (this.toneMapping = 0), + (this.toneMappingExposure = 1); + const f = this; + let g = !1, + v = 0, + y = 0, + _ = null, + w = -1, + S = null; + const T = new St(), + A = new St(); + let L = null, + R = e.width, + C = e.height, + P = 1, + D = null, + I = null; + const N = new St(0, 0, R, C), + B = new St(0, 0, R, C); + let z = !1; + const F = new ai(); + let O = !1, + H = !1; + const G = new se(), + U = new Lt(), + k = { + background: null, + fog: null, + environment: null, + overrideMaterial: null, + isScene: !0, + }; + function V() { + return null === _ ? P : 1; + } + let W, + j, + q, + Y, + Z, + J, + Q, + K, + $, + tt, + et, + nt, + it, + rt, + st, + at, + ot, + lt, + ct, + ht, + ut, + dt, + pt = n; + function ft(t, n) { + for (let i = 0; i < t.length; i++) { + const r = t[i], + s = e.getContext(r, n); + if (null !== s) return s; + } + return null; + } + try { + const t = { + alpha: i, + depth: r, + stencil: s, + antialias: a, + premultipliedAlpha: o, + preserveDrawingBuffer: l, + powerPreference: c, + failIfMajorPerformanceCaveat: h, + }; + if ( + (e.addEventListener('webglcontextlost', xt, !1), + e.addEventListener('webglcontextrestored', _t, !1), + null === pt) + ) { + const e = ['webgl2', 'webgl', 'experimental-webgl']; + if ( + (!0 === f.isWebGL1Renderer && e.shift(), (pt = ft(e, t)), null === pt) + ) + throw ft(e) + ? new Error( + 'Error creating WebGL context with your selected attributes.' + ) + : new Error('Error creating WebGL context.'); + } + void 0 === pt.getShaderPrecisionFormat && + (pt.getShaderPrecisionFormat = function () { + return { rangeMin: 1, rangeMax: 1, precision: 1 }; + }); + } catch (t) { + throw (console.error('THREE.WebGLRenderer: ' + t.message), t); + } + function gt() { + (W = new xi(pt)), + (j = new gi(pt, W, t)), + W.init(j), + (ut = new ms(pt, W, j)), + (q = new ds(pt, W, j)), + (Y = new bi(pt)), + (Z = new Kr()), + (J = new ps(pt, W, q, Z, j, ut, Y)), + (Q = new yi(f)), + (K = new li(pt, j)), + (dt = new mi(pt, W, K, j)), + ($ = new _i(pt, K, Y, dt)), + (tt = new Ei(pt, $, K, Y)), + (lt = new Ti(pt)), + (st = new vi(Z)), + (et = new Qr(f, Q, W, j, dt, st)), + (nt = new _s(Z)), + (it = new ns(Z)), + (rt = new ls(W, j)), + (ot = new pi(f, Q, q, tt, o)), + (at = new us(f, tt, j)), + (ct = new fi(pt, W, Y, j)), + (ht = new wi(pt, W, Y, j)), + (Y.programs = et.programs), + (f.capabilities = j), + (f.extensions = W), + (f.properties = Z), + (f.renderLists = it), + (f.shadowMap = at), + (f.state = q), + (f.info = Y); + } + gt(); + const yt = new xs(f, pt); + function xt(t) { + t.preventDefault(), + console.log('THREE.WebGLRenderer: Context Lost.'), + (g = !0); + } + function _t() { + console.log('THREE.WebGLRenderer: Context Restored.'), (g = !1); + const t = Y.autoReset, + e = at.enabled, + n = at.autoUpdate, + i = at.needsUpdate, + r = at.type; + gt(), + (Y.autoReset = t), + (at.enabled = e), + (at.autoUpdate = n), + (at.needsUpdate = i), + (at.type = r); + } + function wt(t) { + const e = t.target; + e.removeEventListener('dispose', wt), + (function (t) { + (function (t) { + const e = Z.get(t).programs; + void 0 !== e && + e.forEach(function (t) { + et.releaseProgram(t); + }); + })(t), + Z.remove(t); + })(e); + } + (this.xr = yt), + (this.getContext = function () { + return pt; + }), + (this.getContextAttributes = function () { + return pt.getContextAttributes(); + }), + (this.forceContextLoss = function () { + const t = W.get('WEBGL_lose_context'); + t && t.loseContext(); + }), + (this.forceContextRestore = function () { + const t = W.get('WEBGL_lose_context'); + t && t.restoreContext(); + }), + (this.getPixelRatio = function () { + return P; + }), + (this.setPixelRatio = function (t) { + void 0 !== t && ((P = t), this.setSize(R, C, !1)); + }), + (this.getSize = function (t) { + return ( + void 0 === t && + (console.warn( + 'WebGLRenderer: .getsize() now requires a Vector2 as an argument' + ), + (t = new vt())), + t.set(R, C) + ); + }), + (this.setSize = function (t, n, i) { + yt.isPresenting + ? console.warn( + "THREE.WebGLRenderer: Can't change size while VR device is presenting." + ) + : ((R = t), + (C = n), + (e.width = Math.floor(t * P)), + (e.height = Math.floor(n * P)), + !1 !== i && + ((e.style.width = t + 'px'), (e.style.height = n + 'px')), + this.setViewport(0, 0, t, n)); + }), + (this.getDrawingBufferSize = function (t) { + return ( + void 0 === t && + (console.warn( + 'WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument' + ), + (t = new vt())), + t.set(R * P, C * P).floor() + ); + }), + (this.setDrawingBufferSize = function (t, n, i) { + (R = t), + (C = n), + (P = i), + (e.width = Math.floor(t * i)), + (e.height = Math.floor(n * i)), + this.setViewport(0, 0, t, n); + }), + (this.getCurrentViewport = function (t) { + return ( + void 0 === t && + (console.warn( + 'WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument' + ), + (t = new St())), + t.copy(T) + ); + }), + (this.getViewport = function (t) { + return t.copy(N); + }), + (this.setViewport = function (t, e, n, i) { + t.isVector4 ? N.set(t.x, t.y, t.z, t.w) : N.set(t, e, n, i), + q.viewport(T.copy(N).multiplyScalar(P).floor()); + }), + (this.getScissor = function (t) { + return t.copy(B); + }), + (this.setScissor = function (t, e, n, i) { + t.isVector4 ? B.set(t.x, t.y, t.z, t.w) : B.set(t, e, n, i), + q.scissor(A.copy(B).multiplyScalar(P).floor()); + }), + (this.getScissorTest = function () { + return z; + }), + (this.setScissorTest = function (t) { + q.setScissorTest((z = t)); + }), + (this.setOpaqueSort = function (t) { + D = t; + }), + (this.setTransparentSort = function (t) { + I = t; + }), + (this.getClearColor = function (t) { + return ( + void 0 === t && + (console.warn( + 'WebGLRenderer: .getClearColor() now requires a Color as an argument' + ), + (t = new tn())), + t.copy(ot.getClearColor()) + ); + }), + (this.setClearColor = function () { + ot.setClearColor.apply(ot, arguments); + }), + (this.getClearAlpha = function () { + return ot.getClearAlpha(); + }), + (this.setClearAlpha = function () { + ot.setClearAlpha.apply(ot, arguments); + }), + (this.clear = function (t, e, n) { + let i = 0; + (void 0 === t || t) && (i |= 16384), + (void 0 === e || e) && (i |= 256), + (void 0 === n || n) && (i |= 1024), + pt.clear(i); + }), + (this.clearColor = function () { + this.clear(!0, !1, !1); + }), + (this.clearDepth = function () { + this.clear(!1, !0, !1); + }), + (this.clearStencil = function () { + this.clear(!1, !1, !0); + }), + (this.dispose = function () { + e.removeEventListener('webglcontextlost', xt, !1), + e.removeEventListener('webglcontextrestored', _t, !1), + it.dispose(), + rt.dispose(), + Z.dispose(), + Q.dispose(), + tt.dispose(), + dt.dispose(), + yt.dispose(), + yt.removeEventListener('sessionstart', Mt), + yt.removeEventListener('sessionend', Tt), + Et.stop(); + }), + (this.renderBufferImmediate = function (t, e) { + dt.initAttributes(); + const n = Z.get(t); + t.hasPositions && !n.position && (n.position = pt.createBuffer()), + t.hasNormals && !n.normal && (n.normal = pt.createBuffer()), + t.hasUvs && !n.uv && (n.uv = pt.createBuffer()), + t.hasColors && !n.color && (n.color = pt.createBuffer()); + const i = e.getAttributes(); + t.hasPositions && + (pt.bindBuffer(34962, n.position), + pt.bufferData(34962, t.positionArray, 35048), + dt.enableAttribute(i.position), + pt.vertexAttribPointer(i.position, 3, 5126, !1, 0, 0)), + t.hasNormals && + (pt.bindBuffer(34962, n.normal), + pt.bufferData(34962, t.normalArray, 35048), + dt.enableAttribute(i.normal), + pt.vertexAttribPointer(i.normal, 3, 5126, !1, 0, 0)), + t.hasUvs && + (pt.bindBuffer(34962, n.uv), + pt.bufferData(34962, t.uvArray, 35048), + dt.enableAttribute(i.uv), + pt.vertexAttribPointer(i.uv, 2, 5126, !1, 0, 0)), + t.hasColors && + (pt.bindBuffer(34962, n.color), + pt.bufferData(34962, t.colorArray, 35048), + dt.enableAttribute(i.color), + pt.vertexAttribPointer(i.color, 3, 5126, !1, 0, 0)), + dt.disableUnusedAttributes(), + pt.drawArrays(4, 0, t.count), + (t.count = 0); + }), + (this.renderBufferDirect = function (t, e, n, i, r, s) { + null === e && (e = k); + const a = r.isMesh && r.matrixWorld.determinant() < 0, + o = It(t, e, i, r); + q.setMaterial(i, a); + let l = n.index; + const c = n.attributes.position; + if (null === l) { + if (void 0 === c || 0 === c.count) return; + } else if (0 === l.count) return; + let h, + u = 1; + !0 === i.wireframe && ((l = $.getWireframeAttribute(n)), (u = 2)), + (i.morphTargets || i.morphNormals) && lt.update(r, n, i, o), + dt.setup(r, i, o, n, l); + let d = ct; + null !== l && ((h = K.get(l)), (d = ht), d.setIndex(h)); + const p = null !== l ? l.count : c.count, + m = n.drawRange.start * u, + f = n.drawRange.count * u, + g = null !== s ? s.start * u : 0, + v = null !== s ? s.count * u : 1 / 0, + y = Math.max(m, g), + x = Math.min(p, m + f, g + v) - 1, + _ = Math.max(0, x - y + 1); + if (0 !== _) { + if (r.isMesh) + !0 === i.wireframe + ? (q.setLineWidth(i.wireframeLinewidth * V()), d.setMode(1)) + : d.setMode(4); + else if (r.isLine) { + let t = i.linewidth; + void 0 === t && (t = 1), + q.setLineWidth(t * V()), + r.isLineSegments + ? d.setMode(1) + : r.isLineLoop + ? d.setMode(2) + : d.setMode(3); + } else r.isPoints ? d.setMode(0) : r.isSprite && d.setMode(4); + if (r.isInstancedMesh) d.renderInstances(y, _, r.count); + else if (n.isInstancedBufferGeometry) { + const t = Math.min(n.instanceCount, n._maxInstanceCount); + d.renderInstances(y, _, t); + } else d.render(y, _); + } + }), + (this.compile = function (t, e) { + (d = rt.get(t)), + d.init(), + t.traverseVisible(function (t) { + t.isLight && + t.layers.test(e.layers) && + (d.pushLight(t), t.castShadow && d.pushShadow(t)); + }), + d.setupLights(), + t.traverse(function (e) { + const n = e.material; + if (n) + if (Array.isArray(n)) + for (let i = 0; i < n.length; i++) { + Pt(n[i], t, e); + } + else Pt(n, t, e); + }); + }); + let bt = null; + function Mt() { + Et.stop(); + } + function Tt() { + Et.start(); + } + const Et = new oi(); + function At(t, e, n, i) { + if (!1 === t.visible) return; + if (t.layers.test(e.layers)) + if (t.isGroup) n = t.renderOrder; + else if (t.isLOD) !0 === t.autoUpdate && t.update(e); + else if (t.isLight) d.pushLight(t), t.castShadow && d.pushShadow(t); + else if (t.isSprite) { + if (!t.frustumCulled || F.intersectsSprite(t)) { + i && U.setFromMatrixPosition(t.matrixWorld).applyMatrix4(G); + const e = tt.update(t), + r = t.material; + r.visible && u.push(t, e, r, n, U.z, null); + } + } else if (t.isImmediateRenderObject) + i && U.setFromMatrixPosition(t.matrixWorld).applyMatrix4(G), + u.push(t, null, t.material, n, U.z, null); + else if ( + (t.isMesh || t.isLine || t.isPoints) && + (t.isSkinnedMesh && + t.skeleton.frame !== Y.render.frame && + (t.skeleton.update(), (t.skeleton.frame = Y.render.frame)), + !t.frustumCulled || F.intersectsObject(t)) + ) { + i && U.setFromMatrixPosition(t.matrixWorld).applyMatrix4(G); + const e = tt.update(t), + r = t.material; + if (Array.isArray(r)) { + const i = e.groups; + for (let s = 0, a = i.length; s < a; s++) { + const a = i[s], + o = r[a.materialIndex]; + o && o.visible && u.push(t, e, o, n, U.z, a); + } + } else r.visible && u.push(t, e, r, n, U.z, null); + } + const r = t.children; + for (let t = 0, s = r.length; t < s; t++) At(r[t], e, n, i); + } + function Rt(t, e, n) { + const i = !0 === e.isScene ? e.overrideMaterial : null; + for (let r = 0, s = t.length; r < s; r++) { + const s = t[r], + a = s.object, + o = s.geometry, + l = null === i ? s.material : i, + c = s.group; + if (n.isArrayCamera) { + const t = n.cameras; + for (let n = 0, i = t.length; n < i; n++) { + const i = t[n]; + a.layers.test(i.layers) && + (q.viewport(T.copy(i.viewport)), + d.setupLightsView(i), + Ct(a, e, i, o, l, c)); + } + } else Ct(a, e, n, o, l, c); + } + } + function Ct(t, e, n, i, r, s) { + if ( + (t.onBeforeRender(f, e, n, i, r, s), + t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse, t.matrixWorld), + t.normalMatrix.getNormalMatrix(t.modelViewMatrix), + t.isImmediateRenderObject) + ) { + const i = It(n, e, r, t); + q.setMaterial(r), + dt.reset(), + (function (t, e) { + t.render(function (t) { + f.renderBufferImmediate(t, e); + }); + })(t, i); + } else f.renderBufferDirect(n, e, i, r, t, s); + t.onAfterRender(f, e, n, i, r, s); + } + function Pt(t, e, n) { + !0 !== e.isScene && (e = k); + const i = Z.get(t), + r = d.state.lights, + s = d.state.shadowsArray, + a = r.state.version, + o = et.getParameters(t, r.state, s, e, n), + l = et.getProgramCacheKey(o); + let c = i.programs; + (i.environment = t.isMeshStandardMaterial ? e.environment : null), + (i.fog = e.fog), + (i.envMap = Q.get(t.envMap || i.environment)), + void 0 === c && + (t.addEventListener('dispose', wt), + (c = new Map()), + (i.programs = c)); + let h = c.get(l); + if (void 0 !== h) { + if (i.currentProgram === h && i.lightsStateVersion === a) + return Dt(t, o), h; + } else + (o.uniforms = et.getUniforms(t)), + t.onBuild(o, f), + t.onBeforeCompile(o, f), + (h = et.acquireProgram(o, l)), + c.set(l, h), + (i.uniforms = o.uniforms); + const u = i.uniforms; + ((t.isShaderMaterial || t.isRawShaderMaterial) && !0 !== t.clipping) || + (u.clippingPlanes = st.uniform), + Dt(t, o), + (i.needsLights = (function (t) { + return ( + t.isMeshLambertMaterial || + t.isMeshToonMaterial || + t.isMeshPhongMaterial || + t.isMeshStandardMaterial || + t.isShadowMaterial || + (t.isShaderMaterial && !0 === t.lights) + ); + })(t)), + (i.lightsStateVersion = a), + i.needsLights && + ((u.ambientLightColor.value = r.state.ambient), + (u.lightProbe.value = r.state.probe), + (u.directionalLights.value = r.state.directional), + (u.directionalLightShadows.value = r.state.directionalShadow), + (u.spotLights.value = r.state.spot), + (u.spotLightShadows.value = r.state.spotShadow), + (u.rectAreaLights.value = r.state.rectArea), + (u.ltc_1.value = r.state.rectAreaLTC1), + (u.ltc_2.value = r.state.rectAreaLTC2), + (u.pointLights.value = r.state.point), + (u.pointLightShadows.value = r.state.pointShadow), + (u.hemisphereLights.value = r.state.hemi), + (u.directionalShadowMap.value = r.state.directionalShadowMap), + (u.directionalShadowMatrix.value = r.state.directionalShadowMatrix), + (u.spotShadowMap.value = r.state.spotShadowMap), + (u.spotShadowMatrix.value = r.state.spotShadowMatrix), + (u.pointShadowMap.value = r.state.pointShadowMap), + (u.pointShadowMatrix.value = r.state.pointShadowMatrix)); + const p = h.getUniforms(), + m = Cr.seqWithValue(p.seq, u); + return (i.currentProgram = h), (i.uniformsList = m), h; + } + function Dt(t, e) { + const n = Z.get(t); + (n.outputEncoding = e.outputEncoding), + (n.instancing = e.instancing), + (n.numClippingPlanes = e.numClippingPlanes), + (n.numIntersection = e.numClipIntersection), + (n.vertexAlphas = e.vertexAlphas); + } + function It(t, e, n, i) { + !0 !== e.isScene && (e = k), J.resetTextureUnits(); + const r = e.fog, + s = n.isMeshStandardMaterial ? e.environment : null, + a = null === _ ? f.outputEncoding : _.texture.encoding, + o = Q.get(n.envMap || s), + l = + !0 === n.vertexColors && + i.geometry && + i.geometry.attributes.color && + 4 === i.geometry.attributes.color.itemSize, + c = Z.get(n), + h = d.state.lights; + if (!0 === O && (!0 === H || t !== S)) { + const e = t === S && n.id === w; + st.setState(n, t, e); + } + let u = !1; + n.version === c.__version + ? (c.needsLights && c.lightsStateVersion !== h.state.version) || + c.outputEncoding !== a || + (i.isInstancedMesh && !1 === c.instancing) + ? (u = !0) + : i.isInstancedMesh || !0 !== c.instancing + ? c.envMap !== o || (n.fog && c.fog !== r) + ? (u = !0) + : void 0 === c.numClippingPlanes || + (c.numClippingPlanes === st.numPlanes && + c.numIntersection === st.numIntersection) + ? c.vertexAlphas !== l && (u = !0) + : (u = !0) + : (u = !0) + : ((u = !0), (c.__version = n.version)); + let p = c.currentProgram; + !0 === u && (p = Pt(n, e, i)); + let m = !1, + g = !1, + v = !1; + const y = p.getUniforms(), + x = c.uniforms; + if ( + (q.useProgram(p.program) && ((m = !0), (g = !0), (v = !0)), + n.id !== w && ((w = n.id), (g = !0)), + m || S !== t) + ) { + if ( + (y.setValue(pt, 'projectionMatrix', t.projectionMatrix), + j.logarithmicDepthBuffer && + y.setValue( + pt, + 'logDepthBufFC', + 2 / (Math.log(t.far + 1) / Math.LN2) + ), + S !== t && ((S = t), (g = !0), (v = !0)), + n.isShaderMaterial || + n.isMeshPhongMaterial || + n.isMeshToonMaterial || + n.isMeshStandardMaterial || + n.envMap) + ) { + const e = y.map.cameraPosition; + void 0 !== e && + e.setValue(pt, U.setFromMatrixPosition(t.matrixWorld)); + } + (n.isMeshPhongMaterial || + n.isMeshToonMaterial || + n.isMeshLambertMaterial || + n.isMeshBasicMaterial || + n.isMeshStandardMaterial || + n.isShaderMaterial) && + y.setValue(pt, 'isOrthographic', !0 === t.isOrthographicCamera), + (n.isMeshPhongMaterial || + n.isMeshToonMaterial || + n.isMeshLambertMaterial || + n.isMeshBasicMaterial || + n.isMeshStandardMaterial || + n.isShaderMaterial || + n.isShadowMaterial || + n.skinning) && + y.setValue(pt, 'viewMatrix', t.matrixWorldInverse); + } + if (n.skinning) { + y.setOptional(pt, i, 'bindMatrix'), + y.setOptional(pt, i, 'bindMatrixInverse'); + const t = i.skeleton; + if (t) { + const e = t.bones; + if (j.floatVertexTextures) { + if (null === t.boneTexture) { + let n = Math.sqrt(4 * e.length); + (n = mt(n)), (n = Math.max(n, 4)); + const i = new Float32Array(n * n * 4); + i.set(t.boneMatrices); + const r = new ii(i, n, n, E, b); + (t.boneMatrices = i), + (t.boneTexture = r), + (t.boneTextureSize = n); + } + y.setValue(pt, 'boneTexture', t.boneTexture, J), + y.setValue(pt, 'boneTextureSize', t.boneTextureSize); + } else y.setOptional(pt, t, 'boneMatrices'); + } + } + var M, T; + return ( + (g || c.receiveShadow !== i.receiveShadow) && + ((c.receiveShadow = i.receiveShadow), + y.setValue(pt, 'receiveShadow', i.receiveShadow)), + g && + (y.setValue(pt, 'toneMappingExposure', f.toneMappingExposure), + c.needsLights && + ((T = v), + ((M = x).ambientLightColor.needsUpdate = T), + (M.lightProbe.needsUpdate = T), + (M.directionalLights.needsUpdate = T), + (M.directionalLightShadows.needsUpdate = T), + (M.pointLights.needsUpdate = T), + (M.pointLightShadows.needsUpdate = T), + (M.spotLights.needsUpdate = T), + (M.spotLightShadows.needsUpdate = T), + (M.rectAreaLights.needsUpdate = T), + (M.hemisphereLights.needsUpdate = T)), + r && n.fog && nt.refreshFogUniforms(x, r), + nt.refreshMaterialUniforms(x, n, P, C), + Cr.upload(pt, c.uniformsList, x, J)), + n.isShaderMaterial && + !0 === n.uniformsNeedUpdate && + (Cr.upload(pt, c.uniformsList, x, J), (n.uniformsNeedUpdate = !1)), + n.isSpriteMaterial && y.setValue(pt, 'center', i.center), + y.setValue(pt, 'modelViewMatrix', i.modelViewMatrix), + y.setValue(pt, 'normalMatrix', i.normalMatrix), + y.setValue(pt, 'modelMatrix', i.matrixWorld), + p + ); + } + Et.setAnimationLoop(function (t) { + bt && bt(t); + }), + 'undefined' != typeof window && Et.setContext(window), + (this.setAnimationLoop = function (t) { + (bt = t), yt.setAnimationLoop(t), null === t ? Et.stop() : Et.start(); + }), + yt.addEventListener('sessionstart', Mt), + yt.addEventListener('sessionend', Tt), + (this.render = function (t, e) { + let n, i; + if ( + (void 0 !== arguments[2] && + (console.warn( + 'THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.' + ), + (n = arguments[2])), + void 0 !== arguments[3] && + (console.warn( + 'THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.' + ), + (i = arguments[3])), + void 0 !== e && !0 !== e.isCamera) + ) + return void console.error( + 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' + ); + if (!0 === g) return; + !0 === t.autoUpdate && t.updateMatrixWorld(), + null === e.parent && e.updateMatrixWorld(), + !0 === yt.enabled && !0 === yt.isPresenting && (e = yt.getCamera(e)), + !0 === t.isScene && t.onBeforeRender(f, t, e, n || _), + (d = rt.get(t, m.length)), + d.init(), + m.push(d), + G.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), + F.setFromProjectionMatrix(G), + (H = this.localClippingEnabled), + (O = st.init(this.clippingPlanes, H, e)), + (u = it.get(t, p.length)), + u.init(), + p.push(u), + At(t, e, 0, f.sortObjects), + u.finish(), + !0 === f.sortObjects && u.sort(D, I), + !0 === O && st.beginShadows(); + const r = d.state.shadowsArray; + at.render(r, t, e), + d.setupLights(), + d.setupLightsView(e), + !0 === O && st.endShadows(), + !0 === this.info.autoReset && this.info.reset(), + void 0 !== n && this.setRenderTarget(n), + ot.render(u, t, e, i); + const s = u.opaque, + a = u.transparent; + s.length > 0 && Rt(s, t, e), + a.length > 0 && Rt(a, t, e), + null !== _ && + (J.updateRenderTargetMipmap(_), J.updateMultisampleRenderTarget(_)), + !0 === t.isScene && t.onAfterRender(f, t, e), + q.buffers.depth.setTest(!0), + q.buffers.depth.setMask(!0), + q.buffers.color.setMask(!0), + q.setPolygonOffset(!1), + dt.resetDefaultState(), + (w = -1), + (S = null), + m.pop(), + (d = m.length > 0 ? m[m.length - 1] : null), + p.pop(), + (u = p.length > 0 ? p[p.length - 1] : null); + }), + (this.getActiveCubeFace = function () { + return v; + }), + (this.getActiveMipmapLevel = function () { + return y; + }), + (this.getRenderTarget = function () { + return _; + }), + (this.setRenderTarget = function (t, e = 0, n = 0) { + (_ = t), + (v = e), + (y = n), + t && void 0 === Z.get(t).__webglFramebuffer && J.setupRenderTarget(t); + let i = null, + r = !1, + s = !1; + if (t) { + const n = t.texture; + (n.isDataTexture3D || n.isDataTexture2DArray) && (s = !0); + const a = Z.get(t).__webglFramebuffer; + t.isWebGLCubeRenderTarget + ? ((i = a[e]), (r = !0)) + : (i = t.isWebGLMultisampleRenderTarget + ? Z.get(t).__webglMultisampledFramebuffer + : a), + T.copy(t.viewport), + A.copy(t.scissor), + (L = t.scissorTest); + } else + T.copy(N).multiplyScalar(P).floor(), + A.copy(B).multiplyScalar(P).floor(), + (L = z); + if ( + (q.bindFramebuffer(36160, i), + q.viewport(T), + q.scissor(A), + q.setScissorTest(L), + r) + ) { + const i = Z.get(t.texture); + pt.framebufferTexture2D(36160, 36064, 34069 + e, i.__webglTexture, n); + } else if (s) { + const i = Z.get(t.texture), + r = e || 0; + pt.framebufferTextureLayer(36160, 36064, i.__webglTexture, n || 0, r); + } + }), + (this.readRenderTargetPixels = function (t, e, n, i, r, s, a) { + if (!t || !t.isWebGLRenderTarget) + return void console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' + ); + let o = Z.get(t).__webglFramebuffer; + if ((t.isWebGLCubeRenderTarget && void 0 !== a && (o = o[a]), o)) { + q.bindFramebuffer(36160, o); + try { + const a = t.texture, + o = a.format, + l = a.type; + if (o !== E && ut.convert(o) !== pt.getParameter(35739)) + return void console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' + ); + const c = + l === M && + (W.has('EXT_color_buffer_half_float') || + (j.isWebGL2 && W.has('EXT_color_buffer_float'))); + if ( + !( + l === x || + ut.convert(l) === pt.getParameter(35738) || + (l === b && + (j.isWebGL2 || + W.has('OES_texture_float') || + W.has('WEBGL_color_buffer_float'))) || + c + ) + ) + return void console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' + ); + 36053 === pt.checkFramebufferStatus(36160) + ? e >= 0 && + e <= t.width - i && + n >= 0 && + n <= t.height - r && + pt.readPixels(e, n, i, r, ut.convert(o), ut.convert(l), s) + : console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.' + ); + } finally { + const t = null !== _ ? Z.get(_).__webglFramebuffer : null; + q.bindFramebuffer(36160, t); + } + } + }), + (this.copyFramebufferToTexture = function (t, e, n = 0) { + const i = Math.pow(2, -n), + r = Math.floor(e.image.width * i), + s = Math.floor(e.image.height * i), + a = ut.convert(e.format); + J.setTexture2D(e, 0), + pt.copyTexImage2D(3553, n, a, t.x, t.y, r, s, 0), + q.unbindTexture(); + }), + (this.copyTextureToTexture = function (t, e, n, i = 0) { + const r = e.image.width, + s = e.image.height, + a = ut.convert(n.format), + o = ut.convert(n.type); + J.setTexture2D(n, 0), + pt.pixelStorei(37440, n.flipY), + pt.pixelStorei(37441, n.premultiplyAlpha), + pt.pixelStorei(3317, n.unpackAlignment), + e.isDataTexture + ? pt.texSubImage2D(3553, i, t.x, t.y, r, s, a, o, e.image.data) + : e.isCompressedTexture + ? pt.compressedTexSubImage2D( + 3553, + i, + t.x, + t.y, + e.mipmaps[0].width, + e.mipmaps[0].height, + a, + e.mipmaps[0].data + ) + : pt.texSubImage2D(3553, i, t.x, t.y, a, o, e.image), + 0 === i && n.generateMipmaps && pt.generateMipmap(3553), + q.unbindTexture(); + }), + (this.copyTextureToTexture3D = function (t, e, n, i, r = 0) { + if (f.isWebGL1Renderer) + return void console.warn( + 'THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.' + ); + const { width: s, height: a, data: o } = n.image, + l = ut.convert(i.format), + c = ut.convert(i.type); + let h; + if (i.isDataTexture3D) J.setTexture3D(i, 0), (h = 32879); + else { + if (!i.isDataTexture2DArray) + return void console.warn( + 'THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.' + ); + J.setTexture2DArray(i, 0), (h = 35866); + } + pt.pixelStorei(37440, i.flipY), + pt.pixelStorei(37441, i.premultiplyAlpha), + pt.pixelStorei(3317, i.unpackAlignment); + const u = pt.getParameter(3314), + d = pt.getParameter(32878), + p = pt.getParameter(3316), + m = pt.getParameter(3315), + g = pt.getParameter(32877); + pt.pixelStorei(3314, s), + pt.pixelStorei(32878, a), + pt.pixelStorei(3316, t.min.x), + pt.pixelStorei(3315, t.min.y), + pt.pixelStorei(32877, t.min.z), + pt.texSubImage3D( + h, + r, + e.x, + e.y, + e.z, + t.max.x - t.min.x + 1, + t.max.y - t.min.y + 1, + t.max.z - t.min.z + 1, + l, + c, + o + ), + pt.pixelStorei(3314, u), + pt.pixelStorei(32878, d), + pt.pixelStorei(3316, p), + pt.pixelStorei(3315, m), + pt.pixelStorei(32877, g), + 0 === r && i.generateMipmaps && pt.generateMipmap(h), + q.unbindTexture(); + }), + (this.initTexture = function (t) { + J.setTexture2D(t, 0), q.unbindTexture(); + }), + (this.resetState = function () { + (v = 0), (y = 0), (_ = null), q.reset(), dt.reset(); + }), + 'undefined' != typeof __THREE_DEVTOOLS__ && + __THREE_DEVTOOLS__.dispatchEvent( + new CustomEvent('observe', { detail: this }) + ); + } + class bs extends ws {} + bs.prototype.isWebGL1Renderer = !0; + class Ms { + constructor(t, e = 25e-5) { + (this.name = ''), (this.color = new tn(t)), (this.density = e); + } + clone() { + return new Ms(this.color, this.density); + } + toJSON() { + return { + type: 'FogExp2', + color: this.color.getHex(), + density: this.density, + }; + } + } + Ms.prototype.isFogExp2 = !0; + class Ss { + constructor(t, e = 1, n = 1e3) { + (this.name = ''), + (this.color = new tn(t)), + (this.near = e), + (this.far = n); + } + clone() { + return new Ss(this.color, this.near, this.far); + } + toJSON() { + return { + type: 'Fog', + color: this.color.getHex(), + near: this.near, + far: this.far, + }; + } + } + Ss.prototype.isFog = !0; + class Ts extends Ce { + constructor() { + super(), + (this.type = 'Scene'), + (this.background = null), + (this.environment = null), + (this.fog = null), + (this.overrideMaterial = null), + (this.autoUpdate = !0), + 'undefined' != typeof __THREE_DEVTOOLS__ && + __THREE_DEVTOOLS__.dispatchEvent( + new CustomEvent('observe', { detail: this }) + ); + } + copy(t, e) { + return ( + super.copy(t, e), + null !== t.background && (this.background = t.background.clone()), + null !== t.environment && (this.environment = t.environment.clone()), + null !== t.fog && (this.fog = t.fog.clone()), + null !== t.overrideMaterial && + (this.overrideMaterial = t.overrideMaterial.clone()), + (this.autoUpdate = t.autoUpdate), + (this.matrixAutoUpdate = t.matrixAutoUpdate), + this + ); + } + toJSON(t) { + const e = super.toJSON(t); + return ( + null !== this.background && + (e.object.background = this.background.toJSON(t)), + null !== this.environment && + (e.object.environment = this.environment.toJSON(t)), + null !== this.fog && (e.object.fog = this.fog.toJSON()), + e + ); + } + } + Ts.prototype.isScene = !0; + class Es { + constructor(t, e) { + (this.array = t), + (this.stride = e), + (this.count = void 0 !== t ? t.length / e : 0), + (this.usage = et), + (this.updateRange = { offset: 0, count: -1 }), + (this.version = 0), + (this.uuid = ct()), + (this.onUploadCallback = function () {}); + } + set needsUpdate(t) { + !0 === t && this.version++; + } + setUsage(t) { + return (this.usage = t), this; + } + copy(t) { + return ( + (this.array = new t.array.constructor(t.array)), + (this.count = t.count), + (this.stride = t.stride), + (this.usage = t.usage), + this + ); + } + copyAt(t, e, n) { + (t *= this.stride), (n *= e.stride); + for (let i = 0, r = this.stride; i < r; i++) + this.array[t + i] = e.array[n + i]; + return this; + } + set(t, e = 0) { + return this.array.set(t, e), this; + } + clone(t) { + void 0 === t.arrayBuffers && (t.arrayBuffers = {}), + void 0 === this.array.buffer._uuid && (this.array.buffer._uuid = ct()), + void 0 === t.arrayBuffers[this.array.buffer._uuid] && + (t.arrayBuffers[this.array.buffer._uuid] = + this.array.slice(0).buffer); + const e = new this.array.constructor( + t.arrayBuffers[this.array.buffer._uuid] + ), + n = new Es(e, this.stride); + return n.setUsage(this.usage), n; + } + onUpload(t) { + return (this.onUploadCallback = t), this; + } + toJSON(t) { + return ( + void 0 === t.arrayBuffers && (t.arrayBuffers = {}), + void 0 === this.array.buffer._uuid && (this.array.buffer._uuid = ct()), + void 0 === t.arrayBuffers[this.array.buffer._uuid] && + (t.arrayBuffers[this.array.buffer._uuid] = Array.prototype.slice.call( + new Uint32Array(this.array.buffer) + )), + { + uuid: this.uuid, + buffer: this.array.buffer._uuid, + type: this.array.constructor.name, + stride: this.stride, + } + ); + } + } + Es.prototype.isInterleavedBuffer = !0; + const As = new Lt(); + class Ls { + constructor(t, e, n, i) { + (this.name = ''), + (this.data = t), + (this.itemSize = e), + (this.offset = n), + (this.normalized = !0 === i); + } + get count() { + return this.data.count; + } + get array() { + return this.data.array; + } + set needsUpdate(t) { + this.data.needsUpdate = t; + } + applyMatrix4(t) { + for (let e = 0, n = this.data.count; e < n; e++) + (As.x = this.getX(e)), + (As.y = this.getY(e)), + (As.z = this.getZ(e)), + As.applyMatrix4(t), + this.setXYZ(e, As.x, As.y, As.z); + return this; + } + applyNormalMatrix(t) { + for (let e = 0, n = this.count; e < n; e++) + (As.x = this.getX(e)), + (As.y = this.getY(e)), + (As.z = this.getZ(e)), + As.applyNormalMatrix(t), + this.setXYZ(e, As.x, As.y, As.z); + return this; + } + transformDirection(t) { + for (let e = 0, n = this.count; e < n; e++) + (As.x = this.getX(e)), + (As.y = this.getY(e)), + (As.z = this.getZ(e)), + As.transformDirection(t), + this.setXYZ(e, As.x, As.y, As.z); + return this; + } + setX(t, e) { + return (this.data.array[t * this.data.stride + this.offset] = e), this; + } + setY(t, e) { + return ( + (this.data.array[t * this.data.stride + this.offset + 1] = e), this + ); + } + setZ(t, e) { + return ( + (this.data.array[t * this.data.stride + this.offset + 2] = e), this + ); + } + setW(t, e) { + return ( + (this.data.array[t * this.data.stride + this.offset + 3] = e), this + ); + } + getX(t) { + return this.data.array[t * this.data.stride + this.offset]; + } + getY(t) { + return this.data.array[t * this.data.stride + this.offset + 1]; + } + getZ(t) { + return this.data.array[t * this.data.stride + this.offset + 2]; + } + getW(t) { + return this.data.array[t * this.data.stride + this.offset + 3]; + } + setXY(t, e, n) { + return ( + (t = t * this.data.stride + this.offset), + (this.data.array[t + 0] = e), + (this.data.array[t + 1] = n), + this + ); + } + setXYZ(t, e, n, i) { + return ( + (t = t * this.data.stride + this.offset), + (this.data.array[t + 0] = e), + (this.data.array[t + 1] = n), + (this.data.array[t + 2] = i), + this + ); + } + setXYZW(t, e, n, i, r) { + return ( + (t = t * this.data.stride + this.offset), + (this.data.array[t + 0] = e), + (this.data.array[t + 1] = n), + (this.data.array[t + 2] = i), + (this.data.array[t + 3] = r), + this + ); + } + clone(t) { + if (void 0 === t) { + console.log( + 'THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.' + ); + const t = []; + for (let e = 0; e < this.count; e++) { + const n = e * this.data.stride + this.offset; + for (let e = 0; e < this.itemSize; e++) + t.push(this.data.array[n + e]); + } + return new sn( + new this.array.constructor(t), + this.itemSize, + this.normalized + ); + } + return ( + void 0 === t.interleavedBuffers && (t.interleavedBuffers = {}), + void 0 === t.interleavedBuffers[this.data.uuid] && + (t.interleavedBuffers[this.data.uuid] = this.data.clone(t)), + new Ls( + t.interleavedBuffers[this.data.uuid], + this.itemSize, + this.offset, + this.normalized + ) + ); + } + toJSON(t) { + if (void 0 === t) { + console.log( + 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.' + ); + const t = []; + for (let e = 0; e < this.count; e++) { + const n = e * this.data.stride + this.offset; + for (let e = 0; e < this.itemSize; e++) + t.push(this.data.array[n + e]); + } + return { + itemSize: this.itemSize, + type: this.array.constructor.name, + array: t, + normalized: this.normalized, + }; + } + return ( + void 0 === t.interleavedBuffers && (t.interleavedBuffers = {}), + void 0 === t.interleavedBuffers[this.data.uuid] && + (t.interleavedBuffers[this.data.uuid] = this.data.toJSON(t)), + { + isInterleavedBufferAttribute: !0, + itemSize: this.itemSize, + data: this.data.uuid, + offset: this.offset, + normalized: this.normalized, + } + ); + } + } + Ls.prototype.isInterleavedBufferAttribute = !0; + class Rs extends Xe { + constructor(t) { + super(), + (this.type = 'SpriteMaterial'), + (this.color = new tn(16777215)), + (this.map = null), + (this.alphaMap = null), + (this.rotation = 0), + (this.sizeAttenuation = !0), + (this.transparent = !0), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.map = t.map), + (this.alphaMap = t.alphaMap), + (this.rotation = t.rotation), + (this.sizeAttenuation = t.sizeAttenuation), + this + ); + } + } + let Cs; + Rs.prototype.isSpriteMaterial = !0; + const Ps = new Lt(), + Ds = new Lt(), + Is = new Lt(), + Ns = new vt(), + Bs = new vt(), + zs = new se(), + Fs = new Lt(), + Os = new Lt(), + Hs = new Lt(), + Gs = new vt(), + Us = new vt(), + ks = new vt(); + class Vs extends Ce { + constructor(t) { + if ((super(), (this.type = 'Sprite'), void 0 === Cs)) { + Cs = new En(); + const t = new Float32Array([ + -0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, + 0.5, 0, 0, 1, + ]), + e = new Es(t, 5); + Cs.setIndex([0, 1, 2, 0, 2, 3]), + Cs.setAttribute('position', new Ls(e, 3, 0, !1)), + Cs.setAttribute('uv', new Ls(e, 2, 3, !1)); + } + (this.geometry = Cs), + (this.material = void 0 !== t ? t : new Rs()), + (this.center = new vt(0.5, 0.5)); + } + raycast(t, e) { + null === t.camera && + console.error( + 'THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.' + ), + Ds.setFromMatrixScale(this.matrixWorld), + zs.copy(t.camera.matrixWorld), + this.modelViewMatrix.multiplyMatrices( + t.camera.matrixWorldInverse, + this.matrixWorld + ), + Is.setFromMatrixPosition(this.modelViewMatrix), + t.camera.isPerspectiveCamera && + !1 === this.material.sizeAttenuation && + Ds.multiplyScalar(-Is.z); + const n = this.material.rotation; + let i, r; + 0 !== n && ((r = Math.cos(n)), (i = Math.sin(n))); + const s = this.center; + Ws(Fs.set(-0.5, -0.5, 0), Is, s, Ds, i, r), + Ws(Os.set(0.5, -0.5, 0), Is, s, Ds, i, r), + Ws(Hs.set(0.5, 0.5, 0), Is, s, Ds, i, r), + Gs.set(0, 0), + Us.set(1, 0), + ks.set(1, 1); + let a = t.ray.intersectTriangle(Fs, Os, Hs, !1, Ps); + if ( + null === a && + (Ws(Os.set(-0.5, 0.5, 0), Is, s, Ds, i, r), + Us.set(0, 1), + (a = t.ray.intersectTriangle(Fs, Hs, Os, !1, Ps)), + null === a) + ) + return; + const o = t.ray.origin.distanceTo(Ps); + o < t.near || + o > t.far || + e.push({ + distance: o, + point: Ps.clone(), + uv: je.getUV(Ps, Fs, Os, Hs, Gs, Us, ks, new vt()), + face: null, + object: this, + }); + } + copy(t) { + return ( + super.copy(t), + void 0 !== t.center && this.center.copy(t.center), + (this.material = t.material), + this + ); + } + } + function Ws(t, e, n, i, r, s) { + Ns.subVectors(t, n).addScalar(0.5).multiply(i), + void 0 !== r + ? ((Bs.x = s * Ns.x - r * Ns.y), (Bs.y = r * Ns.x + s * Ns.y)) + : Bs.copy(Ns), + t.copy(e), + (t.x += Bs.x), + (t.y += Bs.y), + t.applyMatrix4(zs); + } + Vs.prototype.isSprite = !0; + const js = new Lt(), + qs = new Lt(); + class Xs extends Ce { + constructor() { + super(), + (this._currentLevel = 0), + (this.type = 'LOD'), + Object.defineProperties(this, { + levels: { enumerable: !0, value: [] }, + isLOD: { value: !0 }, + }), + (this.autoUpdate = !0); + } + copy(t) { + super.copy(t, !1); + const e = t.levels; + for (let t = 0, n = e.length; t < n; t++) { + const n = e[t]; + this.addLevel(n.object.clone(), n.distance); + } + return (this.autoUpdate = t.autoUpdate), this; + } + addLevel(t, e = 0) { + e = Math.abs(e); + const n = this.levels; + let i; + for (i = 0; i < n.length && !(e < n[i].distance); i++); + return n.splice(i, 0, { distance: e, object: t }), this.add(t), this; + } + getCurrentLevel() { + return this._currentLevel; + } + getObjectForDistance(t) { + const e = this.levels; + if (e.length > 0) { + let n, i; + for (n = 1, i = e.length; n < i && !(t < e[n].distance); n++); + return e[n - 1].object; + } + return null; + } + raycast(t, e) { + if (this.levels.length > 0) { + js.setFromMatrixPosition(this.matrixWorld); + const n = t.ray.origin.distanceTo(js); + this.getObjectForDistance(n).raycast(t, e); + } + } + update(t) { + const e = this.levels; + if (e.length > 1) { + js.setFromMatrixPosition(t.matrixWorld), + qs.setFromMatrixPosition(this.matrixWorld); + const n = js.distanceTo(qs) / t.zoom; + let i, r; + for ( + e[0].object.visible = !0, i = 1, r = e.length; + i < r && n >= e[i].distance; + i++ + ) + (e[i - 1].object.visible = !1), (e[i].object.visible = !0); + for (this._currentLevel = i - 1; i < r; i++) e[i].object.visible = !1; + } + } + toJSON(t) { + const e = super.toJSON(t); + !1 === this.autoUpdate && (e.object.autoUpdate = !1), + (e.object.levels = []); + const n = this.levels; + for (let t = 0, i = n.length; t < i; t++) { + const i = n[t]; + e.object.levels.push({ object: i.object.uuid, distance: i.distance }); + } + return e; + } + } + const Ys = new Lt(), + Zs = new St(), + Js = new St(), + Qs = new Lt(), + Ks = new se(); + class $s extends Wn { + constructor(t, e) { + super(t, e), + (this.type = 'SkinnedMesh'), + (this.bindMode = 'attached'), + (this.bindMatrix = new se()), + (this.bindMatrixInverse = new se()); + } + copy(t) { + return ( + super.copy(t), + (this.bindMode = t.bindMode), + this.bindMatrix.copy(t.bindMatrix), + this.bindMatrixInverse.copy(t.bindMatrixInverse), + (this.skeleton = t.skeleton), + this + ); + } + bind(t, e) { + (this.skeleton = t), + void 0 === e && + (this.updateMatrixWorld(!0), + this.skeleton.calculateInverses(), + (e = this.matrixWorld)), + this.bindMatrix.copy(e), + this.bindMatrixInverse.copy(e).invert(); + } + pose() { + this.skeleton.pose(); + } + normalizeSkinWeights() { + const t = new St(), + e = this.geometry.attributes.skinWeight; + for (let n = 0, i = e.count; n < i; n++) { + (t.x = e.getX(n)), + (t.y = e.getY(n)), + (t.z = e.getZ(n)), + (t.w = e.getW(n)); + const i = 1 / t.manhattanLength(); + i !== 1 / 0 ? t.multiplyScalar(i) : t.set(1, 0, 0, 0), + e.setXYZW(n, t.x, t.y, t.z, t.w); + } + } + updateMatrixWorld(t) { + super.updateMatrixWorld(t), + 'attached' === this.bindMode + ? this.bindMatrixInverse.copy(this.matrixWorld).invert() + : 'detached' === this.bindMode + ? this.bindMatrixInverse.copy(this.bindMatrix).invert() + : console.warn( + 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode + ); + } + boneTransform(t, e) { + const n = this.skeleton, + i = this.geometry; + Zs.fromBufferAttribute(i.attributes.skinIndex, t), + Js.fromBufferAttribute(i.attributes.skinWeight, t), + Ys.fromBufferAttribute(i.attributes.position, t).applyMatrix4( + this.bindMatrix + ), + e.set(0, 0, 0); + for (let t = 0; t < 4; t++) { + const i = Js.getComponent(t); + if (0 !== i) { + const r = Zs.getComponent(t); + Ks.multiplyMatrices(n.bones[r].matrixWorld, n.boneInverses[r]), + e.addScaledVector(Qs.copy(Ys).applyMatrix4(Ks), i); + } + } + return e.applyMatrix4(this.bindMatrixInverse); + } + } + $s.prototype.isSkinnedMesh = !0; + class ta extends Ce { + constructor() { + super(), (this.type = 'Bone'); + } + } + ta.prototype.isBone = !0; + const ea = new se(), + na = new se(); + class ia { + constructor(t = [], e = []) { + (this.uuid = ct()), + (this.bones = t.slice(0)), + (this.boneInverses = e), + (this.boneMatrices = null), + (this.boneTexture = null), + (this.boneTextureSize = 0), + (this.frame = -1), + this.init(); + } + init() { + const t = this.bones, + e = this.boneInverses; + if ( + ((this.boneMatrices = new Float32Array(16 * t.length)), 0 === e.length) + ) + this.calculateInverses(); + else if (t.length !== e.length) { + console.warn( + 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' + ), + (this.boneInverses = []); + for (let t = 0, e = this.bones.length; t < e; t++) + this.boneInverses.push(new se()); + } + } + calculateInverses() { + this.boneInverses.length = 0; + for (let t = 0, e = this.bones.length; t < e; t++) { + const e = new se(); + this.bones[t] && e.copy(this.bones[t].matrixWorld).invert(), + this.boneInverses.push(e); + } + } + pose() { + for (let t = 0, e = this.bones.length; t < e; t++) { + const e = this.bones[t]; + e && e.matrixWorld.copy(this.boneInverses[t]).invert(); + } + for (let t = 0, e = this.bones.length; t < e; t++) { + const e = this.bones[t]; + e && + (e.parent && e.parent.isBone + ? (e.matrix.copy(e.parent.matrixWorld).invert(), + e.matrix.multiply(e.matrixWorld)) + : e.matrix.copy(e.matrixWorld), + e.matrix.decompose(e.position, e.quaternion, e.scale)); + } + } + update() { + const t = this.bones, + e = this.boneInverses, + n = this.boneMatrices, + i = this.boneTexture; + for (let i = 0, r = t.length; i < r; i++) { + const r = t[i] ? t[i].matrixWorld : na; + ea.multiplyMatrices(r, e[i]), ea.toArray(n, 16 * i); + } + null !== i && (i.needsUpdate = !0); + } + clone() { + return new ia(this.bones, this.boneInverses); + } + getBoneByName(t) { + for (let e = 0, n = this.bones.length; e < n; e++) { + const n = this.bones[e]; + if (n.name === t) return n; + } + } + dispose() { + null !== this.boneTexture && + (this.boneTexture.dispose(), (this.boneTexture = null)); + } + fromJSON(t, e) { + this.uuid = t.uuid; + for (let n = 0, i = t.bones.length; n < i; n++) { + const i = t.bones[n]; + let r = e[i]; + void 0 === r && + (console.warn('THREE.Skeleton: No bone found with UUID:', i), + (r = new ta())), + this.bones.push(r), + this.boneInverses.push(new se().fromArray(t.boneInverses[n])); + } + return this.init(), this; + } + toJSON() { + const t = { + metadata: { + version: 4.5, + type: 'Skeleton', + generator: 'Skeleton.toJSON', + }, + bones: [], + boneInverses: [], + }; + t.uuid = this.uuid; + const e = this.bones, + n = this.boneInverses; + for (let i = 0, r = e.length; i < r; i++) { + const r = e[i]; + t.bones.push(r.uuid); + const s = n[i]; + t.boneInverses.push(s.toArray()); + } + return t; + } + } + const ra = new se(), + sa = new se(), + aa = [], + oa = new Wn(); + class la extends Wn { + constructor(t, e, n) { + super(t, e), + (this.instanceMatrix = new sn(new Float32Array(16 * n), 16)), + (this.instanceColor = null), + (this.count = n), + (this.frustumCulled = !1); + } + copy(t) { + return ( + super.copy(t), + this.instanceMatrix.copy(t.instanceMatrix), + null !== t.instanceColor && + (this.instanceColor = t.instanceColor.clone()), + (this.count = t.count), + this + ); + } + getColorAt(t, e) { + e.fromArray(this.instanceColor.array, 3 * t); + } + getMatrixAt(t, e) { + e.fromArray(this.instanceMatrix.array, 16 * t); + } + raycast(t, e) { + const n = this.matrixWorld, + i = this.count; + if ( + ((oa.geometry = this.geometry), + (oa.material = this.material), + void 0 !== oa.material) + ) + for (let r = 0; r < i; r++) { + this.getMatrixAt(r, ra), + sa.multiplyMatrices(n, ra), + (oa.matrixWorld = sa), + oa.raycast(t, aa); + for (let t = 0, n = aa.length; t < n; t++) { + const n = aa[t]; + (n.instanceId = r), (n.object = this), e.push(n); + } + aa.length = 0; + } + } + setColorAt(t, e) { + null === this.instanceColor && + (this.instanceColor = new sn(new Float32Array(3 * this.count), 3)), + e.toArray(this.instanceColor.array, 3 * t); + } + setMatrixAt(t, e) { + e.toArray(this.instanceMatrix.array, 16 * t); + } + updateMorphTargets() {} + dispose() { + this.dispatchEvent({ type: 'dispose' }); + } + } + la.prototype.isInstancedMesh = !0; + class ca extends Xe { + constructor(t) { + super(), + (this.type = 'LineBasicMaterial'), + (this.color = new tn(16777215)), + (this.linewidth = 1), + (this.linecap = 'round'), + (this.linejoin = 'round'), + (this.morphTargets = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.linewidth = t.linewidth), + (this.linecap = t.linecap), + (this.linejoin = t.linejoin), + (this.morphTargets = t.morphTargets), + this + ); + } + } + ca.prototype.isLineBasicMaterial = !0; + const ha = new Lt(), + ua = new Lt(), + da = new se(), + pa = new re(), + ma = new Jt(); + class fa extends Ce { + constructor(t = new En(), e = new ca()) { + super(), + (this.type = 'Line'), + (this.geometry = t), + (this.material = e), + this.updateMorphTargets(); + } + copy(t) { + return ( + super.copy(t), + (this.material = t.material), + (this.geometry = t.geometry), + this + ); + } + computeLineDistances() { + const t = this.geometry; + if (t.isBufferGeometry) + if (null === t.index) { + const e = t.attributes.position, + n = [0]; + for (let t = 1, i = e.count; t < i; t++) + ha.fromBufferAttribute(e, t - 1), + ua.fromBufferAttribute(e, t), + (n[t] = n[t - 1]), + (n[t] += ha.distanceTo(ua)); + t.setAttribute('lineDistance', new mn(n, 1)); + } else + console.warn( + 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' + ); + else + t.isGeometry && + console.error( + 'THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + return this; + } + raycast(t, e) { + const n = this.geometry, + i = this.matrixWorld, + r = t.params.Line.threshold, + s = n.drawRange; + if ( + (null === n.boundingSphere && n.computeBoundingSphere(), + ma.copy(n.boundingSphere), + ma.applyMatrix4(i), + (ma.radius += r), + !1 === t.ray.intersectsSphere(ma)) + ) + return; + da.copy(i).invert(), pa.copy(t.ray).applyMatrix4(da); + const a = r / ((this.scale.x + this.scale.y + this.scale.z) / 3), + o = a * a, + l = new Lt(), + c = new Lt(), + h = new Lt(), + u = new Lt(), + d = this.isLineSegments ? 2 : 1; + if (n.isBufferGeometry) { + const i = n.index, + r = n.attributes.position; + if (null !== i) { + for ( + let n = Math.max(0, s.start), + a = Math.min(i.count, s.start + s.count) - 1; + n < a; + n += d + ) { + const s = i.getX(n), + a = i.getX(n + 1); + l.fromBufferAttribute(r, s), c.fromBufferAttribute(r, a); + if (pa.distanceSqToSegment(l, c, u, h) > o) continue; + u.applyMatrix4(this.matrixWorld); + const d = t.ray.origin.distanceTo(u); + d < t.near || + d > t.far || + e.push({ + distance: d, + point: h.clone().applyMatrix4(this.matrixWorld), + index: n, + face: null, + faceIndex: null, + object: this, + }); + } + } else { + for ( + let n = Math.max(0, s.start), + i = Math.min(r.count, s.start + s.count) - 1; + n < i; + n += d + ) { + l.fromBufferAttribute(r, n), c.fromBufferAttribute(r, n + 1); + if (pa.distanceSqToSegment(l, c, u, h) > o) continue; + u.applyMatrix4(this.matrixWorld); + const i = t.ray.origin.distanceTo(u); + i < t.near || + i > t.far || + e.push({ + distance: i, + point: h.clone().applyMatrix4(this.matrixWorld), + index: n, + face: null, + faceIndex: null, + object: this, + }); + } + } + } else + n.isGeometry && + console.error( + 'THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + updateMorphTargets() { + const t = this.geometry; + if (t.isBufferGeometry) { + const e = t.morphAttributes, + n = Object.keys(e); + if (n.length > 0) { + const t = e[n[0]]; + if (void 0 !== t) { + (this.morphTargetInfluences = []), + (this.morphTargetDictionary = {}); + for (let e = 0, n = t.length; e < n; e++) { + const n = t[e].name || String(e); + this.morphTargetInfluences.push(0), + (this.morphTargetDictionary[n] = e); + } + } + } + } else { + const e = t.morphTargets; + void 0 !== e && + e.length > 0 && + console.error( + 'THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + } + } + fa.prototype.isLine = !0; + const ga = new Lt(), + va = new Lt(); + class ya extends fa { + constructor(t, e) { + super(t, e), (this.type = 'LineSegments'); + } + computeLineDistances() { + const t = this.geometry; + if (t.isBufferGeometry) + if (null === t.index) { + const e = t.attributes.position, + n = []; + for (let t = 0, i = e.count; t < i; t += 2) + ga.fromBufferAttribute(e, t), + va.fromBufferAttribute(e, t + 1), + (n[t] = 0 === t ? 0 : n[t - 1]), + (n[t + 1] = n[t] + ga.distanceTo(va)); + t.setAttribute('lineDistance', new mn(n, 1)); + } else + console.warn( + 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' + ); + else + t.isGeometry && + console.error( + 'THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + return this; + } + } + ya.prototype.isLineSegments = !0; + class xa extends fa { + constructor(t, e) { + super(t, e), (this.type = 'LineLoop'); + } + } + xa.prototype.isLineLoop = !0; + class _a extends Xe { + constructor(t) { + super(), + (this.type = 'PointsMaterial'), + (this.color = new tn(16777215)), + (this.map = null), + (this.alphaMap = null), + (this.size = 1), + (this.sizeAttenuation = !0), + (this.morphTargets = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.map = t.map), + (this.alphaMap = t.alphaMap), + (this.size = t.size), + (this.sizeAttenuation = t.sizeAttenuation), + (this.morphTargets = t.morphTargets), + this + ); + } + } + _a.prototype.isPointsMaterial = !0; + const wa = new se(), + ba = new re(), + Ma = new Jt(), + Sa = new Lt(); + class Ta extends Ce { + constructor(t = new En(), e = new _a()) { + super(), + (this.type = 'Points'), + (this.geometry = t), + (this.material = e), + this.updateMorphTargets(); + } + copy(t) { + return ( + super.copy(t), + (this.material = t.material), + (this.geometry = t.geometry), + this + ); + } + raycast(t, e) { + const n = this.geometry, + i = this.matrixWorld, + r = t.params.Points.threshold, + s = n.drawRange; + if ( + (null === n.boundingSphere && n.computeBoundingSphere(), + Ma.copy(n.boundingSphere), + Ma.applyMatrix4(i), + (Ma.radius += r), + !1 === t.ray.intersectsSphere(Ma)) + ) + return; + wa.copy(i).invert(), ba.copy(t.ray).applyMatrix4(wa); + const a = r / ((this.scale.x + this.scale.y + this.scale.z) / 3), + o = a * a; + if (n.isBufferGeometry) { + const r = n.index, + a = n.attributes.position; + if (null !== r) { + for ( + let n = Math.max(0, s.start), + l = Math.min(r.count, s.start + s.count); + n < l; + n++ + ) { + const s = r.getX(n); + Sa.fromBufferAttribute(a, s), Ea(Sa, s, o, i, t, e, this); + } + } else { + for ( + let n = Math.max(0, s.start), + r = Math.min(a.count, s.start + s.count); + n < r; + n++ + ) + Sa.fromBufferAttribute(a, n), Ea(Sa, n, o, i, t, e, this); + } + } else + console.error( + 'THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + updateMorphTargets() { + const t = this.geometry; + if (t.isBufferGeometry) { + const e = t.morphAttributes, + n = Object.keys(e); + if (n.length > 0) { + const t = e[n[0]]; + if (void 0 !== t) { + (this.morphTargetInfluences = []), + (this.morphTargetDictionary = {}); + for (let e = 0, n = t.length; e < n; e++) { + const n = t[e].name || String(e); + this.morphTargetInfluences.push(0), + (this.morphTargetDictionary[n] = e); + } + } + } + } else { + const e = t.morphTargets; + void 0 !== e && + e.length > 0 && + console.error( + 'THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + } + } + } + function Ea(t, e, n, i, r, s, a) { + const o = ba.distanceSqToPoint(t); + if (o < n) { + const n = new Lt(); + ba.closestPointToPoint(t, n), n.applyMatrix4(i); + const l = r.ray.origin.distanceTo(n); + if (l < r.near || l > r.far) return; + s.push({ + distance: l, + distanceToRay: Math.sqrt(o), + point: n, + index: e, + face: null, + object: a, + }); + } + } + Ta.prototype.isPoints = !0; + class Aa extends bt { + constructor(t, e, n, i, r, s, a, o, l) { + super(t, e, n, i, r, s, a, o, l), + (this.format = void 0 !== a ? a : T), + (this.minFilter = void 0 !== s ? s : g), + (this.magFilter = void 0 !== r ? r : g), + (this.generateMipmaps = !1); + const c = this; + 'requestVideoFrameCallback' in t && + t.requestVideoFrameCallback(function e() { + (c.needsUpdate = !0), t.requestVideoFrameCallback(e); + }); + } + clone() { + return new this.constructor(this.image).copy(this); + } + update() { + const t = this.image; + !1 === 'requestVideoFrameCallback' in t && + t.readyState >= t.HAVE_CURRENT_DATA && + (this.needsUpdate = !0); + } + } + Aa.prototype.isVideoTexture = !0; + class La extends bt { + constructor(t, e, n, i, r, s, a, o, l, c, h, u) { + super(null, s, a, o, l, c, i, r, h, u), + (this.image = { width: e, height: n }), + (this.mipmaps = t), + (this.flipY = !1), + (this.generateMipmaps = !1); + } + } + La.prototype.isCompressedTexture = !0; + class Ra extends bt { + constructor(t, e, n, i, r, s, a, o, l) { + super(t, e, n, i, r, s, a, o, l), (this.needsUpdate = !0); + } + } + Ra.prototype.isCanvasTexture = !0; + class Ca extends bt { + constructor(t, e, n, i, r, s, a, o, l, c) { + if ((c = void 0 !== c ? c : A) !== A && c !== L) + throw new Error( + 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' + ); + void 0 === n && c === A && (n = _), + void 0 === n && c === L && (n = S), + super(null, i, r, s, a, o, c, n, l), + (this.image = { width: t, height: e }), + (this.magFilter = void 0 !== a ? a : p), + (this.minFilter = void 0 !== o ? o : p), + (this.flipY = !1), + (this.generateMipmaps = !1); + } + } + Ca.prototype.isDepthTexture = !0; + class Pa extends En { + constructor(t = 1, e = 8, n = 0, i = 2 * Math.PI) { + super(), + (this.type = 'CircleGeometry'), + (this.parameters = { + radius: t, + segments: e, + thetaStart: n, + thetaLength: i, + }), + (e = Math.max(3, e)); + const r = [], + s = [], + a = [], + o = [], + l = new Lt(), + c = new vt(); + s.push(0, 0, 0), a.push(0, 0, 1), o.push(0.5, 0.5); + for (let r = 0, h = 3; r <= e; r++, h += 3) { + const u = n + (r / e) * i; + (l.x = t * Math.cos(u)), + (l.y = t * Math.sin(u)), + s.push(l.x, l.y, l.z), + a.push(0, 0, 1), + (c.x = (s[h] / t + 1) / 2), + (c.y = (s[h + 1] / t + 1) / 2), + o.push(c.x, c.y); + } + for (let t = 1; t <= e; t++) r.push(t, t + 1, 0); + this.setIndex(r), + this.setAttribute('position', new mn(s, 3)), + this.setAttribute('normal', new mn(a, 3)), + this.setAttribute('uv', new mn(o, 2)); + } + } + class Da extends En { + constructor( + t = 1, + e = 1, + n = 1, + i = 8, + r = 1, + s = !1, + a = 0, + o = 2 * Math.PI + ) { + super(), + (this.type = 'CylinderGeometry'), + (this.parameters = { + radiusTop: t, + radiusBottom: e, + height: n, + radialSegments: i, + heightSegments: r, + openEnded: s, + thetaStart: a, + thetaLength: o, + }); + const l = this; + (i = Math.floor(i)), (r = Math.floor(r)); + const c = [], + h = [], + u = [], + d = []; + let p = 0; + const m = [], + f = n / 2; + let g = 0; + function v(n) { + const r = p, + s = new vt(), + m = new Lt(); + let v = 0; + const y = !0 === n ? t : e, + x = !0 === n ? 1 : -1; + for (let t = 1; t <= i; t++) + h.push(0, f * x, 0), u.push(0, x, 0), d.push(0.5, 0.5), p++; + const _ = p; + for (let t = 0; t <= i; t++) { + const e = (t / i) * o + a, + n = Math.cos(e), + r = Math.sin(e); + (m.x = y * r), + (m.y = f * x), + (m.z = y * n), + h.push(m.x, m.y, m.z), + u.push(0, x, 0), + (s.x = 0.5 * n + 0.5), + (s.y = 0.5 * r * x + 0.5), + d.push(s.x, s.y), + p++; + } + for (let t = 0; t < i; t++) { + const e = r + t, + i = _ + t; + !0 === n ? c.push(i, i + 1, e) : c.push(i + 1, i, e), (v += 3); + } + l.addGroup(g, v, !0 === n ? 1 : 2), (g += v); + } + !(function () { + const s = new Lt(), + v = new Lt(); + let y = 0; + const x = (e - t) / n; + for (let l = 0; l <= r; l++) { + const c = [], + g = l / r, + y = g * (e - t) + t; + for (let t = 0; t <= i; t++) { + const e = t / i, + r = e * o + a, + l = Math.sin(r), + m = Math.cos(r); + (v.x = y * l), + (v.y = -g * n + f), + (v.z = y * m), + h.push(v.x, v.y, v.z), + s.set(l, x, m).normalize(), + u.push(s.x, s.y, s.z), + d.push(e, 1 - g), + c.push(p++); + } + m.push(c); + } + for (let t = 0; t < i; t++) + for (let e = 0; e < r; e++) { + const n = m[e][t], + i = m[e + 1][t], + r = m[e + 1][t + 1], + s = m[e][t + 1]; + c.push(n, i, s), c.push(i, r, s), (y += 6); + } + l.addGroup(g, y, 0), (g += y); + })(), + !1 === s && (t > 0 && v(!0), e > 0 && v(!1)), + this.setIndex(c), + this.setAttribute('position', new mn(h, 3)), + this.setAttribute('normal', new mn(u, 3)), + this.setAttribute('uv', new mn(d, 2)); + } + } + class Ia extends Da { + constructor(t = 1, e = 1, n = 8, i = 1, r = !1, s = 0, a = 2 * Math.PI) { + super(0, t, e, n, i, r, s, a), + (this.type = 'ConeGeometry'), + (this.parameters = { + radius: t, + height: e, + radialSegments: n, + heightSegments: i, + openEnded: r, + thetaStart: s, + thetaLength: a, + }); + } + } + class Na extends En { + constructor(t, e, n = 1, i = 0) { + super(), + (this.type = 'PolyhedronGeometry'), + (this.parameters = { vertices: t, indices: e, radius: n, detail: i }); + const r = [], + s = []; + function a(t, e, n, i) { + const r = i + 1, + s = []; + for (let i = 0; i <= r; i++) { + s[i] = []; + const a = t.clone().lerp(n, i / r), + o = e.clone().lerp(n, i / r), + l = r - i; + for (let t = 0; t <= l; t++) + s[i][t] = 0 === t && i === r ? a : a.clone().lerp(o, t / l); + } + for (let t = 0; t < r; t++) + for (let e = 0; e < 2 * (r - t) - 1; e++) { + const n = Math.floor(e / 2); + e % 2 == 0 + ? (o(s[t][n + 1]), o(s[t + 1][n]), o(s[t][n])) + : (o(s[t][n + 1]), o(s[t + 1][n + 1]), o(s[t + 1][n])); + } + } + function o(t) { + r.push(t.x, t.y, t.z); + } + function l(e, n) { + const i = 3 * e; + (n.x = t[i + 0]), (n.y = t[i + 1]), (n.z = t[i + 2]); + } + function c(t, e, n, i) { + i < 0 && 1 === t.x && (s[e] = t.x - 1), + 0 === n.x && 0 === n.z && (s[e] = i / 2 / Math.PI + 0.5); + } + function h(t) { + return Math.atan2(t.z, -t.x); + } + !(function (t) { + const n = new Lt(), + i = new Lt(), + r = new Lt(); + for (let s = 0; s < e.length; s += 3) + l(e[s + 0], n), l(e[s + 1], i), l(e[s + 2], r), a(n, i, r, t); + })(i), + (function (t) { + const e = new Lt(); + for (let n = 0; n < r.length; n += 3) + (e.x = r[n + 0]), + (e.y = r[n + 1]), + (e.z = r[n + 2]), + e.normalize().multiplyScalar(t), + (r[n + 0] = e.x), + (r[n + 1] = e.y), + (r[n + 2] = e.z); + })(n), + (function () { + const t = new Lt(); + for (let n = 0; n < r.length; n += 3) { + (t.x = r[n + 0]), (t.y = r[n + 1]), (t.z = r[n + 2]); + const i = h(t) / 2 / Math.PI + 0.5, + a = + ((e = t), + Math.atan2(-e.y, Math.sqrt(e.x * e.x + e.z * e.z)) / Math.PI + + 0.5); + s.push(i, 1 - a); + } + var e; + (function () { + const t = new Lt(), + e = new Lt(), + n = new Lt(), + i = new Lt(), + a = new vt(), + o = new vt(), + l = new vt(); + for (let u = 0, d = 0; u < r.length; u += 9, d += 6) { + t.set(r[u + 0], r[u + 1], r[u + 2]), + e.set(r[u + 3], r[u + 4], r[u + 5]), + n.set(r[u + 6], r[u + 7], r[u + 8]), + a.set(s[d + 0], s[d + 1]), + o.set(s[d + 2], s[d + 3]), + l.set(s[d + 4], s[d + 5]), + i.copy(t).add(e).add(n).divideScalar(3); + const p = h(i); + c(a, d + 0, t, p), c(o, d + 2, e, p), c(l, d + 4, n, p); + } + })(), + (function () { + for (let t = 0; t < s.length; t += 6) { + const e = s[t + 0], + n = s[t + 2], + i = s[t + 4], + r = Math.max(e, n, i), + a = Math.min(e, n, i); + r > 0.9 && + a < 0.1 && + (e < 0.2 && (s[t + 0] += 1), + n < 0.2 && (s[t + 2] += 1), + i < 0.2 && (s[t + 4] += 1)); + } + })(); + })(), + this.setAttribute('position', new mn(r, 3)), + this.setAttribute('normal', new mn(r.slice(), 3)), + this.setAttribute('uv', new mn(s, 2)), + 0 === i ? this.computeVertexNormals() : this.normalizeNormals(); + } + } + class Ba extends Na { + constructor(t = 1, e = 0) { + const n = (1 + Math.sqrt(5)) / 2, + i = 1 / n; + super( + [ + -1, + -1, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + 0, + -i, + -n, + 0, + -i, + n, + 0, + i, + -n, + 0, + i, + n, + -i, + -n, + 0, + -i, + n, + 0, + i, + -n, + 0, + i, + n, + 0, + -n, + 0, + -i, + n, + 0, + -i, + -n, + 0, + i, + n, + 0, + i, + ], + [ + 3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, + 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, + 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, + 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, + 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, + 12, 14, 1, 14, 5, 1, 5, 9, + ], + t, + e + ), + (this.type = 'DodecahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + } + } + const za = new Lt(), + Fa = new Lt(), + Oa = new Lt(), + Ha = new je(); + class Ga extends En { + constructor(t, e) { + if ( + (super(), + (this.type = 'EdgesGeometry'), + (this.parameters = { thresholdAngle: e }), + (e = void 0 !== e ? e : 1), + !0 === t.isGeometry) + ) + return void console.error( + 'THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + const n = Math.pow(10, 4), + i = Math.cos(ot * e), + r = t.getIndex(), + s = t.getAttribute('position'), + a = r ? r.count : s.count, + o = [0, 0, 0], + l = ['a', 'b', 'c'], + c = new Array(3), + h = {}, + u = []; + for (let t = 0; t < a; t += 3) { + r + ? ((o[0] = r.getX(t)), (o[1] = r.getX(t + 1)), (o[2] = r.getX(t + 2))) + : ((o[0] = t), (o[1] = t + 1), (o[2] = t + 2)); + const { a: e, b: a, c: d } = Ha; + if ( + (e.fromBufferAttribute(s, o[0]), + a.fromBufferAttribute(s, o[1]), + d.fromBufferAttribute(s, o[2]), + Ha.getNormal(Oa), + (c[0] = `${Math.round(e.x * n)},${Math.round(e.y * n)},${Math.round(e.z * n)}`), + (c[1] = `${Math.round(a.x * n)},${Math.round(a.y * n)},${Math.round(a.z * n)}`), + (c[2] = `${Math.round(d.x * n)},${Math.round(d.y * n)},${Math.round(d.z * n)}`), + c[0] !== c[1] && c[1] !== c[2] && c[2] !== c[0]) + ) + for (let t = 0; t < 3; t++) { + const e = (t + 1) % 3, + n = c[t], + r = c[e], + s = Ha[l[t]], + a = Ha[l[e]], + d = `${n}_${r}`, + p = `${r}_${n}`; + p in h && h[p] + ? (Oa.dot(h[p].normal) <= i && + (u.push(s.x, s.y, s.z), u.push(a.x, a.y, a.z)), + (h[p] = null)) + : d in h || + (h[d] = { index0: o[t], index1: o[e], normal: Oa.clone() }); + } + } + for (const t in h) + if (h[t]) { + const { index0: e, index1: n } = h[t]; + za.fromBufferAttribute(s, e), + Fa.fromBufferAttribute(s, n), + u.push(za.x, za.y, za.z), + u.push(Fa.x, Fa.y, Fa.z); + } + this.setAttribute('position', new mn(u, 3)); + } + } + const Ua = function (t, e, n) { + n = n || 2; + const i = e && e.length, + r = i ? e[0] * n : t.length; + let s = ka(t, 0, r, n, !0); + const a = []; + if (!s || s.next === s.prev) return a; + let o, l, c, h, u, d, p; + if ( + (i && + (s = (function (t, e, n, i) { + const r = []; + let s, a, o, l, c; + for (s = 0, a = e.length; s < a; s++) + (o = e[s] * i), + (l = s < a - 1 ? e[s + 1] * i : t.length), + (c = ka(t, o, l, i, !1)), + c === c.next && (c.steiner = !0), + r.push($a(c)); + for (r.sort(Za), s = 0; s < r.length; s++) + Ja(r[s], n), (n = Va(n, n.next)); + return n; + })(t, e, s, n)), + t.length > 80 * n) + ) { + (o = c = t[0]), (l = h = t[1]); + for (let e = n; e < r; e += n) + (u = t[e]), + (d = t[e + 1]), + u < o && (o = u), + d < l && (l = d), + u > c && (c = u), + d > h && (h = d); + (p = Math.max(c - o, h - l)), (p = 0 !== p ? 1 / p : 0); + } + return Wa(s, a, n, o, l, p), a; + }; + function ka(t, e, n, i, r) { + let s, a; + if ( + r === + (function (t, e, n, i) { + let r = 0; + for (let s = e, a = n - i; s < n; s += i) + (r += (t[a] - t[s]) * (t[s + 1] + t[a + 1])), (a = s); + return r; + })(t, e, n, i) > + 0 + ) + for (s = e; s < n; s += i) a = co(s, t[s], t[s + 1], a); + else for (s = n - i; s >= e; s -= i) a = co(s, t[s], t[s + 1], a); + return a && io(a, a.next) && (ho(a), (a = a.next)), a; + } + function Va(t, e) { + if (!t) return t; + e || (e = t); + let n, + i = t; + do { + if ( + ((n = !1), i.steiner || (!io(i, i.next) && 0 !== no(i.prev, i, i.next))) + ) + i = i.next; + else { + if ((ho(i), (i = e = i.prev), i === i.next)) break; + n = !0; + } + } while (n || i !== e); + return e; + } + function Wa(t, e, n, i, r, s, a) { + if (!t) return; + !a && + s && + (function (t, e, n, i) { + let r = t; + do { + null === r.z && (r.z = Ka(r.x, r.y, e, n, i)), + (r.prevZ = r.prev), + (r.nextZ = r.next), + (r = r.next); + } while (r !== t); + (r.prevZ.nextZ = null), + (r.prevZ = null), + (function (t) { + let e, + n, + i, + r, + s, + a, + o, + l, + c = 1; + do { + for (n = t, t = null, s = null, a = 0; n; ) { + for ( + a++, i = n, o = 0, e = 0; + e < c && (o++, (i = i.nextZ), i); + e++ + ); + for (l = c; o > 0 || (l > 0 && i); ) + 0 !== o && (0 === l || !i || n.z <= i.z) + ? ((r = n), (n = n.nextZ), o--) + : ((r = i), (i = i.nextZ), l--), + s ? (s.nextZ = r) : (t = r), + (r.prevZ = s), + (s = r); + n = i; + } + (s.nextZ = null), (c *= 2); + } while (a > 1); + })(r); + })(t, i, r, s); + let o, + l, + c = t; + for (; t.prev !== t.next; ) + if (((o = t.prev), (l = t.next), s ? qa(t, i, r, s) : ja(t))) + e.push(o.i / n), + e.push(t.i / n), + e.push(l.i / n), + ho(t), + (t = l.next), + (c = l.next); + else if ((t = l) === c) { + a + ? 1 === a + ? Wa((t = Xa(Va(t), e, n)), e, n, i, r, s, 2) + : 2 === a && Ya(t, e, n, i, r, s) + : Wa(Va(t), e, n, i, r, s, 1); + break; + } + } + function ja(t) { + const e = t.prev, + n = t, + i = t.next; + if (no(e, n, i) >= 0) return !1; + let r = t.next.next; + for (; r !== t.prev; ) { + if ( + to(e.x, e.y, n.x, n.y, i.x, i.y, r.x, r.y) && + no(r.prev, r, r.next) >= 0 + ) + return !1; + r = r.next; + } + return !0; + } + function qa(t, e, n, i) { + const r = t.prev, + s = t, + a = t.next; + if (no(r, s, a) >= 0) return !1; + const o = r.x < s.x ? (r.x < a.x ? r.x : a.x) : s.x < a.x ? s.x : a.x, + l = r.y < s.y ? (r.y < a.y ? r.y : a.y) : s.y < a.y ? s.y : a.y, + c = r.x > s.x ? (r.x > a.x ? r.x : a.x) : s.x > a.x ? s.x : a.x, + h = r.y > s.y ? (r.y > a.y ? r.y : a.y) : s.y > a.y ? s.y : a.y, + u = Ka(o, l, e, n, i), + d = Ka(c, h, e, n, i); + let p = t.prevZ, + m = t.nextZ; + for (; p && p.z >= u && m && m.z <= d; ) { + if ( + p !== t.prev && + p !== t.next && + to(r.x, r.y, s.x, s.y, a.x, a.y, p.x, p.y) && + no(p.prev, p, p.next) >= 0 + ) + return !1; + if ( + ((p = p.prevZ), + m !== t.prev && + m !== t.next && + to(r.x, r.y, s.x, s.y, a.x, a.y, m.x, m.y) && + no(m.prev, m, m.next) >= 0) + ) + return !1; + m = m.nextZ; + } + for (; p && p.z >= u; ) { + if ( + p !== t.prev && + p !== t.next && + to(r.x, r.y, s.x, s.y, a.x, a.y, p.x, p.y) && + no(p.prev, p, p.next) >= 0 + ) + return !1; + p = p.prevZ; + } + for (; m && m.z <= d; ) { + if ( + m !== t.prev && + m !== t.next && + to(r.x, r.y, s.x, s.y, a.x, a.y, m.x, m.y) && + no(m.prev, m, m.next) >= 0 + ) + return !1; + m = m.nextZ; + } + return !0; + } + function Xa(t, e, n) { + let i = t; + do { + const r = i.prev, + s = i.next.next; + !io(r, s) && + ro(r, i, i.next, s) && + oo(r, s) && + oo(s, r) && + (e.push(r.i / n), + e.push(i.i / n), + e.push(s.i / n), + ho(i), + ho(i.next), + (i = t = s)), + (i = i.next); + } while (i !== t); + return Va(i); + } + function Ya(t, e, n, i, r, s) { + let a = t; + do { + let t = a.next.next; + for (; t !== a.prev; ) { + if (a.i !== t.i && eo(a, t)) { + let o = lo(a, t); + return ( + (a = Va(a, a.next)), + (o = Va(o, o.next)), + Wa(a, e, n, i, r, s), + void Wa(o, e, n, i, r, s) + ); + } + t = t.next; + } + a = a.next; + } while (a !== t); + } + function Za(t, e) { + return t.x - e.x; + } + function Ja(t, e) { + if ( + (e = (function (t, e) { + let n = e; + const i = t.x, + r = t.y; + let s, + a = -1 / 0; + do { + if (r <= n.y && r >= n.next.y && n.next.y !== n.y) { + const t = n.x + ((r - n.y) * (n.next.x - n.x)) / (n.next.y - n.y); + if (t <= i && t > a) { + if (((a = t), t === i)) { + if (r === n.y) return n; + if (r === n.next.y) return n.next; + } + s = n.x < n.next.x ? n : n.next; + } + } + n = n.next; + } while (n !== e); + if (!s) return null; + if (i === a) return s; + const o = s, + l = s.x, + c = s.y; + let h, + u = 1 / 0; + n = s; + do { + i >= n.x && + n.x >= l && + i !== n.x && + to(r < c ? i : a, r, l, c, r < c ? a : i, r, n.x, n.y) && + ((h = Math.abs(r - n.y) / (i - n.x)), + oo(n, t) && + (h < u || + (h === u && (n.x > s.x || (n.x === s.x && Qa(s, n))))) && + ((s = n), (u = h))), + (n = n.next); + } while (n !== o); + return s; + })(t, e)) + ) { + const n = lo(e, t); + Va(e, e.next), Va(n, n.next); + } + } + function Qa(t, e) { + return no(t.prev, t, e.prev) < 0 && no(e.next, t, t.next) < 0; + } + function Ka(t, e, n, i, r) { + return ( + (t = + 1431655765 & + ((t = + 858993459 & + ((t = + 252645135 & + ((t = 16711935 & ((t = 32767 * (t - n) * r) | (t << 8))) | + (t << 4))) | + (t << 2))) | + (t << 1))) | + ((e = + 1431655765 & + ((e = + 858993459 & + ((e = + 252645135 & + ((e = 16711935 & ((e = 32767 * (e - i) * r) | (e << 8))) | + (e << 4))) | + (e << 2))) | + (e << 1))) << + 1) + ); + } + function $a(t) { + let e = t, + n = t; + do { + (e.x < n.x || (e.x === n.x && e.y < n.y)) && (n = e), (e = e.next); + } while (e !== t); + return n; + } + function to(t, e, n, i, r, s, a, o) { + return ( + (r - a) * (e - o) - (t - a) * (s - o) >= 0 && + (t - a) * (i - o) - (n - a) * (e - o) >= 0 && + (n - a) * (s - o) - (r - a) * (i - o) >= 0 + ); + } + function eo(t, e) { + return ( + t.next.i !== e.i && + t.prev.i !== e.i && + !(function (t, e) { + let n = t; + do { + if ( + n.i !== t.i && + n.next.i !== t.i && + n.i !== e.i && + n.next.i !== e.i && + ro(n, n.next, t, e) + ) + return !0; + n = n.next; + } while (n !== t); + return !1; + })(t, e) && + ((oo(t, e) && + oo(e, t) && + (function (t, e) { + let n = t, + i = !1; + const r = (t.x + e.x) / 2, + s = (t.y + e.y) / 2; + do { + n.y > s != n.next.y > s && + n.next.y !== n.y && + r < ((n.next.x - n.x) * (s - n.y)) / (n.next.y - n.y) + n.x && + (i = !i), + (n = n.next); + } while (n !== t); + return i; + })(t, e) && + (no(t.prev, t, e.prev) || no(t, e.prev, e))) || + (io(t, e) && no(t.prev, t, t.next) > 0 && no(e.prev, e, e.next) > 0)) + ); + } + function no(t, e, n) { + return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y); + } + function io(t, e) { + return t.x === e.x && t.y === e.y; + } + function ro(t, e, n, i) { + const r = ao(no(t, e, n)), + s = ao(no(t, e, i)), + a = ao(no(n, i, t)), + o = ao(no(n, i, e)); + return ( + (r !== s && a !== o) || + !(0 !== r || !so(t, n, e)) || + !(0 !== s || !so(t, i, e)) || + !(0 !== a || !so(n, t, i)) || + !(0 !== o || !so(n, e, i)) + ); + } + function so(t, e, n) { + return ( + e.x <= Math.max(t.x, n.x) && + e.x >= Math.min(t.x, n.x) && + e.y <= Math.max(t.y, n.y) && + e.y >= Math.min(t.y, n.y) + ); + } + function ao(t) { + return t > 0 ? 1 : t < 0 ? -1 : 0; + } + function oo(t, e) { + return no(t.prev, t, t.next) < 0 + ? no(t, e, t.next) >= 0 && no(t, t.prev, e) >= 0 + : no(t, e, t.prev) < 0 || no(t, t.next, e) < 0; + } + function lo(t, e) { + const n = new uo(t.i, t.x, t.y), + i = new uo(e.i, e.x, e.y), + r = t.next, + s = e.prev; + return ( + (t.next = e), + (e.prev = t), + (n.next = r), + (r.prev = n), + (i.next = n), + (n.prev = i), + (s.next = i), + (i.prev = s), + i + ); + } + function co(t, e, n, i) { + const r = new uo(t, e, n); + return ( + i + ? ((r.next = i.next), (r.prev = i), (i.next.prev = r), (i.next = r)) + : ((r.prev = r), (r.next = r)), + r + ); + } + function ho(t) { + (t.next.prev = t.prev), + (t.prev.next = t.next), + t.prevZ && (t.prevZ.nextZ = t.nextZ), + t.nextZ && (t.nextZ.prevZ = t.prevZ); + } + function uo(t, e, n) { + (this.i = t), + (this.x = e), + (this.y = n), + (this.prev = null), + (this.next = null), + (this.z = null), + (this.prevZ = null), + (this.nextZ = null), + (this.steiner = !1); + } + class po { + static area(t) { + const e = t.length; + let n = 0; + for (let i = e - 1, r = 0; r < e; i = r++) + n += t[i].x * t[r].y - t[r].x * t[i].y; + return 0.5 * n; + } + static isClockWise(t) { + return po.area(t) < 0; + } + static triangulateShape(t, e) { + const n = [], + i = [], + r = []; + mo(t), fo(n, t); + let s = t.length; + e.forEach(mo); + for (let t = 0; t < e.length; t++) + i.push(s), (s += e[t].length), fo(n, e[t]); + const a = Ua(n, i); + for (let t = 0; t < a.length; t += 3) r.push(a.slice(t, t + 3)); + return r; + } + } + function mo(t) { + const e = t.length; + e > 2 && t[e - 1].equals(t[0]) && t.pop(); + } + function fo(t, e) { + for (let n = 0; n < e.length; n++) t.push(e[n].x), t.push(e[n].y); + } + class go extends En { + constructor(t, e) { + super(), + (this.type = 'ExtrudeGeometry'), + (this.parameters = { shapes: t, options: e }), + (t = Array.isArray(t) ? t : [t]); + const n = this, + i = [], + r = []; + for (let e = 0, n = t.length; e < n; e++) { + s(t[e]); + } + function s(t) { + const s = [], + a = void 0 !== e.curveSegments ? e.curveSegments : 12, + o = void 0 !== e.steps ? e.steps : 1; + let l = void 0 !== e.depth ? e.depth : 100, + c = void 0 === e.bevelEnabled || e.bevelEnabled, + h = void 0 !== e.bevelThickness ? e.bevelThickness : 6, + u = void 0 !== e.bevelSize ? e.bevelSize : h - 2, + d = void 0 !== e.bevelOffset ? e.bevelOffset : 0, + p = void 0 !== e.bevelSegments ? e.bevelSegments : 3; + const m = e.extrudePath, + f = void 0 !== e.UVGenerator ? e.UVGenerator : vo; + void 0 !== e.amount && + (console.warn( + 'THREE.ExtrudeBufferGeometry: amount has been renamed to depth.' + ), + (l = e.amount)); + let g, + v, + y, + x, + _, + w = !1; + m && + ((g = m.getSpacedPoints(o)), + (w = !0), + (c = !1), + (v = m.computeFrenetFrames(o, !1)), + (y = new Lt()), + (x = new Lt()), + (_ = new Lt())), + c || ((p = 0), (h = 0), (u = 0), (d = 0)); + const b = t.extractPoints(a); + let M = b.shape; + const S = b.holes; + if (!po.isClockWise(M)) { + M = M.reverse(); + for (let t = 0, e = S.length; t < e; t++) { + const e = S[t]; + po.isClockWise(e) && (S[t] = e.reverse()); + } + } + const T = po.triangulateShape(M, S), + E = M; + for (let t = 0, e = S.length; t < e; t++) { + const e = S[t]; + M = M.concat(e); + } + function A(t, e, n) { + return ( + e || console.error('THREE.ExtrudeGeometry: vec does not exist'), + e.clone().multiplyScalar(n).add(t) + ); + } + const L = M.length, + R = T.length; + function C(t, e, n) { + let i, r, s; + const a = t.x - e.x, + o = t.y - e.y, + l = n.x - t.x, + c = n.y - t.y, + h = a * a + o * o, + u = a * c - o * l; + if (Math.abs(u) > Number.EPSILON) { + const u = Math.sqrt(h), + d = Math.sqrt(l * l + c * c), + p = e.x - o / u, + m = e.y + a / u, + f = + ((n.x - c / d - p) * c - (n.y + l / d - m) * l) / + (a * c - o * l); + (i = p + a * f - t.x), (r = m + o * f - t.y); + const g = i * i + r * r; + if (g <= 2) return new vt(i, r); + s = Math.sqrt(g / 2); + } else { + let t = !1; + a > Number.EPSILON + ? l > Number.EPSILON && (t = !0) + : a < -Number.EPSILON + ? l < -Number.EPSILON && (t = !0) + : Math.sign(o) === Math.sign(c) && (t = !0), + t + ? ((i = -o), (r = a), (s = Math.sqrt(h))) + : ((i = a), (r = o), (s = Math.sqrt(h / 2))); + } + return new vt(i / s, r / s); + } + const P = []; + for ( + let t = 0, e = E.length, n = e - 1, i = t + 1; + t < e; + t++, n++, i++ + ) + n === e && (n = 0), i === e && (i = 0), (P[t] = C(E[t], E[n], E[i])); + const D = []; + let I, + N = P.concat(); + for (let t = 0, e = S.length; t < e; t++) { + const e = S[t]; + I = []; + for ( + let t = 0, n = e.length, i = n - 1, r = t + 1; + t < n; + t++, i++, r++ + ) + i === n && (i = 0), + r === n && (r = 0), + (I[t] = C(e[t], e[i], e[r])); + D.push(I), (N = N.concat(I)); + } + for (let t = 0; t < p; t++) { + const e = t / p, + n = h * Math.cos((e * Math.PI) / 2), + i = u * Math.sin((e * Math.PI) / 2) + d; + for (let t = 0, e = E.length; t < e; t++) { + const e = A(E[t], P[t], i); + F(e.x, e.y, -n); + } + for (let t = 0, e = S.length; t < e; t++) { + const e = S[t]; + I = D[t]; + for (let t = 0, r = e.length; t < r; t++) { + const r = A(e[t], I[t], i); + F(r.x, r.y, -n); + } + } + } + const B = u + d; + for (let t = 0; t < L; t++) { + const e = c ? A(M[t], N[t], B) : M[t]; + w + ? (x.copy(v.normals[0]).multiplyScalar(e.x), + y.copy(v.binormals[0]).multiplyScalar(e.y), + _.copy(g[0]).add(x).add(y), + F(_.x, _.y, _.z)) + : F(e.x, e.y, 0); + } + for (let t = 1; t <= o; t++) + for (let e = 0; e < L; e++) { + const n = c ? A(M[e], N[e], B) : M[e]; + w + ? (x.copy(v.normals[t]).multiplyScalar(n.x), + y.copy(v.binormals[t]).multiplyScalar(n.y), + _.copy(g[t]).add(x).add(y), + F(_.x, _.y, _.z)) + : F(n.x, n.y, (l / o) * t); + } + for (let t = p - 1; t >= 0; t--) { + const e = t / p, + n = h * Math.cos((e * Math.PI) / 2), + i = u * Math.sin((e * Math.PI) / 2) + d; + for (let t = 0, e = E.length; t < e; t++) { + const e = A(E[t], P[t], i); + F(e.x, e.y, l + n); + } + for (let t = 0, e = S.length; t < e; t++) { + const e = S[t]; + I = D[t]; + for (let t = 0, r = e.length; t < r; t++) { + const r = A(e[t], I[t], i); + w ? F(r.x, r.y + g[o - 1].y, g[o - 1].x + n) : F(r.x, r.y, l + n); + } + } + } + function z(t, e) { + let n = t.length; + for (; --n >= 0; ) { + const i = n; + let r = n - 1; + r < 0 && (r = t.length - 1); + for (let t = 0, n = o + 2 * p; t < n; t++) { + const n = L * t, + s = L * (t + 1); + H(e + i + n, e + r + n, e + r + s, e + i + s); + } + } + } + function F(t, e, n) { + s.push(t), s.push(e), s.push(n); + } + function O(t, e, r) { + G(t), G(e), G(r); + const s = i.length / 3, + a = f.generateTopUV(n, i, s - 3, s - 2, s - 1); + U(a[0]), U(a[1]), U(a[2]); + } + function H(t, e, r, s) { + G(t), G(e), G(s), G(e), G(r), G(s); + const a = i.length / 3, + o = f.generateSideWallUV(n, i, a - 6, a - 3, a - 2, a - 1); + U(o[0]), U(o[1]), U(o[3]), U(o[1]), U(o[2]), U(o[3]); + } + function G(t) { + i.push(s[3 * t + 0]), i.push(s[3 * t + 1]), i.push(s[3 * t + 2]); + } + function U(t) { + r.push(t.x), r.push(t.y); + } + !(function () { + const t = i.length / 3; + if (c) { + let t = 0, + e = L * t; + for (let t = 0; t < R; t++) { + const n = T[t]; + O(n[2] + e, n[1] + e, n[0] + e); + } + (t = o + 2 * p), (e = L * t); + for (let t = 0; t < R; t++) { + const n = T[t]; + O(n[0] + e, n[1] + e, n[2] + e); + } + } else { + for (let t = 0; t < R; t++) { + const e = T[t]; + O(e[2], e[1], e[0]); + } + for (let t = 0; t < R; t++) { + const e = T[t]; + O(e[0] + L * o, e[1] + L * o, e[2] + L * o); + } + } + n.addGroup(t, i.length / 3 - t, 0); + })(), + (function () { + const t = i.length / 3; + let e = 0; + z(E, e), (e += E.length); + for (let t = 0, n = S.length; t < n; t++) { + const n = S[t]; + z(n, e), (e += n.length); + } + n.addGroup(t, i.length / 3 - t, 1); + })(); + } + this.setAttribute('position', new mn(i, 3)), + this.setAttribute('uv', new mn(r, 2)), + this.computeVertexNormals(); + } + toJSON() { + const t = En.prototype.toJSON.call(this); + return (function (t, e, n) { + if (((n.shapes = []), Array.isArray(t))) + for (let e = 0, i = t.length; e < i; e++) { + const i = t[e]; + n.shapes.push(i.uuid); + } + else n.shapes.push(t.uuid); + void 0 !== e.extrudePath && + (n.options.extrudePath = e.extrudePath.toJSON()); + return n; + })(this.parameters.shapes, this.parameters.options, t); + } + } + const vo = { + generateTopUV: function (t, e, n, i, r) { + const s = e[3 * n], + a = e[3 * n + 1], + o = e[3 * i], + l = e[3 * i + 1], + c = e[3 * r], + h = e[3 * r + 1]; + return [new vt(s, a), new vt(o, l), new vt(c, h)]; + }, + generateSideWallUV: function (t, e, n, i, r, s) { + const a = e[3 * n], + o = e[3 * n + 1], + l = e[3 * n + 2], + c = e[3 * i], + h = e[3 * i + 1], + u = e[3 * i + 2], + d = e[3 * r], + p = e[3 * r + 1], + m = e[3 * r + 2], + f = e[3 * s], + g = e[3 * s + 1], + v = e[3 * s + 2]; + return Math.abs(o - h) < 0.01 + ? [ + new vt(a, 1 - l), + new vt(c, 1 - u), + new vt(d, 1 - m), + new vt(f, 1 - v), + ] + : [ + new vt(o, 1 - l), + new vt(h, 1 - u), + new vt(p, 1 - m), + new vt(g, 1 - v), + ]; + }, + }; + class yo extends Na { + constructor(t = 1, e = 0) { + const n = (1 + Math.sqrt(5)) / 2; + super( + [ + -1, + n, + 0, + 1, + n, + 0, + -1, + -n, + 0, + 1, + -n, + 0, + 0, + -1, + n, + 0, + 1, + n, + 0, + -1, + -n, + 0, + 1, + -n, + n, + 0, + -1, + n, + 0, + 1, + -n, + 0, + -1, + -n, + 0, + 1, + ], + [ + 0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, + 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, + 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1, + ], + t, + e + ), + (this.type = 'IcosahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + } + } + class xo extends En { + constructor(t, e = 12, n = 0, i = 2 * Math.PI) { + super(), + (this.type = 'LatheGeometry'), + (this.parameters = { + points: t, + segments: e, + phiStart: n, + phiLength: i, + }), + (e = Math.floor(e)), + (i = ht(i, 0, 2 * Math.PI)); + const r = [], + s = [], + a = [], + o = 1 / e, + l = new Lt(), + c = new vt(); + for (let r = 0; r <= e; r++) { + const h = n + r * o * i, + u = Math.sin(h), + d = Math.cos(h); + for (let n = 0; n <= t.length - 1; n++) + (l.x = t[n].x * u), + (l.y = t[n].y), + (l.z = t[n].x * d), + s.push(l.x, l.y, l.z), + (c.x = r / e), + (c.y = n / (t.length - 1)), + a.push(c.x, c.y); + } + for (let n = 0; n < e; n++) + for (let e = 0; e < t.length - 1; e++) { + const i = e + n * t.length, + s = i, + a = i + t.length, + o = i + t.length + 1, + l = i + 1; + r.push(s, a, l), r.push(a, o, l); + } + if ( + (this.setIndex(r), + this.setAttribute('position', new mn(s, 3)), + this.setAttribute('uv', new mn(a, 2)), + this.computeVertexNormals(), + i === 2 * Math.PI) + ) { + const n = this.attributes.normal.array, + i = new Lt(), + r = new Lt(), + s = new Lt(), + a = e * t.length * 3; + for (let e = 0, o = 0; e < t.length; e++, o += 3) + (i.x = n[o + 0]), + (i.y = n[o + 1]), + (i.z = n[o + 2]), + (r.x = n[a + o + 0]), + (r.y = n[a + o + 1]), + (r.z = n[a + o + 2]), + s.addVectors(i, r).normalize(), + (n[o + 0] = n[a + o + 0] = s.x), + (n[o + 1] = n[a + o + 1] = s.y), + (n[o + 2] = n[a + o + 2] = s.z); + } + } + } + class _o extends Na { + constructor(t = 1, e = 0) { + super( + [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1], + [ + 0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, + 2, + ], + t, + e + ), + (this.type = 'OctahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + } + } + class wo extends En { + constructor(t, e, n) { + super(), + (this.type = 'ParametricGeometry'), + (this.parameters = { func: t, slices: e, stacks: n }); + const i = [], + r = [], + s = [], + a = [], + o = 1e-5, + l = new Lt(), + c = new Lt(), + h = new Lt(), + u = new Lt(), + d = new Lt(); + t.length < 3 && + console.error( + 'THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.' + ); + const p = e + 1; + for (let i = 0; i <= n; i++) { + const p = i / n; + for (let n = 0; n <= e; n++) { + const i = n / e; + t(i, p, c), + r.push(c.x, c.y, c.z), + i - o >= 0 + ? (t(i - o, p, h), u.subVectors(c, h)) + : (t(i + o, p, h), u.subVectors(h, c)), + p - o >= 0 + ? (t(i, p - o, h), d.subVectors(c, h)) + : (t(i, p + o, h), d.subVectors(h, c)), + l.crossVectors(u, d).normalize(), + s.push(l.x, l.y, l.z), + a.push(i, p); + } + } + for (let t = 0; t < n; t++) + for (let n = 0; n < e; n++) { + const e = t * p + n, + r = t * p + n + 1, + s = (t + 1) * p + n + 1, + a = (t + 1) * p + n; + i.push(e, r, a), i.push(r, s, a); + } + this.setIndex(i), + this.setAttribute('position', new mn(r, 3)), + this.setAttribute('normal', new mn(s, 3)), + this.setAttribute('uv', new mn(a, 2)); + } + } + class bo extends En { + constructor(t = 0.5, e = 1, n = 8, i = 1, r = 0, s = 2 * Math.PI) { + super(), + (this.type = 'RingGeometry'), + (this.parameters = { + innerRadius: t, + outerRadius: e, + thetaSegments: n, + phiSegments: i, + thetaStart: r, + thetaLength: s, + }), + (n = Math.max(3, n)); + const a = [], + o = [], + l = [], + c = []; + let h = t; + const u = (e - t) / (i = Math.max(1, i)), + d = new Lt(), + p = new vt(); + for (let t = 0; t <= i; t++) { + for (let t = 0; t <= n; t++) { + const i = r + (t / n) * s; + (d.x = h * Math.cos(i)), + (d.y = h * Math.sin(i)), + o.push(d.x, d.y, d.z), + l.push(0, 0, 1), + (p.x = (d.x / e + 1) / 2), + (p.y = (d.y / e + 1) / 2), + c.push(p.x, p.y); + } + h += u; + } + for (let t = 0; t < i; t++) { + const e = t * (n + 1); + for (let t = 0; t < n; t++) { + const i = t + e, + r = i, + s = i + n + 1, + o = i + n + 2, + l = i + 1; + a.push(r, s, l), a.push(s, o, l); + } + } + this.setIndex(a), + this.setAttribute('position', new mn(o, 3)), + this.setAttribute('normal', new mn(l, 3)), + this.setAttribute('uv', new mn(c, 2)); + } + } + class Mo extends En { + constructor(t, e = 12) { + super(), + (this.type = 'ShapeGeometry'), + (this.parameters = { shapes: t, curveSegments: e }); + const n = [], + i = [], + r = [], + s = []; + let a = 0, + o = 0; + if (!1 === Array.isArray(t)) l(t); + else + for (let e = 0; e < t.length; e++) + l(t[e]), this.addGroup(a, o, e), (a += o), (o = 0); + function l(t) { + const a = i.length / 3, + l = t.extractPoints(e); + let c = l.shape; + const h = l.holes; + !1 === po.isClockWise(c) && (c = c.reverse()); + for (let t = 0, e = h.length; t < e; t++) { + const e = h[t]; + !0 === po.isClockWise(e) && (h[t] = e.reverse()); + } + const u = po.triangulateShape(c, h); + for (let t = 0, e = h.length; t < e; t++) { + const e = h[t]; + c = c.concat(e); + } + for (let t = 0, e = c.length; t < e; t++) { + const e = c[t]; + i.push(e.x, e.y, 0), r.push(0, 0, 1), s.push(e.x, e.y); + } + for (let t = 0, e = u.length; t < e; t++) { + const e = u[t], + i = e[0] + a, + r = e[1] + a, + s = e[2] + a; + n.push(i, r, s), (o += 3); + } + } + this.setIndex(n), + this.setAttribute('position', new mn(i, 3)), + this.setAttribute('normal', new mn(r, 3)), + this.setAttribute('uv', new mn(s, 2)); + } + toJSON() { + const t = En.prototype.toJSON.call(this); + return (function (t, e) { + if (((e.shapes = []), Array.isArray(t))) + for (let n = 0, i = t.length; n < i; n++) { + const i = t[n]; + e.shapes.push(i.uuid); + } + else e.shapes.push(t.uuid); + return e; + })(this.parameters.shapes, t); + } + } + class So extends En { + constructor( + t = 1, + e = 8, + n = 6, + i = 0, + r = 2 * Math.PI, + s = 0, + a = Math.PI + ) { + super(), + (this.type = 'SphereGeometry'), + (this.parameters = { + radius: t, + widthSegments: e, + heightSegments: n, + phiStart: i, + phiLength: r, + thetaStart: s, + thetaLength: a, + }), + (e = Math.max(3, Math.floor(e))), + (n = Math.max(2, Math.floor(n))); + const o = Math.min(s + a, Math.PI); + let l = 0; + const c = [], + h = new Lt(), + u = new Lt(), + d = [], + p = [], + m = [], + f = []; + for (let d = 0; d <= n; d++) { + const g = [], + v = d / n; + let y = 0; + 0 == d && 0 == s + ? (y = 0.5 / e) + : d == n && o == Math.PI && (y = -0.5 / e); + for (let n = 0; n <= e; n++) { + const o = n / e; + (h.x = -t * Math.cos(i + o * r) * Math.sin(s + v * a)), + (h.y = t * Math.cos(s + v * a)), + (h.z = t * Math.sin(i + o * r) * Math.sin(s + v * a)), + p.push(h.x, h.y, h.z), + u.copy(h).normalize(), + m.push(u.x, u.y, u.z), + f.push(o + y, 1 - v), + g.push(l++); + } + c.push(g); + } + for (let t = 0; t < n; t++) + for (let i = 0; i < e; i++) { + const e = c[t][i + 1], + r = c[t][i], + a = c[t + 1][i], + l = c[t + 1][i + 1]; + (0 !== t || s > 0) && d.push(e, r, l), + (t !== n - 1 || o < Math.PI) && d.push(r, a, l); + } + this.setIndex(d), + this.setAttribute('position', new mn(p, 3)), + this.setAttribute('normal', new mn(m, 3)), + this.setAttribute('uv', new mn(f, 2)); + } + } + class To extends Na { + constructor(t = 1, e = 0) { + super( + [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1], + [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1], + t, + e + ), + (this.type = 'TetrahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + } + } + class Eo extends go { + constructor(t, e = {}) { + const n = e.font; + if (!n || !n.isFont) + return ( + console.error( + 'THREE.TextGeometry: font parameter is not an instance of THREE.Font.' + ), + new En() + ); + const i = n.generateShapes(t, e.size); + (e.depth = void 0 !== e.height ? e.height : 50), + void 0 === e.bevelThickness && (e.bevelThickness = 10), + void 0 === e.bevelSize && (e.bevelSize = 8), + void 0 === e.bevelEnabled && (e.bevelEnabled = !1), + super(i, e), + (this.type = 'TextGeometry'); + } + } + class Ao extends En { + constructor(t = 1, e = 0.4, n = 8, i = 6, r = 2 * Math.PI) { + super(), + (this.type = 'TorusGeometry'), + (this.parameters = { + radius: t, + tube: e, + radialSegments: n, + tubularSegments: i, + arc: r, + }), + (n = Math.floor(n)), + (i = Math.floor(i)); + const s = [], + a = [], + o = [], + l = [], + c = new Lt(), + h = new Lt(), + u = new Lt(); + for (let s = 0; s <= n; s++) + for (let d = 0; d <= i; d++) { + const p = (d / i) * r, + m = (s / n) * Math.PI * 2; + (h.x = (t + e * Math.cos(m)) * Math.cos(p)), + (h.y = (t + e * Math.cos(m)) * Math.sin(p)), + (h.z = e * Math.sin(m)), + a.push(h.x, h.y, h.z), + (c.x = t * Math.cos(p)), + (c.y = t * Math.sin(p)), + u.subVectors(h, c).normalize(), + o.push(u.x, u.y, u.z), + l.push(d / i), + l.push(s / n); + } + for (let t = 1; t <= n; t++) + for (let e = 1; e <= i; e++) { + const n = (i + 1) * t + e - 1, + r = (i + 1) * (t - 1) + e - 1, + a = (i + 1) * (t - 1) + e, + o = (i + 1) * t + e; + s.push(n, r, o), s.push(r, a, o); + } + this.setIndex(s), + this.setAttribute('position', new mn(a, 3)), + this.setAttribute('normal', new mn(o, 3)), + this.setAttribute('uv', new mn(l, 2)); + } + } + class Lo extends En { + constructor(t = 1, e = 0.4, n = 64, i = 8, r = 2, s = 3) { + super(), + (this.type = 'TorusKnotGeometry'), + (this.parameters = { + radius: t, + tube: e, + tubularSegments: n, + radialSegments: i, + p: r, + q: s, + }), + (n = Math.floor(n)), + (i = Math.floor(i)); + const a = [], + o = [], + l = [], + c = [], + h = new Lt(), + u = new Lt(), + d = new Lt(), + p = new Lt(), + m = new Lt(), + f = new Lt(), + g = new Lt(); + for (let a = 0; a <= n; ++a) { + const y = (a / n) * r * Math.PI * 2; + v(y, r, s, t, d), + v(y + 0.01, r, s, t, p), + f.subVectors(p, d), + g.addVectors(p, d), + m.crossVectors(f, g), + g.crossVectors(m, f), + m.normalize(), + g.normalize(); + for (let t = 0; t <= i; ++t) { + const r = (t / i) * Math.PI * 2, + s = -e * Math.cos(r), + p = e * Math.sin(r); + (h.x = d.x + (s * g.x + p * m.x)), + (h.y = d.y + (s * g.y + p * m.y)), + (h.z = d.z + (s * g.z + p * m.z)), + o.push(h.x, h.y, h.z), + u.subVectors(h, d).normalize(), + l.push(u.x, u.y, u.z), + c.push(a / n), + c.push(t / i); + } + } + for (let t = 1; t <= n; t++) + for (let e = 1; e <= i; e++) { + const n = (i + 1) * (t - 1) + (e - 1), + r = (i + 1) * t + (e - 1), + s = (i + 1) * t + e, + o = (i + 1) * (t - 1) + e; + a.push(n, r, o), a.push(r, s, o); + } + function v(t, e, n, i, r) { + const s = Math.cos(t), + a = Math.sin(t), + o = (n / e) * t, + l = Math.cos(o); + (r.x = i * (2 + l) * 0.5 * s), + (r.y = i * (2 + l) * a * 0.5), + (r.z = i * Math.sin(o) * 0.5); + } + this.setIndex(a), + this.setAttribute('position', new mn(o, 3)), + this.setAttribute('normal', new mn(l, 3)), + this.setAttribute('uv', new mn(c, 2)); + } + } + class Ro extends En { + constructor(t, e = 64, n = 1, i = 8, r = !1) { + super(), + (this.type = 'TubeGeometry'), + (this.parameters = { + path: t, + tubularSegments: e, + radius: n, + radialSegments: i, + closed: r, + }); + const s = t.computeFrenetFrames(e, r); + (this.tangents = s.tangents), + (this.normals = s.normals), + (this.binormals = s.binormals); + const a = new Lt(), + o = new Lt(), + l = new vt(); + let c = new Lt(); + const h = [], + u = [], + d = [], + p = []; + function m(r) { + c = t.getPointAt(r / e, c); + const l = s.normals[r], + d = s.binormals[r]; + for (let t = 0; t <= i; t++) { + const e = (t / i) * Math.PI * 2, + r = Math.sin(e), + s = -Math.cos(e); + (o.x = s * l.x + r * d.x), + (o.y = s * l.y + r * d.y), + (o.z = s * l.z + r * d.z), + o.normalize(), + u.push(o.x, o.y, o.z), + (a.x = c.x + n * o.x), + (a.y = c.y + n * o.y), + (a.z = c.z + n * o.z), + h.push(a.x, a.y, a.z); + } + } + !(function () { + for (let t = 0; t < e; t++) m(t); + m(!1 === r ? e : 0), + (function () { + for (let t = 0; t <= e; t++) + for (let n = 0; n <= i; n++) + (l.x = t / e), (l.y = n / i), d.push(l.x, l.y); + })(), + (function () { + for (let t = 1; t <= e; t++) + for (let e = 1; e <= i; e++) { + const n = (i + 1) * (t - 1) + (e - 1), + r = (i + 1) * t + (e - 1), + s = (i + 1) * t + e, + a = (i + 1) * (t - 1) + e; + p.push(n, r, a), p.push(r, s, a); + } + })(); + })(), + this.setIndex(p), + this.setAttribute('position', new mn(h, 3)), + this.setAttribute('normal', new mn(u, 3)), + this.setAttribute('uv', new mn(d, 2)); + } + toJSON() { + const t = En.prototype.toJSON.call(this); + return (t.path = this.parameters.path.toJSON()), t; + } + } + class Co extends En { + constructor(t) { + if ((super(), (this.type = 'WireframeGeometry'), !0 === t.isGeometry)) + return void console.error( + 'THREE.WireframeGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' + ); + const e = [], + n = [0, 0], + i = {}, + r = new Lt(); + if (null !== t.index) { + const s = t.attributes.position, + a = t.index; + let o = t.groups; + 0 === o.length && + (o = [{ start: 0, count: a.count, materialIndex: 0 }]); + for (let t = 0, e = o.length; t < e; ++t) { + const e = o[t], + r = e.start; + for (let t = r, s = r + e.count; t < s; t += 3) + for (let e = 0; e < 3; e++) { + const r = a.getX(t + e), + s = a.getX(t + ((e + 1) % 3)); + (n[0] = Math.min(r, s)), (n[1] = Math.max(r, s)); + const o = n[0] + ',' + n[1]; + void 0 === i[o] && (i[o] = { index1: n[0], index2: n[1] }); + } + } + for (const t in i) { + const n = i[t]; + r.fromBufferAttribute(s, n.index1), + e.push(r.x, r.y, r.z), + r.fromBufferAttribute(s, n.index2), + e.push(r.x, r.y, r.z); + } + } else { + const n = t.attributes.position; + for (let t = 0, i = n.count / 3; t < i; t++) + for (let i = 0; i < 3; i++) { + const s = 3 * t + i; + r.fromBufferAttribute(n, s), e.push(r.x, r.y, r.z); + const a = 3 * t + ((i + 1) % 3); + r.fromBufferAttribute(n, a), e.push(r.x, r.y, r.z); + } + } + this.setAttribute('position', new mn(e, 3)); + } + } + var Po = Object.freeze({ + __proto__: null, + BoxGeometry: qn, + BoxBufferGeometry: qn, + CircleGeometry: Pa, + CircleBufferGeometry: Pa, + ConeGeometry: Ia, + ConeBufferGeometry: Ia, + CylinderGeometry: Da, + CylinderBufferGeometry: Da, + DodecahedronGeometry: Ba, + DodecahedronBufferGeometry: Ba, + EdgesGeometry: Ga, + ExtrudeGeometry: go, + ExtrudeBufferGeometry: go, + IcosahedronGeometry: yo, + IcosahedronBufferGeometry: yo, + LatheGeometry: xo, + LatheBufferGeometry: xo, + OctahedronGeometry: _o, + OctahedronBufferGeometry: _o, + ParametricGeometry: wo, + ParametricBufferGeometry: wo, + PlaneGeometry: ci, + PlaneBufferGeometry: ci, + PolyhedronGeometry: Na, + PolyhedronBufferGeometry: Na, + RingGeometry: bo, + RingBufferGeometry: bo, + ShapeGeometry: Mo, + ShapeBufferGeometry: Mo, + SphereGeometry: So, + SphereBufferGeometry: So, + TetrahedronGeometry: To, + TetrahedronBufferGeometry: To, + TextGeometry: Eo, + TextBufferGeometry: Eo, + TorusGeometry: Ao, + TorusBufferGeometry: Ao, + TorusKnotGeometry: Lo, + TorusKnotBufferGeometry: Lo, + TubeGeometry: Ro, + TubeBufferGeometry: Ro, + WireframeGeometry: Co, + }); + class Do extends Xe { + constructor(t) { + super(), + (this.type = 'ShadowMaterial'), + (this.color = new tn(0)), + (this.transparent = !0), + this.setValues(t); + } + copy(t) { + return super.copy(t), this.color.copy(t.color), this; + } + } + Do.prototype.isShadowMaterial = !0; + class Io extends Jn { + constructor(t) { + super(t), (this.type = 'RawShaderMaterial'); + } + } + Io.prototype.isRawShaderMaterial = !0; + class No extends Xe { + constructor(t) { + super(), + (this.defines = { STANDARD: '' }), + (this.type = 'MeshStandardMaterial'), + (this.color = new tn(16777215)), + (this.roughness = 1), + (this.metalness = 0), + (this.map = null), + (this.lightMap = null), + (this.lightMapIntensity = 1), + (this.aoMap = null), + (this.aoMapIntensity = 1), + (this.emissive = new tn(0)), + (this.emissiveIntensity = 1), + (this.emissiveMap = null), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalMapType = 0), + (this.normalScale = new vt(1, 1)), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.roughnessMap = null), + (this.metalnessMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.envMapIntensity = 1), + (this.refractionRatio = 0.98), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.flatShading = !1), + (this.vertexTangents = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.defines = { STANDARD: '' }), + this.color.copy(t.color), + (this.roughness = t.roughness), + (this.metalness = t.metalness), + (this.map = t.map), + (this.lightMap = t.lightMap), + (this.lightMapIntensity = t.lightMapIntensity), + (this.aoMap = t.aoMap), + (this.aoMapIntensity = t.aoMapIntensity), + this.emissive.copy(t.emissive), + (this.emissiveMap = t.emissiveMap), + (this.emissiveIntensity = t.emissiveIntensity), + (this.bumpMap = t.bumpMap), + (this.bumpScale = t.bumpScale), + (this.normalMap = t.normalMap), + (this.normalMapType = t.normalMapType), + this.normalScale.copy(t.normalScale), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.roughnessMap = t.roughnessMap), + (this.metalnessMap = t.metalnessMap), + (this.alphaMap = t.alphaMap), + (this.envMap = t.envMap), + (this.envMapIntensity = t.envMapIntensity), + (this.refractionRatio = t.refractionRatio), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.wireframeLinecap = t.wireframeLinecap), + (this.wireframeLinejoin = t.wireframeLinejoin), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + (this.flatShading = t.flatShading), + (this.vertexTangents = t.vertexTangents), + this + ); + } + } + No.prototype.isMeshStandardMaterial = !0; + class Bo extends No { + constructor(t) { + super(), + (this.defines = { STANDARD: '', PHYSICAL: '' }), + (this.type = 'MeshPhysicalMaterial'), + (this.clearcoat = 0), + (this.clearcoatMap = null), + (this.clearcoatRoughness = 0), + (this.clearcoatRoughnessMap = null), + (this.clearcoatNormalScale = new vt(1, 1)), + (this.clearcoatNormalMap = null), + (this.reflectivity = 0.5), + Object.defineProperty(this, 'ior', { + get: function () { + return ( + (1 + 0.4 * this.reflectivity) / (1 - 0.4 * this.reflectivity) + ); + }, + set: function (t) { + this.reflectivity = ht((2.5 * (t - 1)) / (t + 1), 0, 1); + }, + }), + (this.sheen = null), + (this.transmission = 0), + (this.transmissionMap = null), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.defines = { STANDARD: '', PHYSICAL: '' }), + (this.clearcoat = t.clearcoat), + (this.clearcoatMap = t.clearcoatMap), + (this.clearcoatRoughness = t.clearcoatRoughness), + (this.clearcoatRoughnessMap = t.clearcoatRoughnessMap), + (this.clearcoatNormalMap = t.clearcoatNormalMap), + this.clearcoatNormalScale.copy(t.clearcoatNormalScale), + (this.reflectivity = t.reflectivity), + t.sheen + ? (this.sheen = (this.sheen || new tn()).copy(t.sheen)) + : (this.sheen = null), + (this.transmission = t.transmission), + (this.transmissionMap = t.transmissionMap), + this + ); + } + } + Bo.prototype.isMeshPhysicalMaterial = !0; + class zo extends Xe { + constructor(t) { + super(), + (this.type = 'MeshPhongMaterial'), + (this.color = new tn(16777215)), + (this.specular = new tn(1118481)), + (this.shininess = 30), + (this.map = null), + (this.lightMap = null), + (this.lightMapIntensity = 1), + (this.aoMap = null), + (this.aoMapIntensity = 1), + (this.emissive = new tn(0)), + (this.emissiveIntensity = 1), + (this.emissiveMap = null), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalMapType = 0), + (this.normalScale = new vt(1, 1)), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = 0), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.flatShading = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + this.specular.copy(t.specular), + (this.shininess = t.shininess), + (this.map = t.map), + (this.lightMap = t.lightMap), + (this.lightMapIntensity = t.lightMapIntensity), + (this.aoMap = t.aoMap), + (this.aoMapIntensity = t.aoMapIntensity), + this.emissive.copy(t.emissive), + (this.emissiveMap = t.emissiveMap), + (this.emissiveIntensity = t.emissiveIntensity), + (this.bumpMap = t.bumpMap), + (this.bumpScale = t.bumpScale), + (this.normalMap = t.normalMap), + (this.normalMapType = t.normalMapType), + this.normalScale.copy(t.normalScale), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.specularMap = t.specularMap), + (this.alphaMap = t.alphaMap), + (this.envMap = t.envMap), + (this.combine = t.combine), + (this.reflectivity = t.reflectivity), + (this.refractionRatio = t.refractionRatio), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.wireframeLinecap = t.wireframeLinecap), + (this.wireframeLinejoin = t.wireframeLinejoin), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + (this.flatShading = t.flatShading), + this + ); + } + } + zo.prototype.isMeshPhongMaterial = !0; + class Fo extends Xe { + constructor(t) { + super(), + (this.defines = { TOON: '' }), + (this.type = 'MeshToonMaterial'), + (this.color = new tn(16777215)), + (this.map = null), + (this.gradientMap = null), + (this.lightMap = null), + (this.lightMapIntensity = 1), + (this.aoMap = null), + (this.aoMapIntensity = 1), + (this.emissive = new tn(0)), + (this.emissiveIntensity = 1), + (this.emissiveMap = null), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalMapType = 0), + (this.normalScale = new vt(1, 1)), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.alphaMap = null), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.map = t.map), + (this.gradientMap = t.gradientMap), + (this.lightMap = t.lightMap), + (this.lightMapIntensity = t.lightMapIntensity), + (this.aoMap = t.aoMap), + (this.aoMapIntensity = t.aoMapIntensity), + this.emissive.copy(t.emissive), + (this.emissiveMap = t.emissiveMap), + (this.emissiveIntensity = t.emissiveIntensity), + (this.bumpMap = t.bumpMap), + (this.bumpScale = t.bumpScale), + (this.normalMap = t.normalMap), + (this.normalMapType = t.normalMapType), + this.normalScale.copy(t.normalScale), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.alphaMap = t.alphaMap), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.wireframeLinecap = t.wireframeLinecap), + (this.wireframeLinejoin = t.wireframeLinejoin), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + this + ); + } + } + Fo.prototype.isMeshToonMaterial = !0; + class Oo extends Xe { + constructor(t) { + super(), + (this.type = 'MeshNormalMaterial'), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalMapType = 0), + (this.normalScale = new vt(1, 1)), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.fog = !1), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.flatShading = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.bumpMap = t.bumpMap), + (this.bumpScale = t.bumpScale), + (this.normalMap = t.normalMap), + (this.normalMapType = t.normalMapType), + this.normalScale.copy(t.normalScale), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + (this.flatShading = t.flatShading), + this + ); + } + } + Oo.prototype.isMeshNormalMaterial = !0; + class Ho extends Xe { + constructor(t) { + super(), + (this.type = 'MeshLambertMaterial'), + (this.color = new tn(16777215)), + (this.map = null), + (this.lightMap = null), + (this.lightMapIntensity = 1), + (this.aoMap = null), + (this.aoMapIntensity = 1), + (this.emissive = new tn(0)), + (this.emissiveIntensity = 1), + (this.emissiveMap = null), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = 0), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.map = t.map), + (this.lightMap = t.lightMap), + (this.lightMapIntensity = t.lightMapIntensity), + (this.aoMap = t.aoMap), + (this.aoMapIntensity = t.aoMapIntensity), + this.emissive.copy(t.emissive), + (this.emissiveMap = t.emissiveMap), + (this.emissiveIntensity = t.emissiveIntensity), + (this.specularMap = t.specularMap), + (this.alphaMap = t.alphaMap), + (this.envMap = t.envMap), + (this.combine = t.combine), + (this.reflectivity = t.reflectivity), + (this.refractionRatio = t.refractionRatio), + (this.wireframe = t.wireframe), + (this.wireframeLinewidth = t.wireframeLinewidth), + (this.wireframeLinecap = t.wireframeLinecap), + (this.wireframeLinejoin = t.wireframeLinejoin), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + this + ); + } + } + Ho.prototype.isMeshLambertMaterial = !0; + class Go extends Xe { + constructor(t) { + super(), + (this.defines = { MATCAP: '' }), + (this.type = 'MeshMatcapMaterial'), + (this.color = new tn(16777215)), + (this.matcap = null), + (this.map = null), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalMapType = 0), + (this.normalScale = new vt(1, 1)), + (this.displacementMap = null), + (this.displacementScale = 1), + (this.displacementBias = 0), + (this.alphaMap = null), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.flatShading = !1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.defines = { MATCAP: '' }), + this.color.copy(t.color), + (this.matcap = t.matcap), + (this.map = t.map), + (this.bumpMap = t.bumpMap), + (this.bumpScale = t.bumpScale), + (this.normalMap = t.normalMap), + (this.normalMapType = t.normalMapType), + this.normalScale.copy(t.normalScale), + (this.displacementMap = t.displacementMap), + (this.displacementScale = t.displacementScale), + (this.displacementBias = t.displacementBias), + (this.alphaMap = t.alphaMap), + (this.skinning = t.skinning), + (this.morphTargets = t.morphTargets), + (this.morphNormals = t.morphNormals), + (this.flatShading = t.flatShading), + this + ); + } + } + Go.prototype.isMeshMatcapMaterial = !0; + class Uo extends ca { + constructor(t) { + super(), + (this.type = 'LineDashedMaterial'), + (this.scale = 1), + (this.dashSize = 3), + (this.gapSize = 1), + this.setValues(t); + } + copy(t) { + return ( + super.copy(t), + (this.scale = t.scale), + (this.dashSize = t.dashSize), + (this.gapSize = t.gapSize), + this + ); + } + } + Uo.prototype.isLineDashedMaterial = !0; + var ko = Object.freeze({ + __proto__: null, + ShadowMaterial: Do, + SpriteMaterial: Rs, + RawShaderMaterial: Io, + ShaderMaterial: Jn, + PointsMaterial: _a, + MeshPhysicalMaterial: Bo, + MeshStandardMaterial: No, + MeshPhongMaterial: zo, + MeshToonMaterial: Fo, + MeshNormalMaterial: Oo, + MeshLambertMaterial: Ho, + MeshDepthMaterial: cs, + MeshDistanceMaterial: hs, + MeshBasicMaterial: en, + MeshMatcapMaterial: Go, + LineDashedMaterial: Uo, + LineBasicMaterial: ca, + Material: Xe, + }); + const Vo = { + arraySlice: function (t, e, n) { + return Vo.isTypedArray(t) + ? new t.constructor(t.subarray(e, void 0 !== n ? n : t.length)) + : t.slice(e, n); + }, + convertArray: function (t, e, n) { + return !t || (!n && t.constructor === e) + ? t + : 'number' == typeof e.BYTES_PER_ELEMENT + ? new e(t) + : Array.prototype.slice.call(t); + }, + isTypedArray: function (t) { + return ArrayBuffer.isView(t) && !(t instanceof DataView); + }, + getKeyframeOrder: function (t) { + const e = t.length, + n = new Array(e); + for (let t = 0; t !== e; ++t) n[t] = t; + return ( + n.sort(function (e, n) { + return t[e] - t[n]; + }), + n + ); + }, + sortedArray: function (t, e, n) { + const i = t.length, + r = new t.constructor(i); + for (let s = 0, a = 0; a !== i; ++s) { + const i = n[s] * e; + for (let n = 0; n !== e; ++n) r[a++] = t[i + n]; + } + return r; + }, + flattenJSON: function (t, e, n, i) { + let r = 1, + s = t[0]; + for (; void 0 !== s && void 0 === s[i]; ) s = t[r++]; + if (void 0 === s) return; + let a = s[i]; + if (void 0 !== a) + if (Array.isArray(a)) + do { + (a = s[i]), + void 0 !== a && (e.push(s.time), n.push.apply(n, a)), + (s = t[r++]); + } while (void 0 !== s); + else if (void 0 !== a.toArray) + do { + (a = s[i]), + void 0 !== a && (e.push(s.time), a.toArray(n, n.length)), + (s = t[r++]); + } while (void 0 !== s); + else + do { + (a = s[i]), + void 0 !== a && (e.push(s.time), n.push(a)), + (s = t[r++]); + } while (void 0 !== s); + }, + subclip: function (t, e, n, i, r = 30) { + const s = t.clone(); + s.name = e; + const a = []; + for (let t = 0; t < s.tracks.length; ++t) { + const e = s.tracks[t], + o = e.getValueSize(), + l = [], + c = []; + for (let t = 0; t < e.times.length; ++t) { + const s = e.times[t] * r; + if (!(s < n || s >= i)) { + l.push(e.times[t]); + for (let n = 0; n < o; ++n) c.push(e.values[t * o + n]); + } + } + 0 !== l.length && + ((e.times = Vo.convertArray(l, e.times.constructor)), + (e.values = Vo.convertArray(c, e.values.constructor)), + a.push(e)); + } + s.tracks = a; + let o = 1 / 0; + for (let t = 0; t < s.tracks.length; ++t) + o > s.tracks[t].times[0] && (o = s.tracks[t].times[0]); + for (let t = 0; t < s.tracks.length; ++t) s.tracks[t].shift(-1 * o); + return s.resetDuration(), s; + }, + makeClipAdditive: function (t, e = 0, n = t, i = 30) { + i <= 0 && (i = 30); + const r = n.tracks.length, + s = e / i; + for (let e = 0; e < r; ++e) { + const i = n.tracks[e], + r = i.ValueTypeName; + if ('bool' === r || 'string' === r) continue; + const a = t.tracks.find(function (t) { + return t.name === i.name && t.ValueTypeName === r; + }); + if (void 0 === a) continue; + let o = 0; + const l = i.getValueSize(); + i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline && + (o = l / 3); + let c = 0; + const h = a.getValueSize(); + a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline && + (c = h / 3); + const u = i.times.length - 1; + let d; + if (s <= i.times[0]) { + const t = o, + e = l - o; + d = Vo.arraySlice(i.values, t, e); + } else if (s >= i.times[u]) { + const t = u * l + o, + e = t + l - o; + d = Vo.arraySlice(i.values, t, e); + } else { + const t = i.createInterpolant(), + e = o, + n = l - o; + t.evaluate(s), (d = Vo.arraySlice(t.resultBuffer, e, n)); + } + if ('quaternion' === r) { + new At().fromArray(d).normalize().conjugate().toArray(d); + } + const p = a.times.length; + for (let t = 0; t < p; ++t) { + const e = t * h + c; + if ('quaternion' === r) + At.multiplyQuaternionsFlat(a.values, e, d, 0, a.values, e); + else { + const t = h - 2 * c; + for (let n = 0; n < t; ++n) a.values[e + n] -= d[n]; + } + } + } + return (t.blendMode = q), t; + }, + }; + class Wo { + constructor(t, e, n, i) { + (this.parameterPositions = t), + (this._cachedIndex = 0), + (this.resultBuffer = void 0 !== i ? i : new e.constructor(n)), + (this.sampleValues = e), + (this.valueSize = n), + (this.settings = null), + (this.DefaultSettings_ = {}); + } + evaluate(t) { + const e = this.parameterPositions; + let n = this._cachedIndex, + i = e[n], + r = e[n - 1]; + t: { + e: { + let s; + n: { + i: if (!(t < i)) { + for (let s = n + 2; ; ) { + if (void 0 === i) { + if (t < r) break i; + return ( + (n = e.length), + (this._cachedIndex = n), + this.afterEnd_(n - 1, t, r) + ); + } + if (n === s) break; + if (((r = i), (i = e[++n]), t < i)) break e; + } + s = e.length; + break n; + } + if (t >= r) break t; + { + const a = e[1]; + t < a && ((n = 2), (r = a)); + for (let s = n - 2; ; ) { + if (void 0 === r) + return (this._cachedIndex = 0), this.beforeStart_(0, t, i); + if (n === s) break; + if (((i = r), (r = e[--n - 1]), t >= r)) break e; + } + (s = n), (n = 0); + } + } + for (; n < s; ) { + const i = (n + s) >>> 1; + t < e[i] ? (s = i) : (n = i + 1); + } + if (((i = e[n]), (r = e[n - 1]), void 0 === r)) + return (this._cachedIndex = 0), this.beforeStart_(0, t, i); + if (void 0 === i) + return ( + (n = e.length), + (this._cachedIndex = n), + this.afterEnd_(n - 1, r, t) + ); + } + (this._cachedIndex = n), this.intervalChanged_(n, r, i); + } + return this.interpolate_(n, r, t, i); + } + getSettings_() { + return this.settings || this.DefaultSettings_; + } + copySampleValue_(t) { + const e = this.resultBuffer, + n = this.sampleValues, + i = this.valueSize, + r = t * i; + for (let t = 0; t !== i; ++t) e[t] = n[r + t]; + return e; + } + interpolate_() { + throw new Error('call to abstract method'); + } + intervalChanged_() {} + } + (Wo.prototype.beforeStart_ = Wo.prototype.copySampleValue_), + (Wo.prototype.afterEnd_ = Wo.prototype.copySampleValue_); + class jo extends Wo { + constructor(t, e, n, i) { + super(t, e, n, i), + (this._weightPrev = -0), + (this._offsetPrev = -0), + (this._weightNext = -0), + (this._offsetNext = -0), + (this.DefaultSettings_ = { endingStart: k, endingEnd: k }); + } + intervalChanged_(t, e, n) { + const i = this.parameterPositions; + let r = t - 2, + s = t + 1, + a = i[r], + o = i[s]; + if (void 0 === a) + switch (this.getSettings_().endingStart) { + case V: + (r = t), (a = 2 * e - n); + break; + case W: + (r = i.length - 2), (a = e + i[r] - i[r + 1]); + break; + default: + (r = t), (a = n); + } + if (void 0 === o) + switch (this.getSettings_().endingEnd) { + case V: + (s = t), (o = 2 * n - e); + break; + case W: + (s = 1), (o = n + i[1] - i[0]); + break; + default: + (s = t - 1), (o = e); + } + const l = 0.5 * (n - e), + c = this.valueSize; + (this._weightPrev = l / (e - a)), + (this._weightNext = l / (o - n)), + (this._offsetPrev = r * c), + (this._offsetNext = s * c); + } + interpolate_(t, e, n, i) { + const r = this.resultBuffer, + s = this.sampleValues, + a = this.valueSize, + o = t * a, + l = o - a, + c = this._offsetPrev, + h = this._offsetNext, + u = this._weightPrev, + d = this._weightNext, + p = (n - e) / (i - e), + m = p * p, + f = m * p, + g = -u * f + 2 * u * m - u * p, + v = (1 + u) * f + (-1.5 - 2 * u) * m + (-0.5 + u) * p + 1, + y = (-1 - d) * f + (1.5 + d) * m + 0.5 * p, + x = d * f - d * m; + for (let t = 0; t !== a; ++t) + r[t] = g * s[c + t] + v * s[l + t] + y * s[o + t] + x * s[h + t]; + return r; + } + } + class qo extends Wo { + constructor(t, e, n, i) { + super(t, e, n, i); + } + interpolate_(t, e, n, i) { + const r = this.resultBuffer, + s = this.sampleValues, + a = this.valueSize, + o = t * a, + l = o - a, + c = (n - e) / (i - e), + h = 1 - c; + for (let t = 0; t !== a; ++t) r[t] = s[l + t] * h + s[o + t] * c; + return r; + } + } + class Xo extends Wo { + constructor(t, e, n, i) { + super(t, e, n, i); + } + interpolate_(t) { + return this.copySampleValue_(t - 1); + } + } + class Yo { + constructor(t, e, n, i) { + if (void 0 === t) + throw new Error('THREE.KeyframeTrack: track name is undefined'); + if (void 0 === e || 0 === e.length) + throw new Error( + 'THREE.KeyframeTrack: no keyframes in track named ' + t + ); + (this.name = t), + (this.times = Vo.convertArray(e, this.TimeBufferType)), + (this.values = Vo.convertArray(n, this.ValueBufferType)), + this.setInterpolation(i || this.DefaultInterpolation); + } + static toJSON(t) { + const e = t.constructor; + let n; + if (e.toJSON !== this.toJSON) n = e.toJSON(t); + else { + n = { + name: t.name, + times: Vo.convertArray(t.times, Array), + values: Vo.convertArray(t.values, Array), + }; + const e = t.getInterpolation(); + e !== t.DefaultInterpolation && (n.interpolation = e); + } + return (n.type = t.ValueTypeName), n; + } + InterpolantFactoryMethodDiscrete(t) { + return new Xo(this.times, this.values, this.getValueSize(), t); + } + InterpolantFactoryMethodLinear(t) { + return new qo(this.times, this.values, this.getValueSize(), t); + } + InterpolantFactoryMethodSmooth(t) { + return new jo(this.times, this.values, this.getValueSize(), t); + } + setInterpolation(t) { + let e; + switch (t) { + case H: + e = this.InterpolantFactoryMethodDiscrete; + break; + case G: + e = this.InterpolantFactoryMethodLinear; + break; + case U: + e = this.InterpolantFactoryMethodSmooth; + } + if (void 0 === e) { + const e = + 'unsupported interpolation for ' + + this.ValueTypeName + + ' keyframe track named ' + + this.name; + if (void 0 === this.createInterpolant) { + if (t === this.DefaultInterpolation) throw new Error(e); + this.setInterpolation(this.DefaultInterpolation); + } + return console.warn('THREE.KeyframeTrack:', e), this; + } + return (this.createInterpolant = e), this; + } + getInterpolation() { + switch (this.createInterpolant) { + case this.InterpolantFactoryMethodDiscrete: + return H; + case this.InterpolantFactoryMethodLinear: + return G; + case this.InterpolantFactoryMethodSmooth: + return U; + } + } + getValueSize() { + return this.values.length / this.times.length; + } + shift(t) { + if (0 !== t) { + const e = this.times; + for (let n = 0, i = e.length; n !== i; ++n) e[n] += t; + } + return this; + } + scale(t) { + if (1 !== t) { + const e = this.times; + for (let n = 0, i = e.length; n !== i; ++n) e[n] *= t; + } + return this; + } + trim(t, e) { + const n = this.times, + i = n.length; + let r = 0, + s = i - 1; + for (; r !== i && n[r] < t; ) ++r; + for (; -1 !== s && n[s] > e; ) --s; + if ((++s, 0 !== r || s !== i)) { + r >= s && ((s = Math.max(s, 1)), (r = s - 1)); + const t = this.getValueSize(); + (this.times = Vo.arraySlice(n, r, s)), + (this.values = Vo.arraySlice(this.values, r * t, s * t)); + } + return this; + } + validate() { + let t = !0; + const e = this.getValueSize(); + e - Math.floor(e) != 0 && + (console.error( + 'THREE.KeyframeTrack: Invalid value size in track.', + this + ), + (t = !1)); + const n = this.times, + i = this.values, + r = n.length; + 0 === r && + (console.error('THREE.KeyframeTrack: Track is empty.', this), (t = !1)); + let s = null; + for (let e = 0; e !== r; e++) { + const i = n[e]; + if ('number' == typeof i && isNaN(i)) { + console.error( + 'THREE.KeyframeTrack: Time is not a valid number.', + this, + e, + i + ), + (t = !1); + break; + } + if (null !== s && s > i) { + console.error( + 'THREE.KeyframeTrack: Out of order keys.', + this, + e, + i, + s + ), + (t = !1); + break; + } + s = i; + } + if (void 0 !== i && Vo.isTypedArray(i)) + for (let e = 0, n = i.length; e !== n; ++e) { + const n = i[e]; + if (isNaN(n)) { + console.error( + 'THREE.KeyframeTrack: Value is not a valid number.', + this, + e, + n + ), + (t = !1); + break; + } + } + return t; + } + optimize() { + const t = Vo.arraySlice(this.times), + e = Vo.arraySlice(this.values), + n = this.getValueSize(), + i = this.getInterpolation() === U, + r = t.length - 1; + let s = 1; + for (let a = 1; a < r; ++a) { + let r = !1; + const o = t[a]; + if (o !== t[a + 1] && (1 !== a || o !== t[0])) + if (i) r = !0; + else { + const t = a * n, + i = t - n, + s = t + n; + for (let a = 0; a !== n; ++a) { + const n = e[t + a]; + if (n !== e[i + a] || n !== e[s + a]) { + r = !0; + break; + } + } + } + if (r) { + if (a !== s) { + t[s] = t[a]; + const i = a * n, + r = s * n; + for (let t = 0; t !== n; ++t) e[r + t] = e[i + t]; + } + ++s; + } + } + if (r > 0) { + t[s] = t[r]; + for (let t = r * n, i = s * n, a = 0; a !== n; ++a) e[i + a] = e[t + a]; + ++s; + } + return ( + s !== t.length + ? ((this.times = Vo.arraySlice(t, 0, s)), + (this.values = Vo.arraySlice(e, 0, s * n))) + : ((this.times = t), (this.values = e)), + this + ); + } + clone() { + const t = Vo.arraySlice(this.times, 0), + e = Vo.arraySlice(this.values, 0), + n = new (0, this.constructor)(this.name, t, e); + return (n.createInterpolant = this.createInterpolant), n; + } + } + (Yo.prototype.TimeBufferType = Float32Array), + (Yo.prototype.ValueBufferType = Float32Array), + (Yo.prototype.DefaultInterpolation = G); + class Zo extends Yo {} + (Zo.prototype.ValueTypeName = 'bool'), + (Zo.prototype.ValueBufferType = Array), + (Zo.prototype.DefaultInterpolation = H), + (Zo.prototype.InterpolantFactoryMethodLinear = void 0), + (Zo.prototype.InterpolantFactoryMethodSmooth = void 0); + class Jo extends Yo {} + Jo.prototype.ValueTypeName = 'color'; + class Qo extends Yo {} + Qo.prototype.ValueTypeName = 'number'; + class Ko extends Wo { + constructor(t, e, n, i) { + super(t, e, n, i); + } + interpolate_(t, e, n, i) { + const r = this.resultBuffer, + s = this.sampleValues, + a = this.valueSize, + o = (n - e) / (i - e); + let l = t * a; + for (let t = l + a; l !== t; l += 4) + At.slerpFlat(r, 0, s, l - a, s, l, o); + return r; + } + } + class $o extends Yo { + InterpolantFactoryMethodLinear(t) { + return new Ko(this.times, this.values, this.getValueSize(), t); + } + } + ($o.prototype.ValueTypeName = 'quaternion'), + ($o.prototype.DefaultInterpolation = G), + ($o.prototype.InterpolantFactoryMethodSmooth = void 0); + class tl extends Yo {} + (tl.prototype.ValueTypeName = 'string'), + (tl.prototype.ValueBufferType = Array), + (tl.prototype.DefaultInterpolation = H), + (tl.prototype.InterpolantFactoryMethodLinear = void 0), + (tl.prototype.InterpolantFactoryMethodSmooth = void 0); + class el extends Yo {} + el.prototype.ValueTypeName = 'vector'; + class nl { + constructor(t, e = -1, n, i = 2500) { + (this.name = t), + (this.tracks = n), + (this.duration = e), + (this.blendMode = i), + (this.uuid = ct()), + this.duration < 0 && this.resetDuration(); + } + static parse(t) { + const e = [], + n = t.tracks, + i = 1 / (t.fps || 1); + for (let t = 0, r = n.length; t !== r; ++t) e.push(il(n[t]).scale(i)); + const r = new this(t.name, t.duration, e, t.blendMode); + return (r.uuid = t.uuid), r; + } + static toJSON(t) { + const e = [], + n = t.tracks, + i = { + name: t.name, + duration: t.duration, + tracks: e, + uuid: t.uuid, + blendMode: t.blendMode, + }; + for (let t = 0, i = n.length; t !== i; ++t) e.push(Yo.toJSON(n[t])); + return i; + } + static CreateFromMorphTargetSequence(t, e, n, i) { + const r = e.length, + s = []; + for (let t = 0; t < r; t++) { + let a = [], + o = []; + a.push((t + r - 1) % r, t, (t + 1) % r), o.push(0, 1, 0); + const l = Vo.getKeyframeOrder(a); + (a = Vo.sortedArray(a, 1, l)), + (o = Vo.sortedArray(o, 1, l)), + i || 0 !== a[0] || (a.push(r), o.push(o[0])), + s.push( + new Qo('.morphTargetInfluences[' + e[t].name + ']', a, o).scale( + 1 / n + ) + ); + } + return new this(t, -1, s); + } + static findByName(t, e) { + let n = t; + if (!Array.isArray(t)) { + const e = t; + n = (e.geometry && e.geometry.animations) || e.animations; + } + for (let t = 0; t < n.length; t++) if (n[t].name === e) return n[t]; + return null; + } + static CreateClipsFromMorphTargetSequences(t, e, n) { + const i = {}, + r = /^([\w-]*?)([\d]+)$/; + for (let e = 0, n = t.length; e < n; e++) { + const n = t[e], + s = n.name.match(r); + if (s && s.length > 1) { + const t = s[1]; + let e = i[t]; + e || (i[t] = e = []), e.push(n); + } + } + const s = []; + for (const t in i) + s.push(this.CreateFromMorphTargetSequence(t, i[t], e, n)); + return s; + } + static parseAnimation(t, e) { + if (!t) + return ( + console.error( + 'THREE.AnimationClip: No animation in JSONLoader data.' + ), + null + ); + const n = function (t, e, n, i, r) { + if (0 !== n.length) { + const s = [], + a = []; + Vo.flattenJSON(n, s, a, i), + 0 !== s.length && r.push(new t(e, s, a)); + } + }, + i = [], + r = t.name || 'default', + s = t.fps || 30, + a = t.blendMode; + let o = t.length || -1; + const l = t.hierarchy || []; + for (let t = 0; t < l.length; t++) { + const r = l[t].keys; + if (r && 0 !== r.length) + if (r[0].morphTargets) { + const t = {}; + let e; + for (e = 0; e < r.length; e++) + if (r[e].morphTargets) + for (let n = 0; n < r[e].morphTargets.length; n++) + t[r[e].morphTargets[n]] = -1; + for (const n in t) { + const t = [], + s = []; + for (let i = 0; i !== r[e].morphTargets.length; ++i) { + const i = r[e]; + t.push(i.time), s.push(i.morphTarget === n ? 1 : 0); + } + i.push(new Qo('.morphTargetInfluence[' + n + ']', t, s)); + } + o = t.length * (s || 1); + } else { + const s = '.bones[' + e[t].name + ']'; + n(el, s + '.position', r, 'pos', i), + n($o, s + '.quaternion', r, 'rot', i), + n(el, s + '.scale', r, 'scl', i); + } + } + if (0 === i.length) return null; + return new this(r, o, i, a); + } + resetDuration() { + let t = 0; + for (let e = 0, n = this.tracks.length; e !== n; ++e) { + const n = this.tracks[e]; + t = Math.max(t, n.times[n.times.length - 1]); + } + return (this.duration = t), this; + } + trim() { + for (let t = 0; t < this.tracks.length; t++) + this.tracks[t].trim(0, this.duration); + return this; + } + validate() { + let t = !0; + for (let e = 0; e < this.tracks.length; e++) + t = t && this.tracks[e].validate(); + return t; + } + optimize() { + for (let t = 0; t < this.tracks.length; t++) this.tracks[t].optimize(); + return this; + } + clone() { + const t = []; + for (let e = 0; e < this.tracks.length; e++) + t.push(this.tracks[e].clone()); + return new this.constructor(this.name, this.duration, t, this.blendMode); + } + toJSON() { + return this.constructor.toJSON(this); + } + } + function il(t) { + if (void 0 === t.type) + throw new Error( + 'THREE.KeyframeTrack: track type undefined, can not parse' + ); + const e = (function (t) { + switch (t.toLowerCase()) { + case 'scalar': + case 'double': + case 'float': + case 'number': + case 'integer': + return Qo; + case 'vector': + case 'vector2': + case 'vector3': + case 'vector4': + return el; + case 'color': + return Jo; + case 'quaternion': + return $o; + case 'bool': + case 'boolean': + return Zo; + case 'string': + return tl; + } + throw new Error('THREE.KeyframeTrack: Unsupported typeName: ' + t); + })(t.type); + if (void 0 === t.times) { + const e = [], + n = []; + Vo.flattenJSON(t.keys, e, n, 'value'), (t.times = e), (t.values = n); + } + return void 0 !== e.parse + ? e.parse(t) + : new e(t.name, t.times, t.values, t.interpolation); + } + const rl = { + enabled: !1, + files: {}, + add: function (t, e) { + !1 !== this.enabled && (this.files[t] = e); + }, + get: function (t) { + if (!1 !== this.enabled) return this.files[t]; + }, + remove: function (t) { + delete this.files[t]; + }, + clear: function () { + this.files = {}; + }, + }; + class sl { + constructor(t, e, n) { + const i = this; + let r, + s = !1, + a = 0, + o = 0; + const l = []; + (this.onStart = void 0), + (this.onLoad = t), + (this.onProgress = e), + (this.onError = n), + (this.itemStart = function (t) { + o++, !1 === s && void 0 !== i.onStart && i.onStart(t, a, o), (s = !0); + }), + (this.itemEnd = function (t) { + a++, + void 0 !== i.onProgress && i.onProgress(t, a, o), + a === o && ((s = !1), void 0 !== i.onLoad && i.onLoad()); + }), + (this.itemError = function (t) { + void 0 !== i.onError && i.onError(t); + }), + (this.resolveURL = function (t) { + return r ? r(t) : t; + }), + (this.setURLModifier = function (t) { + return (r = t), this; + }), + (this.addHandler = function (t, e) { + return l.push(t, e), this; + }), + (this.removeHandler = function (t) { + const e = l.indexOf(t); + return -1 !== e && l.splice(e, 2), this; + }), + (this.getHandler = function (t) { + for (let e = 0, n = l.length; e < n; e += 2) { + const n = l[e], + i = l[e + 1]; + if ((n.global && (n.lastIndex = 0), n.test(t))) return i; + } + return null; + }); + } + } + const al = new sl(); + class ol { + constructor(t) { + (this.manager = void 0 !== t ? t : al), + (this.crossOrigin = 'anonymous'), + (this.withCredentials = !1), + (this.path = ''), + (this.resourcePath = ''), + (this.requestHeader = {}); + } + load() {} + loadAsync(t, e) { + const n = this; + return new Promise(function (i, r) { + n.load(t, i, e, r); + }); + } + parse() {} + setCrossOrigin(t) { + return (this.crossOrigin = t), this; + } + setWithCredentials(t) { + return (this.withCredentials = t), this; + } + setPath(t) { + return (this.path = t), this; + } + setResourcePath(t) { + return (this.resourcePath = t), this; + } + setRequestHeader(t) { + return (this.requestHeader = t), this; + } + } + const ll = {}; + class cl extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + void 0 === t && (t = ''), + void 0 !== this.path && (t = this.path + t), + (t = this.manager.resolveURL(t)); + const r = this, + s = rl.get(t); + if (void 0 !== s) + return ( + r.manager.itemStart(t), + setTimeout(function () { + e && e(s), r.manager.itemEnd(t); + }, 0), + s + ); + if (void 0 !== ll[t]) + return void ll[t].push({ onLoad: e, onProgress: n, onError: i }); + const a = t.match(/^data:(.*?)(;base64)?,(.*)$/); + let o; + if (a) { + const n = a[1], + s = !!a[2]; + let o = a[3]; + (o = decodeURIComponent(o)), s && (o = atob(o)); + try { + let i; + const s = (this.responseType || '').toLowerCase(); + switch (s) { + case 'arraybuffer': + case 'blob': + const t = new Uint8Array(o.length); + for (let e = 0; e < o.length; e++) t[e] = o.charCodeAt(e); + i = 'blob' === s ? new Blob([t.buffer], { type: n }) : t.buffer; + break; + case 'document': + const e = new DOMParser(); + i = e.parseFromString(o, n); + break; + case 'json': + i = JSON.parse(o); + break; + default: + i = o; + } + setTimeout(function () { + e && e(i), r.manager.itemEnd(t); + }, 0); + } catch (e) { + setTimeout(function () { + i && i(e), r.manager.itemError(t), r.manager.itemEnd(t); + }, 0); + } + } else { + (ll[t] = []), + ll[t].push({ onLoad: e, onProgress: n, onError: i }), + (o = new XMLHttpRequest()), + o.open('GET', t, !0), + o.addEventListener( + 'load', + function (e) { + const n = this.response, + i = ll[t]; + if ((delete ll[t], 200 === this.status || 0 === this.status)) { + 0 === this.status && + console.warn('THREE.FileLoader: HTTP Status 0 received.'), + rl.add(t, n); + for (let t = 0, e = i.length; t < e; t++) { + const e = i[t]; + e.onLoad && e.onLoad(n); + } + r.manager.itemEnd(t); + } else { + for (let t = 0, n = i.length; t < n; t++) { + const n = i[t]; + n.onError && n.onError(e); + } + r.manager.itemError(t), r.manager.itemEnd(t); + } + }, + !1 + ), + o.addEventListener( + 'progress', + function (e) { + const n = ll[t]; + for (let t = 0, i = n.length; t < i; t++) { + const i = n[t]; + i.onProgress && i.onProgress(e); + } + }, + !1 + ), + o.addEventListener( + 'error', + function (e) { + const n = ll[t]; + delete ll[t]; + for (let t = 0, i = n.length; t < i; t++) { + const i = n[t]; + i.onError && i.onError(e); + } + r.manager.itemError(t), r.manager.itemEnd(t); + }, + !1 + ), + o.addEventListener( + 'abort', + function (e) { + const n = ll[t]; + delete ll[t]; + for (let t = 0, i = n.length; t < i; t++) { + const i = n[t]; + i.onError && i.onError(e); + } + r.manager.itemError(t), r.manager.itemEnd(t); + }, + !1 + ), + void 0 !== this.responseType && (o.responseType = this.responseType), + void 0 !== this.withCredentials && + (o.withCredentials = this.withCredentials), + o.overrideMimeType && + o.overrideMimeType( + void 0 !== this.mimeType ? this.mimeType : 'text/plain' + ); + for (const t in this.requestHeader) + o.setRequestHeader(t, this.requestHeader[t]); + o.send(null); + } + return r.manager.itemStart(t), o; + } + setResponseType(t) { + return (this.responseType = t), this; + } + setMimeType(t) { + return (this.mimeType = t), this; + } + } + class hl extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + void 0 !== this.path && (t = this.path + t), + (t = this.manager.resolveURL(t)); + const r = this, + s = rl.get(t); + if (void 0 !== s) + return ( + r.manager.itemStart(t), + setTimeout(function () { + e && e(s), r.manager.itemEnd(t); + }, 0), + s + ); + const a = document.createElementNS('http://www.w3.org/1999/xhtml', 'img'); + function o() { + a.removeEventListener('load', o, !1), + a.removeEventListener('error', l, !1), + rl.add(t, this), + e && e(this), + r.manager.itemEnd(t); + } + function l(e) { + a.removeEventListener('load', o, !1), + a.removeEventListener('error', l, !1), + i && i(e), + r.manager.itemError(t), + r.manager.itemEnd(t); + } + return ( + a.addEventListener('load', o, !1), + a.addEventListener('error', l, !1), + 'data:' !== t.substr(0, 5) && + void 0 !== this.crossOrigin && + (a.crossOrigin = this.crossOrigin), + r.manager.itemStart(t), + (a.src = t), + a + ); + } + } + class ul extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = new ei(), + s = new hl(this.manager); + s.setCrossOrigin(this.crossOrigin), s.setPath(this.path); + let a = 0; + function o(n) { + s.load( + t[n], + function (t) { + (r.images[n] = t), + a++, + 6 === a && ((r.needsUpdate = !0), e && e(r)); + }, + void 0, + i + ); + } + for (let e = 0; e < t.length; ++e) o(e); + return r; + } + } + class dl extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = new ii(), + a = new cl(this.manager); + return ( + a.setResponseType('arraybuffer'), + a.setRequestHeader(this.requestHeader), + a.setPath(this.path), + a.setWithCredentials(r.withCredentials), + a.load( + t, + function (t) { + const n = r.parse(t); + n && + (void 0 !== n.image + ? (s.image = n.image) + : void 0 !== n.data && + ((s.image.width = n.width), + (s.image.height = n.height), + (s.image.data = n.data)), + (s.wrapS = void 0 !== n.wrapS ? n.wrapS : u), + (s.wrapT = void 0 !== n.wrapT ? n.wrapT : u), + (s.magFilter = void 0 !== n.magFilter ? n.magFilter : g), + (s.minFilter = void 0 !== n.minFilter ? n.minFilter : g), + (s.anisotropy = void 0 !== n.anisotropy ? n.anisotropy : 1), + void 0 !== n.encoding && (s.encoding = n.encoding), + void 0 !== n.flipY && (s.flipY = n.flipY), + void 0 !== n.format && (s.format = n.format), + void 0 !== n.type && (s.type = n.type), + void 0 !== n.mipmaps && + ((s.mipmaps = n.mipmaps), (s.minFilter = y)), + 1 === n.mipmapCount && (s.minFilter = g), + void 0 !== n.generateMipmaps && + (s.generateMipmaps = n.generateMipmaps), + (s.needsUpdate = !0), + e && e(s, n)); + }, + n, + i + ), + s + ); + } + } + class pl extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = new bt(), + s = new hl(this.manager); + return ( + s.setCrossOrigin(this.crossOrigin), + s.setPath(this.path), + s.load( + t, + function (n) { + r.image = n; + const i = + t.search(/\.jpe?g($|\?)/i) > 0 || + 0 === t.search(/^data\:image\/jpeg/); + (r.format = i ? T : E), (r.needsUpdate = !0), void 0 !== e && e(r); + }, + n, + i + ), + r + ); + } + } + class ml { + constructor() { + (this.type = 'Curve'), (this.arcLengthDivisions = 200); + } + getPoint() { + return console.warn('THREE.Curve: .getPoint() not implemented.'), null; + } + getPointAt(t, e) { + const n = this.getUtoTmapping(t); + return this.getPoint(n, e); + } + getPoints(t = 5) { + const e = []; + for (let n = 0; n <= t; n++) e.push(this.getPoint(n / t)); + return e; + } + getSpacedPoints(t = 5) { + const e = []; + for (let n = 0; n <= t; n++) e.push(this.getPointAt(n / t)); + return e; + } + getLength() { + const t = this.getLengths(); + return t[t.length - 1]; + } + getLengths(t = this.arcLengthDivisions) { + if ( + this.cacheArcLengths && + this.cacheArcLengths.length === t + 1 && + !this.needsUpdate + ) + return this.cacheArcLengths; + this.needsUpdate = !1; + const e = []; + let n, + i = this.getPoint(0), + r = 0; + e.push(0); + for (let s = 1; s <= t; s++) + (n = this.getPoint(s / t)), (r += n.distanceTo(i)), e.push(r), (i = n); + return (this.cacheArcLengths = e), e; + } + updateArcLengths() { + (this.needsUpdate = !0), this.getLengths(); + } + getUtoTmapping(t, e) { + const n = this.getLengths(); + let i = 0; + const r = n.length; + let s; + s = e || t * n[r - 1]; + let a, + o = 0, + l = r - 1; + for (; o <= l; ) + if (((i = Math.floor(o + (l - o) / 2)), (a = n[i] - s), a < 0)) + o = i + 1; + else { + if (!(a > 0)) { + l = i; + break; + } + l = i - 1; + } + if (((i = l), n[i] === s)) return i / (r - 1); + const c = n[i]; + return (i + (s - c) / (n[i + 1] - c)) / (r - 1); + } + getTangent(t, e) { + const n = 1e-4; + let i = t - n, + r = t + n; + i < 0 && (i = 0), r > 1 && (r = 1); + const s = this.getPoint(i), + a = this.getPoint(r), + o = e || (s.isVector2 ? new vt() : new Lt()); + return o.copy(a).sub(s).normalize(), o; + } + getTangentAt(t, e) { + const n = this.getUtoTmapping(t); + return this.getTangent(n, e); + } + computeFrenetFrames(t, e) { + const n = new Lt(), + i = [], + r = [], + s = [], + a = new Lt(), + o = new se(); + for (let e = 0; e <= t; e++) { + const n = e / t; + (i[e] = this.getTangentAt(n, new Lt())), i[e].normalize(); + } + (r[0] = new Lt()), (s[0] = new Lt()); + let l = Number.MAX_VALUE; + const c = Math.abs(i[0].x), + h = Math.abs(i[0].y), + u = Math.abs(i[0].z); + c <= l && ((l = c), n.set(1, 0, 0)), + h <= l && ((l = h), n.set(0, 1, 0)), + u <= l && n.set(0, 0, 1), + a.crossVectors(i[0], n).normalize(), + r[0].crossVectors(i[0], a), + s[0].crossVectors(i[0], r[0]); + for (let e = 1; e <= t; e++) { + if ( + ((r[e] = r[e - 1].clone()), + (s[e] = s[e - 1].clone()), + a.crossVectors(i[e - 1], i[e]), + a.length() > Number.EPSILON) + ) { + a.normalize(); + const t = Math.acos(ht(i[e - 1].dot(i[e]), -1, 1)); + r[e].applyMatrix4(o.makeRotationAxis(a, t)); + } + s[e].crossVectors(i[e], r[e]); + } + if (!0 === e) { + let e = Math.acos(ht(r[0].dot(r[t]), -1, 1)); + (e /= t), i[0].dot(a.crossVectors(r[0], r[t])) > 0 && (e = -e); + for (let n = 1; n <= t; n++) + r[n].applyMatrix4(o.makeRotationAxis(i[n], e * n)), + s[n].crossVectors(i[n], r[n]); + } + return { tangents: i, normals: r, binormals: s }; + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return (this.arcLengthDivisions = t.arcLengthDivisions), this; + } + toJSON() { + const t = { + metadata: { version: 4.5, type: 'Curve', generator: 'Curve.toJSON' }, + }; + return ( + (t.arcLengthDivisions = this.arcLengthDivisions), + (t.type = this.type), + t + ); + } + fromJSON(t) { + return (this.arcLengthDivisions = t.arcLengthDivisions), this; + } + } + class fl extends ml { + constructor( + t = 0, + e = 0, + n = 1, + i = 1, + r = 0, + s = 2 * Math.PI, + a = !1, + o = 0 + ) { + super(), + (this.type = 'EllipseCurve'), + (this.aX = t), + (this.aY = e), + (this.xRadius = n), + (this.yRadius = i), + (this.aStartAngle = r), + (this.aEndAngle = s), + (this.aClockwise = a), + (this.aRotation = o); + } + getPoint(t, e) { + const n = e || new vt(), + i = 2 * Math.PI; + let r = this.aEndAngle - this.aStartAngle; + const s = Math.abs(r) < Number.EPSILON; + for (; r < 0; ) r += i; + for (; r > i; ) r -= i; + r < Number.EPSILON && (r = s ? 0 : i), + !0 !== this.aClockwise || s || (r === i ? (r = -i) : (r -= i)); + const a = this.aStartAngle + t * r; + let o = this.aX + this.xRadius * Math.cos(a), + l = this.aY + this.yRadius * Math.sin(a); + if (0 !== this.aRotation) { + const t = Math.cos(this.aRotation), + e = Math.sin(this.aRotation), + n = o - this.aX, + i = l - this.aY; + (o = n * t - i * e + this.aX), (l = n * e + i * t + this.aY); + } + return n.set(o, l); + } + copy(t) { + return ( + super.copy(t), + (this.aX = t.aX), + (this.aY = t.aY), + (this.xRadius = t.xRadius), + (this.yRadius = t.yRadius), + (this.aStartAngle = t.aStartAngle), + (this.aEndAngle = t.aEndAngle), + (this.aClockwise = t.aClockwise), + (this.aRotation = t.aRotation), + this + ); + } + toJSON() { + const t = super.toJSON(); + return ( + (t.aX = this.aX), + (t.aY = this.aY), + (t.xRadius = this.xRadius), + (t.yRadius = this.yRadius), + (t.aStartAngle = this.aStartAngle), + (t.aEndAngle = this.aEndAngle), + (t.aClockwise = this.aClockwise), + (t.aRotation = this.aRotation), + t + ); + } + fromJSON(t) { + return ( + super.fromJSON(t), + (this.aX = t.aX), + (this.aY = t.aY), + (this.xRadius = t.xRadius), + (this.yRadius = t.yRadius), + (this.aStartAngle = t.aStartAngle), + (this.aEndAngle = t.aEndAngle), + (this.aClockwise = t.aClockwise), + (this.aRotation = t.aRotation), + this + ); + } + } + fl.prototype.isEllipseCurve = !0; + class gl extends fl { + constructor(t, e, n, i, r, s) { + super(t, e, n, n, i, r, s), (this.type = 'ArcCurve'); + } + } + function vl() { + let t = 0, + e = 0, + n = 0, + i = 0; + function r(r, s, a, o) { + (t = r), + (e = a), + (n = -3 * r + 3 * s - 2 * a - o), + (i = 2 * r - 2 * s + a + o); + } + return { + initCatmullRom: function (t, e, n, i, s) { + r(e, n, s * (n - t), s * (i - e)); + }, + initNonuniformCatmullRom: function (t, e, n, i, s, a, o) { + let l = (e - t) / s - (n - t) / (s + a) + (n - e) / a, + c = (n - e) / a - (i - e) / (a + o) + (i - n) / o; + (l *= a), (c *= a), r(e, n, l, c); + }, + calc: function (r) { + const s = r * r; + return t + e * r + n * s + i * (s * r); + }, + }; + } + gl.prototype.isArcCurve = !0; + const yl = new Lt(), + xl = new vl(), + _l = new vl(), + wl = new vl(); + class bl extends ml { + constructor(t = [], e = !1, n = 'centripetal', i = 0.5) { + super(), + (this.type = 'CatmullRomCurve3'), + (this.points = t), + (this.closed = e), + (this.curveType = n), + (this.tension = i); + } + getPoint(t, e = new Lt()) { + const n = e, + i = this.points, + r = i.length, + s = (r - (this.closed ? 0 : 1)) * t; + let a, + o, + l = Math.floor(s), + c = s - l; + this.closed + ? (l += l > 0 ? 0 : (Math.floor(Math.abs(l) / r) + 1) * r) + : 0 === c && l === r - 1 && ((l = r - 2), (c = 1)), + this.closed || l > 0 + ? (a = i[(l - 1) % r]) + : (yl.subVectors(i[0], i[1]).add(i[0]), (a = yl)); + const h = i[l % r], + u = i[(l + 1) % r]; + if ( + (this.closed || l + 2 < r + ? (o = i[(l + 2) % r]) + : (yl.subVectors(i[r - 1], i[r - 2]).add(i[r - 1]), (o = yl)), + 'centripetal' === this.curveType || 'chordal' === this.curveType) + ) { + const t = 'chordal' === this.curveType ? 0.5 : 0.25; + let e = Math.pow(a.distanceToSquared(h), t), + n = Math.pow(h.distanceToSquared(u), t), + i = Math.pow(u.distanceToSquared(o), t); + n < 1e-4 && (n = 1), + e < 1e-4 && (e = n), + i < 1e-4 && (i = n), + xl.initNonuniformCatmullRom(a.x, h.x, u.x, o.x, e, n, i), + _l.initNonuniformCatmullRom(a.y, h.y, u.y, o.y, e, n, i), + wl.initNonuniformCatmullRom(a.z, h.z, u.z, o.z, e, n, i); + } else + 'catmullrom' === this.curveType && + (xl.initCatmullRom(a.x, h.x, u.x, o.x, this.tension), + _l.initCatmullRom(a.y, h.y, u.y, o.y, this.tension), + wl.initCatmullRom(a.z, h.z, u.z, o.z, this.tension)); + return n.set(xl.calc(c), _l.calc(c), wl.calc(c)), n; + } + copy(t) { + super.copy(t), (this.points = []); + for (let e = 0, n = t.points.length; e < n; e++) { + const n = t.points[e]; + this.points.push(n.clone()); + } + return ( + (this.closed = t.closed), + (this.curveType = t.curveType), + (this.tension = t.tension), + this + ); + } + toJSON() { + const t = super.toJSON(); + t.points = []; + for (let e = 0, n = this.points.length; e < n; e++) { + const n = this.points[e]; + t.points.push(n.toArray()); + } + return ( + (t.closed = this.closed), + (t.curveType = this.curveType), + (t.tension = this.tension), + t + ); + } + fromJSON(t) { + super.fromJSON(t), (this.points = []); + for (let e = 0, n = t.points.length; e < n; e++) { + const n = t.points[e]; + this.points.push(new Lt().fromArray(n)); + } + return ( + (this.closed = t.closed), + (this.curveType = t.curveType), + (this.tension = t.tension), + this + ); + } + } + function Ml(t, e, n, i, r) { + const s = 0.5 * (i - e), + a = 0.5 * (r - n), + o = t * t; + return ( + (2 * n - 2 * i + s + a) * (t * o) + + (-3 * n + 3 * i - 2 * s - a) * o + + s * t + + n + ); + } + function Sl(t, e, n, i) { + return ( + (function (t, e) { + const n = 1 - t; + return n * n * e; + })(t, e) + + (function (t, e) { + return 2 * (1 - t) * t * e; + })(t, n) + + (function (t, e) { + return t * t * e; + })(t, i) + ); + } + function Tl(t, e, n, i, r) { + return ( + (function (t, e) { + const n = 1 - t; + return n * n * n * e; + })(t, e) + + (function (t, e) { + const n = 1 - t; + return 3 * n * n * t * e; + })(t, n) + + (function (t, e) { + return 3 * (1 - t) * t * t * e; + })(t, i) + + (function (t, e) { + return t * t * t * e; + })(t, r) + ); + } + bl.prototype.isCatmullRomCurve3 = !0; + class El extends ml { + constructor(t = new vt(), e = new vt(), n = new vt(), i = new vt()) { + super(), + (this.type = 'CubicBezierCurve'), + (this.v0 = t), + (this.v1 = e), + (this.v2 = n), + (this.v3 = i); + } + getPoint(t, e = new vt()) { + const n = e, + i = this.v0, + r = this.v1, + s = this.v2, + a = this.v3; + return n.set(Tl(t, i.x, r.x, s.x, a.x), Tl(t, i.y, r.y, s.y, a.y)), n; + } + copy(t) { + return ( + super.copy(t), + this.v0.copy(t.v0), + this.v1.copy(t.v1), + this.v2.copy(t.v2), + this.v3.copy(t.v3), + this + ); + } + toJSON() { + const t = super.toJSON(); + return ( + (t.v0 = this.v0.toArray()), + (t.v1 = this.v1.toArray()), + (t.v2 = this.v2.toArray()), + (t.v3 = this.v3.toArray()), + t + ); + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v0.fromArray(t.v0), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this.v3.fromArray(t.v3), + this + ); + } + } + El.prototype.isCubicBezierCurve = !0; + class Al extends ml { + constructor(t = new Lt(), e = new Lt(), n = new Lt(), i = new Lt()) { + super(), + (this.type = 'CubicBezierCurve3'), + (this.v0 = t), + (this.v1 = e), + (this.v2 = n), + (this.v3 = i); + } + getPoint(t, e = new Lt()) { + const n = e, + i = this.v0, + r = this.v1, + s = this.v2, + a = this.v3; + return ( + n.set( + Tl(t, i.x, r.x, s.x, a.x), + Tl(t, i.y, r.y, s.y, a.y), + Tl(t, i.z, r.z, s.z, a.z) + ), + n + ); + } + copy(t) { + return ( + super.copy(t), + this.v0.copy(t.v0), + this.v1.copy(t.v1), + this.v2.copy(t.v2), + this.v3.copy(t.v3), + this + ); + } + toJSON() { + const t = super.toJSON(); + return ( + (t.v0 = this.v0.toArray()), + (t.v1 = this.v1.toArray()), + (t.v2 = this.v2.toArray()), + (t.v3 = this.v3.toArray()), + t + ); + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v0.fromArray(t.v0), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this.v3.fromArray(t.v3), + this + ); + } + } + Al.prototype.isCubicBezierCurve3 = !0; + class Ll extends ml { + constructor(t = new vt(), e = new vt()) { + super(), (this.type = 'LineCurve'), (this.v1 = t), (this.v2 = e); + } + getPoint(t, e = new vt()) { + const n = e; + return ( + 1 === t + ? n.copy(this.v2) + : (n.copy(this.v2).sub(this.v1), n.multiplyScalar(t).add(this.v1)), + n + ); + } + getPointAt(t, e) { + return this.getPoint(t, e); + } + getTangent(t, e) { + const n = e || new vt(); + return n.copy(this.v2).sub(this.v1).normalize(), n; + } + copy(t) { + return super.copy(t), this.v1.copy(t.v1), this.v2.copy(t.v2), this; + } + toJSON() { + const t = super.toJSON(); + return (t.v1 = this.v1.toArray()), (t.v2 = this.v2.toArray()), t; + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this + ); + } + } + Ll.prototype.isLineCurve = !0; + class Rl extends ml { + constructor(t = new Lt(), e = new Lt()) { + super(), + (this.type = 'LineCurve3'), + (this.isLineCurve3 = !0), + (this.v1 = t), + (this.v2 = e); + } + getPoint(t, e = new Lt()) { + const n = e; + return ( + 1 === t + ? n.copy(this.v2) + : (n.copy(this.v2).sub(this.v1), n.multiplyScalar(t).add(this.v1)), + n + ); + } + getPointAt(t, e) { + return this.getPoint(t, e); + } + copy(t) { + return super.copy(t), this.v1.copy(t.v1), this.v2.copy(t.v2), this; + } + toJSON() { + const t = super.toJSON(); + return (t.v1 = this.v1.toArray()), (t.v2 = this.v2.toArray()), t; + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this + ); + } + } + class Cl extends ml { + constructor(t = new vt(), e = new vt(), n = new vt()) { + super(), + (this.type = 'QuadraticBezierCurve'), + (this.v0 = t), + (this.v1 = e), + (this.v2 = n); + } + getPoint(t, e = new vt()) { + const n = e, + i = this.v0, + r = this.v1, + s = this.v2; + return n.set(Sl(t, i.x, r.x, s.x), Sl(t, i.y, r.y, s.y)), n; + } + copy(t) { + return ( + super.copy(t), + this.v0.copy(t.v0), + this.v1.copy(t.v1), + this.v2.copy(t.v2), + this + ); + } + toJSON() { + const t = super.toJSON(); + return ( + (t.v0 = this.v0.toArray()), + (t.v1 = this.v1.toArray()), + (t.v2 = this.v2.toArray()), + t + ); + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v0.fromArray(t.v0), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this + ); + } + } + Cl.prototype.isQuadraticBezierCurve = !0; + class Pl extends ml { + constructor(t = new Lt(), e = new Lt(), n = new Lt()) { + super(), + (this.type = 'QuadraticBezierCurve3'), + (this.v0 = t), + (this.v1 = e), + (this.v2 = n); + } + getPoint(t, e = new Lt()) { + const n = e, + i = this.v0, + r = this.v1, + s = this.v2; + return ( + n.set(Sl(t, i.x, r.x, s.x), Sl(t, i.y, r.y, s.y), Sl(t, i.z, r.z, s.z)), + n + ); + } + copy(t) { + return ( + super.copy(t), + this.v0.copy(t.v0), + this.v1.copy(t.v1), + this.v2.copy(t.v2), + this + ); + } + toJSON() { + const t = super.toJSON(); + return ( + (t.v0 = this.v0.toArray()), + (t.v1 = this.v1.toArray()), + (t.v2 = this.v2.toArray()), + t + ); + } + fromJSON(t) { + return ( + super.fromJSON(t), + this.v0.fromArray(t.v0), + this.v1.fromArray(t.v1), + this.v2.fromArray(t.v2), + this + ); + } + } + Pl.prototype.isQuadraticBezierCurve3 = !0; + class Dl extends ml { + constructor(t = []) { + super(), (this.type = 'SplineCurve'), (this.points = t); + } + getPoint(t, e = new vt()) { + const n = e, + i = this.points, + r = (i.length - 1) * t, + s = Math.floor(r), + a = r - s, + o = i[0 === s ? s : s - 1], + l = i[s], + c = i[s > i.length - 2 ? i.length - 1 : s + 1], + h = i[s > i.length - 3 ? i.length - 1 : s + 2]; + return n.set(Ml(a, o.x, l.x, c.x, h.x), Ml(a, o.y, l.y, c.y, h.y)), n; + } + copy(t) { + super.copy(t), (this.points = []); + for (let e = 0, n = t.points.length; e < n; e++) { + const n = t.points[e]; + this.points.push(n.clone()); + } + return this; + } + toJSON() { + const t = super.toJSON(); + t.points = []; + for (let e = 0, n = this.points.length; e < n; e++) { + const n = this.points[e]; + t.points.push(n.toArray()); + } + return t; + } + fromJSON(t) { + super.fromJSON(t), (this.points = []); + for (let e = 0, n = t.points.length; e < n; e++) { + const n = t.points[e]; + this.points.push(new vt().fromArray(n)); + } + return this; + } + } + Dl.prototype.isSplineCurve = !0; + var Il = Object.freeze({ + __proto__: null, + ArcCurve: gl, + CatmullRomCurve3: bl, + CubicBezierCurve: El, + CubicBezierCurve3: Al, + EllipseCurve: fl, + LineCurve: Ll, + LineCurve3: Rl, + QuadraticBezierCurve: Cl, + QuadraticBezierCurve3: Pl, + SplineCurve: Dl, + }); + class Nl extends ml { + constructor() { + super(), + (this.type = 'CurvePath'), + (this.curves = []), + (this.autoClose = !1); + } + add(t) { + this.curves.push(t); + } + closePath() { + const t = this.curves[0].getPoint(0), + e = this.curves[this.curves.length - 1].getPoint(1); + t.equals(e) || this.curves.push(new Ll(e, t)); + } + getPoint(t) { + const e = t * this.getLength(), + n = this.getCurveLengths(); + let i = 0; + for (; i < n.length; ) { + if (n[i] >= e) { + const t = n[i] - e, + r = this.curves[i], + s = r.getLength(), + a = 0 === s ? 0 : 1 - t / s; + return r.getPointAt(a); + } + i++; + } + return null; + } + getLength() { + const t = this.getCurveLengths(); + return t[t.length - 1]; + } + updateArcLengths() { + (this.needsUpdate = !0), + (this.cacheLengths = null), + this.getCurveLengths(); + } + getCurveLengths() { + if (this.cacheLengths && this.cacheLengths.length === this.curves.length) + return this.cacheLengths; + const t = []; + let e = 0; + for (let n = 0, i = this.curves.length; n < i; n++) + (e += this.curves[n].getLength()), t.push(e); + return (this.cacheLengths = t), t; + } + getSpacedPoints(t = 40) { + const e = []; + for (let n = 0; n <= t; n++) e.push(this.getPoint(n / t)); + return this.autoClose && e.push(e[0]), e; + } + getPoints(t = 12) { + const e = []; + let n; + for (let i = 0, r = this.curves; i < r.length; i++) { + const s = r[i], + a = + s && s.isEllipseCurve + ? 2 * t + : s && (s.isLineCurve || s.isLineCurve3) + ? 1 + : s && s.isSplineCurve + ? t * s.points.length + : t, + o = s.getPoints(a); + for (let t = 0; t < o.length; t++) { + const i = o[t]; + (n && n.equals(i)) || (e.push(i), (n = i)); + } + } + return ( + this.autoClose && + e.length > 1 && + !e[e.length - 1].equals(e[0]) && + e.push(e[0]), + e + ); + } + copy(t) { + super.copy(t), (this.curves = []); + for (let e = 0, n = t.curves.length; e < n; e++) { + const n = t.curves[e]; + this.curves.push(n.clone()); + } + return (this.autoClose = t.autoClose), this; + } + toJSON() { + const t = super.toJSON(); + (t.autoClose = this.autoClose), (t.curves = []); + for (let e = 0, n = this.curves.length; e < n; e++) { + const n = this.curves[e]; + t.curves.push(n.toJSON()); + } + return t; + } + fromJSON(t) { + super.fromJSON(t), (this.autoClose = t.autoClose), (this.curves = []); + for (let e = 0, n = t.curves.length; e < n; e++) { + const n = t.curves[e]; + this.curves.push(new Il[n.type]().fromJSON(n)); + } + return this; + } + } + class Bl extends Nl { + constructor(t) { + super(), + (this.type = 'Path'), + (this.currentPoint = new vt()), + t && this.setFromPoints(t); + } + setFromPoints(t) { + this.moveTo(t[0].x, t[0].y); + for (let e = 1, n = t.length; e < n; e++) this.lineTo(t[e].x, t[e].y); + return this; + } + moveTo(t, e) { + return this.currentPoint.set(t, e), this; + } + lineTo(t, e) { + const n = new Ll(this.currentPoint.clone(), new vt(t, e)); + return this.curves.push(n), this.currentPoint.set(t, e), this; + } + quadraticCurveTo(t, e, n, i) { + const r = new Cl(this.currentPoint.clone(), new vt(t, e), new vt(n, i)); + return this.curves.push(r), this.currentPoint.set(n, i), this; + } + bezierCurveTo(t, e, n, i, r, s) { + const a = new El( + this.currentPoint.clone(), + new vt(t, e), + new vt(n, i), + new vt(r, s) + ); + return this.curves.push(a), this.currentPoint.set(r, s), this; + } + splineThru(t) { + const e = [this.currentPoint.clone()].concat(t), + n = new Dl(e); + return this.curves.push(n), this.currentPoint.copy(t[t.length - 1]), this; + } + arc(t, e, n, i, r, s) { + const a = this.currentPoint.x, + o = this.currentPoint.y; + return this.absarc(t + a, e + o, n, i, r, s), this; + } + absarc(t, e, n, i, r, s) { + return this.absellipse(t, e, n, n, i, r, s), this; + } + ellipse(t, e, n, i, r, s, a, o) { + const l = this.currentPoint.x, + c = this.currentPoint.y; + return this.absellipse(t + l, e + c, n, i, r, s, a, o), this; + } + absellipse(t, e, n, i, r, s, a, o) { + const l = new fl(t, e, n, i, r, s, a, o); + if (this.curves.length > 0) { + const t = l.getPoint(0); + t.equals(this.currentPoint) || this.lineTo(t.x, t.y); + } + this.curves.push(l); + const c = l.getPoint(1); + return this.currentPoint.copy(c), this; + } + copy(t) { + return super.copy(t), this.currentPoint.copy(t.currentPoint), this; + } + toJSON() { + const t = super.toJSON(); + return (t.currentPoint = this.currentPoint.toArray()), t; + } + fromJSON(t) { + return ( + super.fromJSON(t), this.currentPoint.fromArray(t.currentPoint), this + ); + } + } + class zl extends Bl { + constructor(t) { + super(t), (this.uuid = ct()), (this.type = 'Shape'), (this.holes = []); + } + getPointsHoles(t) { + const e = []; + for (let n = 0, i = this.holes.length; n < i; n++) + e[n] = this.holes[n].getPoints(t); + return e; + } + extractPoints(t) { + return { shape: this.getPoints(t), holes: this.getPointsHoles(t) }; + } + copy(t) { + super.copy(t), (this.holes = []); + for (let e = 0, n = t.holes.length; e < n; e++) { + const n = t.holes[e]; + this.holes.push(n.clone()); + } + return this; + } + toJSON() { + const t = super.toJSON(); + (t.uuid = this.uuid), (t.holes = []); + for (let e = 0, n = this.holes.length; e < n; e++) { + const n = this.holes[e]; + t.holes.push(n.toJSON()); + } + return t; + } + fromJSON(t) { + super.fromJSON(t), (this.uuid = t.uuid), (this.holes = []); + for (let e = 0, n = t.holes.length; e < n; e++) { + const n = t.holes[e]; + this.holes.push(new Bl().fromJSON(n)); + } + return this; + } + } + class Fl extends Ce { + constructor(t, e = 1) { + super(), + (this.type = 'Light'), + (this.color = new tn(t)), + (this.intensity = e); + } + dispose() {} + copy(t) { + return ( + super.copy(t), + this.color.copy(t.color), + (this.intensity = t.intensity), + this + ); + } + toJSON(t) { + const e = super.toJSON(t); + return ( + (e.object.color = this.color.getHex()), + (e.object.intensity = this.intensity), + void 0 !== this.groundColor && + (e.object.groundColor = this.groundColor.getHex()), + void 0 !== this.distance && (e.object.distance = this.distance), + void 0 !== this.angle && (e.object.angle = this.angle), + void 0 !== this.decay && (e.object.decay = this.decay), + void 0 !== this.penumbra && (e.object.penumbra = this.penumbra), + void 0 !== this.shadow && (e.object.shadow = this.shadow.toJSON()), + e + ); + } + } + Fl.prototype.isLight = !0; + class Ol extends Fl { + constructor(t, e, n) { + super(t, n), + (this.type = 'HemisphereLight'), + this.position.copy(Ce.DefaultUp), + this.updateMatrix(), + (this.groundColor = new tn(e)); + } + copy(t) { + return ( + Fl.prototype.copy.call(this, t), + this.groundColor.copy(t.groundColor), + this + ); + } + } + Ol.prototype.isHemisphereLight = !0; + const Hl = new se(), + Gl = new Lt(), + Ul = new Lt(); + class kl { + constructor(t) { + (this.camera = t), + (this.bias = 0), + (this.normalBias = 0), + (this.radius = 1), + (this.mapSize = new vt(512, 512)), + (this.map = null), + (this.mapPass = null), + (this.matrix = new se()), + (this.autoUpdate = !0), + (this.needsUpdate = !1), + (this._frustum = new ai()), + (this._frameExtents = new vt(1, 1)), + (this._viewportCount = 1), + (this._viewports = [new St(0, 0, 1, 1)]); + } + getViewportCount() { + return this._viewportCount; + } + getFrustum() { + return this._frustum; + } + updateMatrices(t) { + const e = this.camera, + n = this.matrix; + Gl.setFromMatrixPosition(t.matrixWorld), + e.position.copy(Gl), + Ul.setFromMatrixPosition(t.target.matrixWorld), + e.lookAt(Ul), + e.updateMatrixWorld(), + Hl.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), + this._frustum.setFromProjectionMatrix(Hl), + n.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1), + n.multiply(e.projectionMatrix), + n.multiply(e.matrixWorldInverse); + } + getViewport(t) { + return this._viewports[t]; + } + getFrameExtents() { + return this._frameExtents; + } + dispose() { + this.map && this.map.dispose(), this.mapPass && this.mapPass.dispose(); + } + copy(t) { + return ( + (this.camera = t.camera.clone()), + (this.bias = t.bias), + (this.radius = t.radius), + this.mapSize.copy(t.mapSize), + this + ); + } + clone() { + return new this.constructor().copy(this); + } + toJSON() { + const t = {}; + return ( + 0 !== this.bias && (t.bias = this.bias), + 0 !== this.normalBias && (t.normalBias = this.normalBias), + 1 !== this.radius && (t.radius = this.radius), + (512 === this.mapSize.x && 512 === this.mapSize.y) || + (t.mapSize = this.mapSize.toArray()), + (t.camera = this.camera.toJSON(!1).object), + delete t.camera.matrix, + t + ); + } + } + class Vl extends kl { + constructor() { + super(new Kn(50, 1, 0.5, 500)), (this.focus = 1); + } + updateMatrices(t) { + const e = this.camera, + n = 2 * lt * t.angle * this.focus, + i = this.mapSize.width / this.mapSize.height, + r = t.distance || e.far; + (n === e.fov && i === e.aspect && r === e.far) || + ((e.fov = n), (e.aspect = i), (e.far = r), e.updateProjectionMatrix()), + super.updateMatrices(t); + } + copy(t) { + return super.copy(t), (this.focus = t.focus), this; + } + } + Vl.prototype.isSpotLightShadow = !0; + class Wl extends Fl { + constructor(t, e, n = 0, i = Math.PI / 3, r = 0, s = 1) { + super(t, e), + (this.type = 'SpotLight'), + this.position.copy(Ce.DefaultUp), + this.updateMatrix(), + (this.target = new Ce()), + (this.distance = n), + (this.angle = i), + (this.penumbra = r), + (this.decay = s), + (this.shadow = new Vl()); + } + get power() { + return this.intensity * Math.PI; + } + set power(t) { + this.intensity = t / Math.PI; + } + dispose() { + this.shadow.dispose(); + } + copy(t) { + return ( + super.copy(t), + (this.distance = t.distance), + (this.angle = t.angle), + (this.penumbra = t.penumbra), + (this.decay = t.decay), + (this.target = t.target.clone()), + (this.shadow = t.shadow.clone()), + this + ); + } + } + Wl.prototype.isSpotLight = !0; + const jl = new se(), + ql = new Lt(), + Xl = new Lt(); + class Yl extends kl { + constructor() { + super(new Kn(90, 1, 0.5, 500)), + (this._frameExtents = new vt(4, 2)), + (this._viewportCount = 6), + (this._viewports = [ + new St(2, 1, 1, 1), + new St(0, 1, 1, 1), + new St(3, 1, 1, 1), + new St(1, 1, 1, 1), + new St(3, 0, 1, 1), + new St(1, 0, 1, 1), + ]), + (this._cubeDirections = [ + new Lt(1, 0, 0), + new Lt(-1, 0, 0), + new Lt(0, 0, 1), + new Lt(0, 0, -1), + new Lt(0, 1, 0), + new Lt(0, -1, 0), + ]), + (this._cubeUps = [ + new Lt(0, 1, 0), + new Lt(0, 1, 0), + new Lt(0, 1, 0), + new Lt(0, 1, 0), + new Lt(0, 0, 1), + new Lt(0, 0, -1), + ]); + } + updateMatrices(t, e = 0) { + const n = this.camera, + i = this.matrix, + r = t.distance || n.far; + r !== n.far && ((n.far = r), n.updateProjectionMatrix()), + ql.setFromMatrixPosition(t.matrixWorld), + n.position.copy(ql), + Xl.copy(n.position), + Xl.add(this._cubeDirections[e]), + n.up.copy(this._cubeUps[e]), + n.lookAt(Xl), + n.updateMatrixWorld(), + i.makeTranslation(-ql.x, -ql.y, -ql.z), + jl.multiplyMatrices(n.projectionMatrix, n.matrixWorldInverse), + this._frustum.setFromProjectionMatrix(jl); + } + } + Yl.prototype.isPointLightShadow = !0; + class Zl extends Fl { + constructor(t, e, n = 0, i = 1) { + super(t, e), + (this.type = 'PointLight'), + (this.distance = n), + (this.decay = i), + (this.shadow = new Yl()); + } + get power() { + return 4 * this.intensity * Math.PI; + } + set power(t) { + this.intensity = t / (4 * Math.PI); + } + dispose() { + this.shadow.dispose(); + } + copy(t) { + return ( + super.copy(t), + (this.distance = t.distance), + (this.decay = t.decay), + (this.shadow = t.shadow.clone()), + this + ); + } + } + Zl.prototype.isPointLight = !0; + class Jl extends Qn { + constructor(t = -1, e = 1, n = 1, i = -1, r = 0.1, s = 2e3) { + super(), + (this.type = 'OrthographicCamera'), + (this.zoom = 1), + (this.view = null), + (this.left = t), + (this.right = e), + (this.top = n), + (this.bottom = i), + (this.near = r), + (this.far = s), + this.updateProjectionMatrix(); + } + copy(t, e) { + return ( + super.copy(t, e), + (this.left = t.left), + (this.right = t.right), + (this.top = t.top), + (this.bottom = t.bottom), + (this.near = t.near), + (this.far = t.far), + (this.zoom = t.zoom), + (this.view = null === t.view ? null : Object.assign({}, t.view)), + this + ); + } + setViewOffset(t, e, n, i, r, s) { + null === this.view && + (this.view = { + enabled: !0, + fullWidth: 1, + fullHeight: 1, + offsetX: 0, + offsetY: 0, + width: 1, + height: 1, + }), + (this.view.enabled = !0), + (this.view.fullWidth = t), + (this.view.fullHeight = e), + (this.view.offsetX = n), + (this.view.offsetY = i), + (this.view.width = r), + (this.view.height = s), + this.updateProjectionMatrix(); + } + clearViewOffset() { + null !== this.view && (this.view.enabled = !1), + this.updateProjectionMatrix(); + } + updateProjectionMatrix() { + const t = (this.right - this.left) / (2 * this.zoom), + e = (this.top - this.bottom) / (2 * this.zoom), + n = (this.right + this.left) / 2, + i = (this.top + this.bottom) / 2; + let r = n - t, + s = n + t, + a = i + e, + o = i - e; + if (null !== this.view && this.view.enabled) { + const t = (this.right - this.left) / this.view.fullWidth / this.zoom, + e = (this.top - this.bottom) / this.view.fullHeight / this.zoom; + (r += t * this.view.offsetX), + (s = r + t * this.view.width), + (a -= e * this.view.offsetY), + (o = a - e * this.view.height); + } + this.projectionMatrix.makeOrthographic(r, s, a, o, this.near, this.far), + this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); + } + toJSON(t) { + const e = super.toJSON(t); + return ( + (e.object.zoom = this.zoom), + (e.object.left = this.left), + (e.object.right = this.right), + (e.object.top = this.top), + (e.object.bottom = this.bottom), + (e.object.near = this.near), + (e.object.far = this.far), + null !== this.view && (e.object.view = Object.assign({}, this.view)), + e + ); + } + } + Jl.prototype.isOrthographicCamera = !0; + class Ql extends kl { + constructor() { + super(new Jl(-5, 5, 5, -5, 0.5, 500)); + } + } + Ql.prototype.isDirectionalLightShadow = !0; + class Kl extends Fl { + constructor(t, e) { + super(t, e), + (this.type = 'DirectionalLight'), + this.position.copy(Ce.DefaultUp), + this.updateMatrix(), + (this.target = new Ce()), + (this.shadow = new Ql()); + } + dispose() { + this.shadow.dispose(); + } + copy(t) { + return ( + super.copy(t), + (this.target = t.target.clone()), + (this.shadow = t.shadow.clone()), + this + ); + } + } + Kl.prototype.isDirectionalLight = !0; + class $l extends Fl { + constructor(t, e) { + super(t, e), (this.type = 'AmbientLight'); + } + } + $l.prototype.isAmbientLight = !0; + class tc extends Fl { + constructor(t, e, n = 10, i = 10) { + super(t, e), + (this.type = 'RectAreaLight'), + (this.width = n), + (this.height = i); + } + copy(t) { + return ( + super.copy(t), (this.width = t.width), (this.height = t.height), this + ); + } + toJSON(t) { + const e = super.toJSON(t); + return (e.object.width = this.width), (e.object.height = this.height), e; + } + } + tc.prototype.isRectAreaLight = !0; + class ec { + constructor() { + this.coefficients = []; + for (let t = 0; t < 9; t++) this.coefficients.push(new Lt()); + } + set(t) { + for (let e = 0; e < 9; e++) this.coefficients[e].copy(t[e]); + return this; + } + zero() { + for (let t = 0; t < 9; t++) this.coefficients[t].set(0, 0, 0); + return this; + } + getAt(t, e) { + const n = t.x, + i = t.y, + r = t.z, + s = this.coefficients; + return ( + e.copy(s[0]).multiplyScalar(0.282095), + e.addScaledVector(s[1], 0.488603 * i), + e.addScaledVector(s[2], 0.488603 * r), + e.addScaledVector(s[3], 0.488603 * n), + e.addScaledVector(s[4], n * i * 1.092548), + e.addScaledVector(s[5], i * r * 1.092548), + e.addScaledVector(s[6], 0.315392 * (3 * r * r - 1)), + e.addScaledVector(s[7], n * r * 1.092548), + e.addScaledVector(s[8], 0.546274 * (n * n - i * i)), + e + ); + } + getIrradianceAt(t, e) { + const n = t.x, + i = t.y, + r = t.z, + s = this.coefficients; + return ( + e.copy(s[0]).multiplyScalar(0.886227), + e.addScaledVector(s[1], 1.023328 * i), + e.addScaledVector(s[2], 1.023328 * r), + e.addScaledVector(s[3], 1.023328 * n), + e.addScaledVector(s[4], 0.858086 * n * i), + e.addScaledVector(s[5], 0.858086 * i * r), + e.addScaledVector(s[6], 0.743125 * r * r - 0.247708), + e.addScaledVector(s[7], 0.858086 * n * r), + e.addScaledVector(s[8], 0.429043 * (n * n - i * i)), + e + ); + } + add(t) { + for (let e = 0; e < 9; e++) this.coefficients[e].add(t.coefficients[e]); + return this; + } + addScaledSH(t, e) { + for (let n = 0; n < 9; n++) + this.coefficients[n].addScaledVector(t.coefficients[n], e); + return this; + } + scale(t) { + for (let e = 0; e < 9; e++) this.coefficients[e].multiplyScalar(t); + return this; + } + lerp(t, e) { + for (let n = 0; n < 9; n++) + this.coefficients[n].lerp(t.coefficients[n], e); + return this; + } + equals(t) { + for (let e = 0; e < 9; e++) + if (!this.coefficients[e].equals(t.coefficients[e])) return !1; + return !0; + } + copy(t) { + return this.set(t.coefficients); + } + clone() { + return new this.constructor().copy(this); + } + fromArray(t, e = 0) { + const n = this.coefficients; + for (let i = 0; i < 9; i++) n[i].fromArray(t, e + 3 * i); + return this; + } + toArray(t = [], e = 0) { + const n = this.coefficients; + for (let i = 0; i < 9; i++) n[i].toArray(t, e + 3 * i); + return t; + } + static getBasisAt(t, e) { + const n = t.x, + i = t.y, + r = t.z; + (e[0] = 0.282095), + (e[1] = 0.488603 * i), + (e[2] = 0.488603 * r), + (e[3] = 0.488603 * n), + (e[4] = 1.092548 * n * i), + (e[5] = 1.092548 * i * r), + (e[6] = 0.315392 * (3 * r * r - 1)), + (e[7] = 1.092548 * n * r), + (e[8] = 0.546274 * (n * n - i * i)); + } + } + ec.prototype.isSphericalHarmonics3 = !0; + class nc extends Fl { + constructor(t = new ec(), e = 1) { + super(void 0, e), (this.sh = t); + } + copy(t) { + return super.copy(t), this.sh.copy(t.sh), this; + } + fromJSON(t) { + return (this.intensity = t.intensity), this.sh.fromArray(t.sh), this; + } + toJSON(t) { + const e = super.toJSON(t); + return (e.object.sh = this.sh.toArray()), e; + } + } + nc.prototype.isLightProbe = !0; + class ic extends ol { + constructor(t) { + super(t), (this.textures = {}); + } + load(t, e, n, i) { + const r = this, + s = new cl(r.manager); + s.setPath(r.path), + s.setRequestHeader(r.requestHeader), + s.setWithCredentials(r.withCredentials), + s.load( + t, + function (n) { + try { + e(r.parse(JSON.parse(n))); + } catch (e) { + i ? i(e) : console.error(e), r.manager.itemError(t); + } + }, + n, + i + ); + } + parse(t) { + const e = this.textures; + function n(t) { + return ( + void 0 === e[t] && + console.warn('THREE.MaterialLoader: Undefined texture', t), + e[t] + ); + } + const i = new ko[t.type](); + if ( + (void 0 !== t.uuid && (i.uuid = t.uuid), + void 0 !== t.name && (i.name = t.name), + void 0 !== t.color && void 0 !== i.color && i.color.setHex(t.color), + void 0 !== t.roughness && (i.roughness = t.roughness), + void 0 !== t.metalness && (i.metalness = t.metalness), + void 0 !== t.sheen && (i.sheen = new tn().setHex(t.sheen)), + void 0 !== t.emissive && + void 0 !== i.emissive && + i.emissive.setHex(t.emissive), + void 0 !== t.specular && + void 0 !== i.specular && + i.specular.setHex(t.specular), + void 0 !== t.shininess && (i.shininess = t.shininess), + void 0 !== t.clearcoat && (i.clearcoat = t.clearcoat), + void 0 !== t.clearcoatRoughness && + (i.clearcoatRoughness = t.clearcoatRoughness), + void 0 !== t.fog && (i.fog = t.fog), + void 0 !== t.flatShading && (i.flatShading = t.flatShading), + void 0 !== t.blending && (i.blending = t.blending), + void 0 !== t.combine && (i.combine = t.combine), + void 0 !== t.side && (i.side = t.side), + void 0 !== t.shadowSide && (i.shadowSide = t.shadowSide), + void 0 !== t.opacity && (i.opacity = t.opacity), + void 0 !== t.transparent && (i.transparent = t.transparent), + void 0 !== t.alphaTest && (i.alphaTest = t.alphaTest), + void 0 !== t.depthTest && (i.depthTest = t.depthTest), + void 0 !== t.depthWrite && (i.depthWrite = t.depthWrite), + void 0 !== t.colorWrite && (i.colorWrite = t.colorWrite), + void 0 !== t.stencilWrite && (i.stencilWrite = t.stencilWrite), + void 0 !== t.stencilWriteMask && + (i.stencilWriteMask = t.stencilWriteMask), + void 0 !== t.stencilFunc && (i.stencilFunc = t.stencilFunc), + void 0 !== t.stencilRef && (i.stencilRef = t.stencilRef), + void 0 !== t.stencilFuncMask && (i.stencilFuncMask = t.stencilFuncMask), + void 0 !== t.stencilFail && (i.stencilFail = t.stencilFail), + void 0 !== t.stencilZFail && (i.stencilZFail = t.stencilZFail), + void 0 !== t.stencilZPass && (i.stencilZPass = t.stencilZPass), + void 0 !== t.wireframe && (i.wireframe = t.wireframe), + void 0 !== t.wireframeLinewidth && + (i.wireframeLinewidth = t.wireframeLinewidth), + void 0 !== t.wireframeLinecap && + (i.wireframeLinecap = t.wireframeLinecap), + void 0 !== t.wireframeLinejoin && + (i.wireframeLinejoin = t.wireframeLinejoin), + void 0 !== t.rotation && (i.rotation = t.rotation), + 1 !== t.linewidth && (i.linewidth = t.linewidth), + void 0 !== t.dashSize && (i.dashSize = t.dashSize), + void 0 !== t.gapSize && (i.gapSize = t.gapSize), + void 0 !== t.scale && (i.scale = t.scale), + void 0 !== t.polygonOffset && (i.polygonOffset = t.polygonOffset), + void 0 !== t.polygonOffsetFactor && + (i.polygonOffsetFactor = t.polygonOffsetFactor), + void 0 !== t.polygonOffsetUnits && + (i.polygonOffsetUnits = t.polygonOffsetUnits), + void 0 !== t.skinning && (i.skinning = t.skinning), + void 0 !== t.morphTargets && (i.morphTargets = t.morphTargets), + void 0 !== t.morphNormals && (i.morphNormals = t.morphNormals), + void 0 !== t.dithering && (i.dithering = t.dithering), + void 0 !== t.alphaToCoverage && (i.alphaToCoverage = t.alphaToCoverage), + void 0 !== t.premultipliedAlpha && + (i.premultipliedAlpha = t.premultipliedAlpha), + void 0 !== t.vertexTangents && (i.vertexTangents = t.vertexTangents), + void 0 !== t.visible && (i.visible = t.visible), + void 0 !== t.toneMapped && (i.toneMapped = t.toneMapped), + void 0 !== t.userData && (i.userData = t.userData), + void 0 !== t.vertexColors && + ('number' == typeof t.vertexColors + ? (i.vertexColors = t.vertexColors > 0) + : (i.vertexColors = t.vertexColors)), + void 0 !== t.uniforms) + ) + for (const e in t.uniforms) { + const r = t.uniforms[e]; + switch (((i.uniforms[e] = {}), r.type)) { + case 't': + i.uniforms[e].value = n(r.value); + break; + case 'c': + i.uniforms[e].value = new tn().setHex(r.value); + break; + case 'v2': + i.uniforms[e].value = new vt().fromArray(r.value); + break; + case 'v3': + i.uniforms[e].value = new Lt().fromArray(r.value); + break; + case 'v4': + i.uniforms[e].value = new St().fromArray(r.value); + break; + case 'm3': + i.uniforms[e].value = new yt().fromArray(r.value); + break; + case 'm4': + i.uniforms[e].value = new se().fromArray(r.value); + break; + default: + i.uniforms[e].value = r.value; + } + } + if ( + (void 0 !== t.defines && (i.defines = t.defines), + void 0 !== t.vertexShader && (i.vertexShader = t.vertexShader), + void 0 !== t.fragmentShader && (i.fragmentShader = t.fragmentShader), + void 0 !== t.extensions) + ) + for (const e in t.extensions) i.extensions[e] = t.extensions[e]; + if ( + (void 0 !== t.shading && (i.flatShading = 1 === t.shading), + void 0 !== t.size && (i.size = t.size), + void 0 !== t.sizeAttenuation && (i.sizeAttenuation = t.sizeAttenuation), + void 0 !== t.map && (i.map = n(t.map)), + void 0 !== t.matcap && (i.matcap = n(t.matcap)), + void 0 !== t.alphaMap && (i.alphaMap = n(t.alphaMap)), + void 0 !== t.bumpMap && (i.bumpMap = n(t.bumpMap)), + void 0 !== t.bumpScale && (i.bumpScale = t.bumpScale), + void 0 !== t.normalMap && (i.normalMap = n(t.normalMap)), + void 0 !== t.normalMapType && (i.normalMapType = t.normalMapType), + void 0 !== t.normalScale) + ) { + let e = t.normalScale; + !1 === Array.isArray(e) && (e = [e, e]), + (i.normalScale = new vt().fromArray(e)); + } + return ( + void 0 !== t.displacementMap && + (i.displacementMap = n(t.displacementMap)), + void 0 !== t.displacementScale && + (i.displacementScale = t.displacementScale), + void 0 !== t.displacementBias && + (i.displacementBias = t.displacementBias), + void 0 !== t.roughnessMap && (i.roughnessMap = n(t.roughnessMap)), + void 0 !== t.metalnessMap && (i.metalnessMap = n(t.metalnessMap)), + void 0 !== t.emissiveMap && (i.emissiveMap = n(t.emissiveMap)), + void 0 !== t.emissiveIntensity && + (i.emissiveIntensity = t.emissiveIntensity), + void 0 !== t.specularMap && (i.specularMap = n(t.specularMap)), + void 0 !== t.envMap && (i.envMap = n(t.envMap)), + void 0 !== t.envMapIntensity && (i.envMapIntensity = t.envMapIntensity), + void 0 !== t.reflectivity && (i.reflectivity = t.reflectivity), + void 0 !== t.refractionRatio && (i.refractionRatio = t.refractionRatio), + void 0 !== t.lightMap && (i.lightMap = n(t.lightMap)), + void 0 !== t.lightMapIntensity && + (i.lightMapIntensity = t.lightMapIntensity), + void 0 !== t.aoMap && (i.aoMap = n(t.aoMap)), + void 0 !== t.aoMapIntensity && (i.aoMapIntensity = t.aoMapIntensity), + void 0 !== t.gradientMap && (i.gradientMap = n(t.gradientMap)), + void 0 !== t.clearcoatMap && (i.clearcoatMap = n(t.clearcoatMap)), + void 0 !== t.clearcoatRoughnessMap && + (i.clearcoatRoughnessMap = n(t.clearcoatRoughnessMap)), + void 0 !== t.clearcoatNormalMap && + (i.clearcoatNormalMap = n(t.clearcoatNormalMap)), + void 0 !== t.clearcoatNormalScale && + (i.clearcoatNormalScale = new vt().fromArray(t.clearcoatNormalScale)), + void 0 !== t.transmission && (i.transmission = t.transmission), + void 0 !== t.transmissionMap && + (i.transmissionMap = n(t.transmissionMap)), + i + ); + } + setTextures(t) { + return (this.textures = t), this; + } + } + class rc { + static decodeText(t) { + if ('undefined' != typeof TextDecoder) return new TextDecoder().decode(t); + let e = ''; + for (let n = 0, i = t.length; n < i; n++) e += String.fromCharCode(t[n]); + try { + return decodeURIComponent(escape(e)); + } catch (t) { + return e; + } + } + static extractUrlBase(t) { + const e = t.lastIndexOf('/'); + return -1 === e ? './' : t.substr(0, e + 1); + } + } + class sc extends En { + constructor() { + super(), + (this.type = 'InstancedBufferGeometry'), + (this.instanceCount = 1 / 0); + } + copy(t) { + return super.copy(t), (this.instanceCount = t.instanceCount), this; + } + clone() { + return new this.constructor().copy(this); + } + toJSON() { + const t = super.toJSON(this); + return ( + (t.instanceCount = this.instanceCount), + (t.isInstancedBufferGeometry = !0), + t + ); + } + } + sc.prototype.isInstancedBufferGeometry = !0; + class ac extends sn { + constructor(t, e, n, i) { + 'number' == typeof n && + ((i = n), + (n = !1), + console.error( + 'THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.' + )), + super(t, e, n), + (this.meshPerAttribute = i || 1); + } + copy(t) { + return super.copy(t), (this.meshPerAttribute = t.meshPerAttribute), this; + } + toJSON() { + const t = super.toJSON(); + return ( + (t.meshPerAttribute = this.meshPerAttribute), + (t.isInstancedBufferAttribute = !0), + t + ); + } + } + ac.prototype.isInstancedBufferAttribute = !0; + class oc extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = new cl(r.manager); + s.setPath(r.path), + s.setRequestHeader(r.requestHeader), + s.setWithCredentials(r.withCredentials), + s.load( + t, + function (n) { + try { + e(r.parse(JSON.parse(n))); + } catch (e) { + i ? i(e) : console.error(e), r.manager.itemError(t); + } + }, + n, + i + ); + } + parse(t) { + const e = {}, + n = {}; + function i(t, i) { + if (void 0 !== e[i]) return e[i]; + const r = t.interleavedBuffers[i], + s = (function (t, e) { + if (void 0 !== n[e]) return n[e]; + const i = t.arrayBuffers[e], + r = new Uint32Array(i).buffer; + return (n[e] = r), r; + })(t, r.buffer), + a = yn(r.type, s), + o = new Es(a, r.stride); + return (o.uuid = r.uuid), (e[i] = o), o; + } + const r = t.isInstancedBufferGeometry ? new sc() : new En(), + s = t.data.index; + if (void 0 !== s) { + const t = yn(s.type, s.array); + r.setIndex(new sn(t, 1)); + } + const a = t.data.attributes; + for (const e in a) { + const n = a[e]; + let s; + if (n.isInterleavedBufferAttribute) { + const e = i(t.data, n.data); + s = new Ls(e, n.itemSize, n.offset, n.normalized); + } else { + const t = yn(n.type, n.array); + s = new (n.isInstancedBufferAttribute ? ac : sn)( + t, + n.itemSize, + n.normalized + ); + } + void 0 !== n.name && (s.name = n.name), + void 0 !== n.usage && s.setUsage(n.usage), + void 0 !== n.updateRange && + ((s.updateRange.offset = n.updateRange.offset), + (s.updateRange.count = n.updateRange.count)), + r.setAttribute(e, s); + } + const o = t.data.morphAttributes; + if (o) + for (const e in o) { + const n = o[e], + s = []; + for (let e = 0, r = n.length; e < r; e++) { + const r = n[e]; + let a; + if (r.isInterleavedBufferAttribute) { + const e = i(t.data, r.data); + a = new Ls(e, r.itemSize, r.offset, r.normalized); + } else { + const t = yn(r.type, r.array); + a = new sn(t, r.itemSize, r.normalized); + } + void 0 !== r.name && (a.name = r.name), s.push(a); + } + r.morphAttributes[e] = s; + } + t.data.morphTargetsRelative && (r.morphTargetsRelative = !0); + const l = t.data.groups || t.data.drawcalls || t.data.offsets; + if (void 0 !== l) + for (let t = 0, e = l.length; t !== e; ++t) { + const e = l[t]; + r.addGroup(e.start, e.count, e.materialIndex); + } + const c = t.data.boundingSphere; + if (void 0 !== c) { + const t = new Lt(); + void 0 !== c.center && t.fromArray(c.center), + (r.boundingSphere = new Jt(t, c.radius)); + } + return ( + t.name && (r.name = t.name), t.userData && (r.userData = t.userData), r + ); + } + } + const lc = { + UVMapping: i, + CubeReflectionMapping: r, + CubeRefractionMapping: s, + EquirectangularReflectionMapping: a, + EquirectangularRefractionMapping: o, + CubeUVReflectionMapping: l, + CubeUVRefractionMapping: c, + }, + cc = { + RepeatWrapping: h, + ClampToEdgeWrapping: u, + MirroredRepeatWrapping: d, + }, + hc = { + NearestFilter: p, + NearestMipmapNearestFilter: m, + NearestMipmapLinearFilter: f, + LinearFilter: g, + LinearMipmapNearestFilter: v, + LinearMipmapLinearFilter: y, + }; + class uc extends ol { + constructor(t) { + super(t), + 'undefined' == typeof createImageBitmap && + console.warn( + 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' + ), + 'undefined' == typeof fetch && + console.warn('THREE.ImageBitmapLoader: fetch() not supported.'), + (this.options = { premultiplyAlpha: 'none' }); + } + setOptions(t) { + return (this.options = t), this; + } + load(t, e, n, i) { + void 0 === t && (t = ''), + void 0 !== this.path && (t = this.path + t), + (t = this.manager.resolveURL(t)); + const r = this, + s = rl.get(t); + if (void 0 !== s) + return ( + r.manager.itemStart(t), + setTimeout(function () { + e && e(s), r.manager.itemEnd(t); + }, 0), + s + ); + const a = {}; + (a.credentials = + 'anonymous' === this.crossOrigin ? 'same-origin' : 'include'), + (a.headers = this.requestHeader), + fetch(t, a) + .then(function (t) { + return t.blob(); + }) + .then(function (t) { + return createImageBitmap( + t, + Object.assign(r.options, { colorSpaceConversion: 'none' }) + ); + }) + .then(function (n) { + rl.add(t, n), e && e(n), r.manager.itemEnd(t); + }) + .catch(function (e) { + i && i(e), r.manager.itemError(t), r.manager.itemEnd(t); + }), + r.manager.itemStart(t); + } + } + uc.prototype.isImageBitmapLoader = !0; + class dc { + constructor() { + (this.type = 'ShapePath'), + (this.color = new tn()), + (this.subPaths = []), + (this.currentPath = null); + } + moveTo(t, e) { + return ( + (this.currentPath = new Bl()), + this.subPaths.push(this.currentPath), + this.currentPath.moveTo(t, e), + this + ); + } + lineTo(t, e) { + return this.currentPath.lineTo(t, e), this; + } + quadraticCurveTo(t, e, n, i) { + return this.currentPath.quadraticCurveTo(t, e, n, i), this; + } + bezierCurveTo(t, e, n, i, r, s) { + return this.currentPath.bezierCurveTo(t, e, n, i, r, s), this; + } + splineThru(t) { + return this.currentPath.splineThru(t), this; + } + toShapes(t, e) { + function n(t) { + const e = []; + for (let n = 0, i = t.length; n < i; n++) { + const i = t[n], + r = new zl(); + (r.curves = i.curves), e.push(r); + } + return e; + } + function i(t, e) { + const n = e.length; + let i = !1; + for (let r = n - 1, s = 0; s < n; r = s++) { + let n = e[r], + a = e[s], + o = a.x - n.x, + l = a.y - n.y; + if (Math.abs(l) > Number.EPSILON) { + if ( + (l < 0 && ((n = e[s]), (o = -o), (a = e[r]), (l = -l)), + t.y < n.y || t.y > a.y) + ) + continue; + if (t.y === n.y) { + if (t.x === n.x) return !0; + } else { + const e = l * (t.x - n.x) - o * (t.y - n.y); + if (0 === e) return !0; + if (e < 0) continue; + i = !i; + } + } else { + if (t.y !== n.y) continue; + if ((a.x <= t.x && t.x <= n.x) || (n.x <= t.x && t.x <= a.x)) + return !0; + } + } + return i; + } + const r = po.isClockWise, + s = this.subPaths; + if (0 === s.length) return []; + if (!0 === e) return n(s); + let a, o, l; + const c = []; + if (1 === s.length) + return (o = s[0]), (l = new zl()), (l.curves = o.curves), c.push(l), c; + let h = !r(s[0].getPoints()); + h = t ? !h : h; + const u = [], + d = []; + let p, + m, + f = [], + g = 0; + (d[g] = void 0), (f[g] = []); + for (let e = 0, n = s.length; e < n; e++) + (o = s[e]), + (p = o.getPoints()), + (a = r(p)), + (a = t ? !a : a), + a + ? (!h && d[g] && g++, + (d[g] = { s: new zl(), p: p }), + (d[g].s.curves = o.curves), + h && g++, + (f[g] = [])) + : f[g].push({ h: o, p: p[0] }); + if (!d[0]) return n(s); + if (d.length > 1) { + let t = !1; + const e = []; + for (let t = 0, e = d.length; t < e; t++) u[t] = []; + for (let n = 0, r = d.length; n < r; n++) { + const r = f[n]; + for (let s = 0; s < r.length; s++) { + const a = r[s]; + let o = !0; + for (let r = 0; r < d.length; r++) + i(a.p, d[r].p) && + (n !== r && e.push({ froms: n, tos: r, hole: s }), + o ? ((o = !1), u[r].push(a)) : (t = !0)); + o && u[n].push(a); + } + } + e.length > 0 && (t || (f = u)); + } + for (let t = 0, e = d.length; t < e; t++) { + (l = d[t].s), c.push(l), (m = f[t]); + for (let t = 0, e = m.length; t < e; t++) l.holes.push(m[t].h); + } + return c; + } + } + class pc { + constructor(t) { + (this.type = 'Font'), (this.data = t); + } + generateShapes(t, e = 100) { + const n = [], + i = (function (t, e, n) { + const i = Array.from(t), + r = e / n.resolution, + s = + (n.boundingBox.yMax - n.boundingBox.yMin + n.underlineThickness) * + r, + a = []; + let o = 0, + l = 0; + for (let t = 0; t < i.length; t++) { + const e = i[t]; + if ('\n' === e) (o = 0), (l -= s); + else { + const t = mc(e, r, o, l, n); + (o += t.offsetX), a.push(t.path); + } + } + return a; + })(t, e, this.data); + for (let t = 0, e = i.length; t < e; t++) + Array.prototype.push.apply(n, i[t].toShapes()); + return n; + } + } + function mc(t, e, n, i, r) { + const s = r.glyphs[t] || r.glyphs['?']; + if (!s) + return void console.error( + 'THREE.Font: character "' + + t + + '" does not exists in font family ' + + r.familyName + + '.' + ); + const a = new dc(); + let o, l, c, h, u, d, p, m; + if (s.o) { + const t = s._cachedOutline || (s._cachedOutline = s.o.split(' ')); + for (let r = 0, s = t.length; r < s; ) { + switch (t[r++]) { + case 'm': + (o = t[r++] * e + n), (l = t[r++] * e + i), a.moveTo(o, l); + break; + case 'l': + (o = t[r++] * e + n), (l = t[r++] * e + i), a.lineTo(o, l); + break; + case 'q': + (c = t[r++] * e + n), + (h = t[r++] * e + i), + (u = t[r++] * e + n), + (d = t[r++] * e + i), + a.quadraticCurveTo(u, d, c, h); + break; + case 'b': + (c = t[r++] * e + n), + (h = t[r++] * e + i), + (u = t[r++] * e + n), + (d = t[r++] * e + i), + (p = t[r++] * e + n), + (m = t[r++] * e + i), + a.bezierCurveTo(u, d, p, m, c, h); + } + } + } + return { offsetX: s.ha * e, path: a }; + } + pc.prototype.isFont = !0; + let fc; + const gc = { + getContext: function () { + return ( + void 0 === fc && + (fc = new (window.AudioContext || window.webkitAudioContext)()), + fc + ); + }, + setContext: function (t) { + fc = t; + }, + }; + class vc extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = new cl(this.manager); + s.setResponseType('arraybuffer'), + s.setPath(this.path), + s.setRequestHeader(this.requestHeader), + s.setWithCredentials(this.withCredentials), + s.load( + t, + function (n) { + try { + const t = n.slice(0); + gc.getContext().decodeAudioData(t, function (t) { + e(t); + }); + } catch (e) { + i ? i(e) : console.error(e), r.manager.itemError(t); + } + }, + n, + i + ); + } + } + class yc extends nc { + constructor(t, e, n = 1) { + super(void 0, n); + const i = new tn().set(t), + r = new tn().set(e), + s = new Lt(i.r, i.g, i.b), + a = new Lt(r.r, r.g, r.b), + o = Math.sqrt(Math.PI), + l = o * Math.sqrt(0.75); + this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o), + this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l); + } + } + yc.prototype.isHemisphereLightProbe = !0; + class xc extends nc { + constructor(t, e = 1) { + super(void 0, e); + const n = new tn().set(t); + this.sh.coefficients[0] + .set(n.r, n.g, n.b) + .multiplyScalar(2 * Math.sqrt(Math.PI)); + } + } + xc.prototype.isAmbientLightProbe = !0; + const _c = new se(), + wc = new se(); + class bc { + constructor(t = !0) { + (this.autoStart = t), + (this.startTime = 0), + (this.oldTime = 0), + (this.elapsedTime = 0), + (this.running = !1); + } + start() { + (this.startTime = Mc()), + (this.oldTime = this.startTime), + (this.elapsedTime = 0), + (this.running = !0); + } + stop() { + this.getElapsedTime(), (this.running = !1), (this.autoStart = !1); + } + getElapsedTime() { + return this.getDelta(), this.elapsedTime; + } + getDelta() { + let t = 0; + if (this.autoStart && !this.running) return this.start(), 0; + if (this.running) { + const e = Mc(); + (t = (e - this.oldTime) / 1e3), + (this.oldTime = e), + (this.elapsedTime += t); + } + return t; + } + } + function Mc() { + return ('undefined' == typeof performance ? Date : performance).now(); + } + const Sc = new Lt(), + Tc = new At(), + Ec = new Lt(), + Ac = new Lt(); + class Lc extends Ce { + constructor(t) { + super(), + (this.type = 'Audio'), + (this.listener = t), + (this.context = t.context), + (this.gain = this.context.createGain()), + this.gain.connect(t.getInput()), + (this.autoplay = !1), + (this.buffer = null), + (this.detune = 0), + (this.loop = !1), + (this.loopStart = 0), + (this.loopEnd = 0), + (this.offset = 0), + (this.duration = void 0), + (this.playbackRate = 1), + (this.isPlaying = !1), + (this.hasPlaybackControl = !0), + (this.source = null), + (this.sourceType = 'empty'), + (this._startedAt = 0), + (this._progress = 0), + (this._connected = !1), + (this.filters = []); + } + getOutput() { + return this.gain; + } + setNodeSource(t) { + return ( + (this.hasPlaybackControl = !1), + (this.sourceType = 'audioNode'), + (this.source = t), + this.connect(), + this + ); + } + setMediaElementSource(t) { + return ( + (this.hasPlaybackControl = !1), + (this.sourceType = 'mediaNode'), + (this.source = this.context.createMediaElementSource(t)), + this.connect(), + this + ); + } + setMediaStreamSource(t) { + return ( + (this.hasPlaybackControl = !1), + (this.sourceType = 'mediaStreamNode'), + (this.source = this.context.createMediaStreamSource(t)), + this.connect(), + this + ); + } + setBuffer(t) { + return ( + (this.buffer = t), + (this.sourceType = 'buffer'), + this.autoplay && this.play(), + this + ); + } + play(t = 0) { + if (!0 === this.isPlaying) + return void console.warn('THREE.Audio: Audio is already playing.'); + if (!1 === this.hasPlaybackControl) + return void console.warn( + 'THREE.Audio: this Audio has no playback control.' + ); + this._startedAt = this.context.currentTime + t; + const e = this.context.createBufferSource(); + return ( + (e.buffer = this.buffer), + (e.loop = this.loop), + (e.loopStart = this.loopStart), + (e.loopEnd = this.loopEnd), + (e.onended = this.onEnded.bind(this)), + e.start(this._startedAt, this._progress + this.offset, this.duration), + (this.isPlaying = !0), + (this.source = e), + this.setDetune(this.detune), + this.setPlaybackRate(this.playbackRate), + this.connect() + ); + } + pause() { + if (!1 !== this.hasPlaybackControl) + return ( + !0 === this.isPlaying && + ((this._progress += + Math.max(this.context.currentTime - this._startedAt, 0) * + this.playbackRate), + !0 === this.loop && + (this._progress = + this._progress % (this.duration || this.buffer.duration)), + this.source.stop(), + (this.source.onended = null), + (this.isPlaying = !1)), + this + ); + console.warn('THREE.Audio: this Audio has no playback control.'); + } + stop() { + if (!1 !== this.hasPlaybackControl) + return ( + (this._progress = 0), + this.source.stop(), + (this.source.onended = null), + (this.isPlaying = !1), + this + ); + console.warn('THREE.Audio: this Audio has no playback control.'); + } + connect() { + if (this.filters.length > 0) { + this.source.connect(this.filters[0]); + for (let t = 1, e = this.filters.length; t < e; t++) + this.filters[t - 1].connect(this.filters[t]); + this.filters[this.filters.length - 1].connect(this.getOutput()); + } else this.source.connect(this.getOutput()); + return (this._connected = !0), this; + } + disconnect() { + if (this.filters.length > 0) { + this.source.disconnect(this.filters[0]); + for (let t = 1, e = this.filters.length; t < e; t++) + this.filters[t - 1].disconnect(this.filters[t]); + this.filters[this.filters.length - 1].disconnect(this.getOutput()); + } else this.source.disconnect(this.getOutput()); + return (this._connected = !1), this; + } + getFilters() { + return this.filters; + } + setFilters(t) { + return ( + t || (t = []), + !0 === this._connected + ? (this.disconnect(), (this.filters = t.slice()), this.connect()) + : (this.filters = t.slice()), + this + ); + } + setDetune(t) { + if (((this.detune = t), void 0 !== this.source.detune)) + return ( + !0 === this.isPlaying && + this.source.detune.setTargetAtTime( + this.detune, + this.context.currentTime, + 0.01 + ), + this + ); + } + getDetune() { + return this.detune; + } + getFilter() { + return this.getFilters()[0]; + } + setFilter(t) { + return this.setFilters(t ? [t] : []); + } + setPlaybackRate(t) { + if (!1 !== this.hasPlaybackControl) + return ( + (this.playbackRate = t), + !0 === this.isPlaying && + this.source.playbackRate.setTargetAtTime( + this.playbackRate, + this.context.currentTime, + 0.01 + ), + this + ); + console.warn('THREE.Audio: this Audio has no playback control.'); + } + getPlaybackRate() { + return this.playbackRate; + } + onEnded() { + this.isPlaying = !1; + } + getLoop() { + return !1 === this.hasPlaybackControl + ? (console.warn('THREE.Audio: this Audio has no playback control.'), !1) + : this.loop; + } + setLoop(t) { + if (!1 !== this.hasPlaybackControl) + return ( + (this.loop = t), + !0 === this.isPlaying && (this.source.loop = this.loop), + this + ); + console.warn('THREE.Audio: this Audio has no playback control.'); + } + setLoopStart(t) { + return (this.loopStart = t), this; + } + setLoopEnd(t) { + return (this.loopEnd = t), this; + } + getVolume() { + return this.gain.gain.value; + } + setVolume(t) { + return ( + this.gain.gain.setTargetAtTime(t, this.context.currentTime, 0.01), this + ); + } + } + const Rc = new Lt(), + Cc = new At(), + Pc = new Lt(), + Dc = new Lt(); + class Ic { + constructor(t, e = 2048) { + (this.analyser = t.context.createAnalyser()), + (this.analyser.fftSize = e), + (this.data = new Uint8Array(this.analyser.frequencyBinCount)), + t.getOutput().connect(this.analyser); + } + getFrequencyData() { + return this.analyser.getByteFrequencyData(this.data), this.data; + } + getAverageFrequency() { + let t = 0; + const e = this.getFrequencyData(); + for (let n = 0; n < e.length; n++) t += e[n]; + return t / e.length; + } + } + class Nc { + constructor(t, e, n) { + let i, r, s; + switch (((this.binding = t), (this.valueSize = n), e)) { + case 'quaternion': + (i = this._slerp), + (r = this._slerpAdditive), + (s = this._setAdditiveIdentityQuaternion), + (this.buffer = new Float64Array(6 * n)), + (this._workIndex = 5); + break; + case 'string': + case 'bool': + (i = this._select), + (r = this._select), + (s = this._setAdditiveIdentityOther), + (this.buffer = new Array(5 * n)); + break; + default: + (i = this._lerp), + (r = this._lerpAdditive), + (s = this._setAdditiveIdentityNumeric), + (this.buffer = new Float64Array(5 * n)); + } + (this._mixBufferRegion = i), + (this._mixBufferRegionAdditive = r), + (this._setIdentity = s), + (this._origIndex = 3), + (this._addIndex = 4), + (this.cumulativeWeight = 0), + (this.cumulativeWeightAdditive = 0), + (this.useCount = 0), + (this.referenceCount = 0); + } + accumulate(t, e) { + const n = this.buffer, + i = this.valueSize, + r = t * i + i; + let s = this.cumulativeWeight; + if (0 === s) { + for (let t = 0; t !== i; ++t) n[r + t] = n[t]; + s = e; + } else { + s += e; + const t = e / s; + this._mixBufferRegion(n, r, 0, t, i); + } + this.cumulativeWeight = s; + } + accumulateAdditive(t) { + const e = this.buffer, + n = this.valueSize, + i = n * this._addIndex; + 0 === this.cumulativeWeightAdditive && this._setIdentity(), + this._mixBufferRegionAdditive(e, i, 0, t, n), + (this.cumulativeWeightAdditive += t); + } + apply(t) { + const e = this.valueSize, + n = this.buffer, + i = t * e + e, + r = this.cumulativeWeight, + s = this.cumulativeWeightAdditive, + a = this.binding; + if ( + ((this.cumulativeWeight = 0), + (this.cumulativeWeightAdditive = 0), + r < 1) + ) { + const t = e * this._origIndex; + this._mixBufferRegion(n, i, t, 1 - r, e); + } + s > 0 && this._mixBufferRegionAdditive(n, i, this._addIndex * e, 1, e); + for (let t = e, r = e + e; t !== r; ++t) + if (n[t] !== n[t + e]) { + a.setValue(n, i); + break; + } + } + saveOriginalState() { + const t = this.binding, + e = this.buffer, + n = this.valueSize, + i = n * this._origIndex; + t.getValue(e, i); + for (let t = n, r = i; t !== r; ++t) e[t] = e[i + (t % n)]; + this._setIdentity(), + (this.cumulativeWeight = 0), + (this.cumulativeWeightAdditive = 0); + } + restoreOriginalState() { + const t = 3 * this.valueSize; + this.binding.setValue(this.buffer, t); + } + _setAdditiveIdentityNumeric() { + const t = this._addIndex * this.valueSize, + e = t + this.valueSize; + for (let n = t; n < e; n++) this.buffer[n] = 0; + } + _setAdditiveIdentityQuaternion() { + this._setAdditiveIdentityNumeric(), + (this.buffer[this._addIndex * this.valueSize + 3] = 1); + } + _setAdditiveIdentityOther() { + const t = this._origIndex * this.valueSize, + e = this._addIndex * this.valueSize; + for (let n = 0; n < this.valueSize; n++) + this.buffer[e + n] = this.buffer[t + n]; + } + _select(t, e, n, i, r) { + if (i >= 0.5) for (let i = 0; i !== r; ++i) t[e + i] = t[n + i]; + } + _slerp(t, e, n, i) { + At.slerpFlat(t, e, t, e, t, n, i); + } + _slerpAdditive(t, e, n, i, r) { + const s = this._workIndex * r; + At.multiplyQuaternionsFlat(t, s, t, e, t, n), + At.slerpFlat(t, e, t, e, t, s, i); + } + _lerp(t, e, n, i, r) { + const s = 1 - i; + for (let a = 0; a !== r; ++a) { + const r = e + a; + t[r] = t[r] * s + t[n + a] * i; + } + } + _lerpAdditive(t, e, n, i, r) { + for (let s = 0; s !== r; ++s) { + const r = e + s; + t[r] = t[r] + t[n + s] * i; + } + } + } + const Bc = '\\[\\]\\.:\\/', + zc = new RegExp('[\\[\\]\\.:\\/]', 'g'), + Fc = '[^\\[\\]\\.:\\/]', + Oc = '[^' + Bc.replace('\\.', '') + ']', + Hc = /((?:WC+[\/:])*)/.source.replace('WC', Fc), + Gc = /(WCOD+)?/.source.replace('WCOD', Oc), + Uc = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace('WC', Fc), + kc = /\.(WC+)(?:\[(.+)\])?/.source.replace('WC', Fc), + Vc = new RegExp('^' + Hc + Gc + Uc + kc + '$'), + Wc = ['material', 'materials', 'bones']; + class jc { + constructor(t, e, n) { + (this.path = e), + (this.parsedPath = n || jc.parseTrackName(e)), + (this.node = jc.findNode(t, this.parsedPath.nodeName) || t), + (this.rootNode = t), + (this.getValue = this._getValue_unbound), + (this.setValue = this._setValue_unbound); + } + static create(t, e, n) { + return t && t.isAnimationObjectGroup + ? new jc.Composite(t, e, n) + : new jc(t, e, n); + } + static sanitizeNodeName(t) { + return t.replace(/\s/g, '_').replace(zc, ''); + } + static parseTrackName(t) { + const e = Vc.exec(t); + if (!e) throw new Error('PropertyBinding: Cannot parse trackName: ' + t); + const n = { + nodeName: e[2], + objectName: e[3], + objectIndex: e[4], + propertyName: e[5], + propertyIndex: e[6], + }, + i = n.nodeName && n.nodeName.lastIndexOf('.'); + if (void 0 !== i && -1 !== i) { + const t = n.nodeName.substring(i + 1); + -1 !== Wc.indexOf(t) && + ((n.nodeName = n.nodeName.substring(0, i)), (n.objectName = t)); + } + if (null === n.propertyName || 0 === n.propertyName.length) + throw new Error( + 'PropertyBinding: can not parse propertyName from trackName: ' + t + ); + return n; + } + static findNode(t, e) { + if ( + !e || + '' === e || + '.' === e || + -1 === e || + e === t.name || + e === t.uuid + ) + return t; + if (t.skeleton) { + const n = t.skeleton.getBoneByName(e); + if (void 0 !== n) return n; + } + if (t.children) { + const n = function (t) { + for (let i = 0; i < t.length; i++) { + const r = t[i]; + if (r.name === e || r.uuid === e) return r; + const s = n(r.children); + if (s) return s; + } + return null; + }, + i = n(t.children); + if (i) return i; + } + return null; + } + _getValue_unavailable() {} + _setValue_unavailable() {} + _getValue_direct(t, e) { + t[e] = this.node[this.propertyName]; + } + _getValue_array(t, e) { + const n = this.resolvedProperty; + for (let i = 0, r = n.length; i !== r; ++i) t[e++] = n[i]; + } + _getValue_arrayElement(t, e) { + t[e] = this.resolvedProperty[this.propertyIndex]; + } + _getValue_toArray(t, e) { + this.resolvedProperty.toArray(t, e); + } + _setValue_direct(t, e) { + this.targetObject[this.propertyName] = t[e]; + } + _setValue_direct_setNeedsUpdate(t, e) { + (this.targetObject[this.propertyName] = t[e]), + (this.targetObject.needsUpdate = !0); + } + _setValue_direct_setMatrixWorldNeedsUpdate(t, e) { + (this.targetObject[this.propertyName] = t[e]), + (this.targetObject.matrixWorldNeedsUpdate = !0); + } + _setValue_array(t, e) { + const n = this.resolvedProperty; + for (let i = 0, r = n.length; i !== r; ++i) n[i] = t[e++]; + } + _setValue_array_setNeedsUpdate(t, e) { + const n = this.resolvedProperty; + for (let i = 0, r = n.length; i !== r; ++i) n[i] = t[e++]; + this.targetObject.needsUpdate = !0; + } + _setValue_array_setMatrixWorldNeedsUpdate(t, e) { + const n = this.resolvedProperty; + for (let i = 0, r = n.length; i !== r; ++i) n[i] = t[e++]; + this.targetObject.matrixWorldNeedsUpdate = !0; + } + _setValue_arrayElement(t, e) { + this.resolvedProperty[this.propertyIndex] = t[e]; + } + _setValue_arrayElement_setNeedsUpdate(t, e) { + (this.resolvedProperty[this.propertyIndex] = t[e]), + (this.targetObject.needsUpdate = !0); + } + _setValue_arrayElement_setMatrixWorldNeedsUpdate(t, e) { + (this.resolvedProperty[this.propertyIndex] = t[e]), + (this.targetObject.matrixWorldNeedsUpdate = !0); + } + _setValue_fromArray(t, e) { + this.resolvedProperty.fromArray(t, e); + } + _setValue_fromArray_setNeedsUpdate(t, e) { + this.resolvedProperty.fromArray(t, e), + (this.targetObject.needsUpdate = !0); + } + _setValue_fromArray_setMatrixWorldNeedsUpdate(t, e) { + this.resolvedProperty.fromArray(t, e), + (this.targetObject.matrixWorldNeedsUpdate = !0); + } + _getValue_unbound(t, e) { + this.bind(), this.getValue(t, e); + } + _setValue_unbound(t, e) { + this.bind(), this.setValue(t, e); + } + bind() { + let t = this.node; + const e = this.parsedPath, + n = e.objectName, + i = e.propertyName; + let r = e.propertyIndex; + if ( + (t || + ((t = jc.findNode(this.rootNode, e.nodeName) || this.rootNode), + (this.node = t)), + (this.getValue = this._getValue_unavailable), + (this.setValue = this._setValue_unavailable), + !t) + ) + return void console.error( + 'THREE.PropertyBinding: Trying to update node for track: ' + + this.path + + " but it wasn't found." + ); + if (n) { + let i = e.objectIndex; + switch (n) { + case 'materials': + if (!t.material) + return void console.error( + 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', + this + ); + if (!t.material.materials) + return void console.error( + 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', + this + ); + t = t.material.materials; + break; + case 'bones': + if (!t.skeleton) + return void console.error( + 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', + this + ); + t = t.skeleton.bones; + for (let e = 0; e < t.length; e++) + if (t[e].name === i) { + i = e; + break; + } + break; + default: + if (void 0 === t[n]) + return void console.error( + 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', + this + ); + t = t[n]; + } + if (void 0 !== i) { + if (void 0 === t[i]) + return void console.error( + 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', + this, + t + ); + t = t[i]; + } + } + const s = t[i]; + if (void 0 === s) { + const n = e.nodeName; + return void console.error( + 'THREE.PropertyBinding: Trying to update property for track: ' + + n + + '.' + + i + + " but it wasn't found.", + t + ); + } + let a = this.Versioning.None; + (this.targetObject = t), + void 0 !== t.needsUpdate + ? (a = this.Versioning.NeedsUpdate) + : void 0 !== t.matrixWorldNeedsUpdate && + (a = this.Versioning.MatrixWorldNeedsUpdate); + let o = this.BindingType.Direct; + if (void 0 !== r) { + if ('morphTargetInfluences' === i) { + if (!t.geometry) + return void console.error( + 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', + this + ); + if (!t.geometry.isBufferGeometry) + return void console.error( + 'THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.', + this + ); + if (!t.geometry.morphAttributes) + return void console.error( + 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', + this + ); + void 0 !== t.morphTargetDictionary[r] && + (r = t.morphTargetDictionary[r]); + } + (o = this.BindingType.ArrayElement), + (this.resolvedProperty = s), + (this.propertyIndex = r); + } else + void 0 !== s.fromArray && void 0 !== s.toArray + ? ((o = this.BindingType.HasFromToArray), (this.resolvedProperty = s)) + : Array.isArray(s) + ? ((o = this.BindingType.EntireArray), (this.resolvedProperty = s)) + : (this.propertyName = i); + (this.getValue = this.GetterByBindingType[o]), + (this.setValue = this.SetterByBindingTypeAndVersioning[o][a]); + } + unbind() { + (this.node = null), + (this.getValue = this._getValue_unbound), + (this.setValue = this._setValue_unbound); + } + } + (jc.Composite = class { + constructor(t, e, n) { + const i = n || jc.parseTrackName(e); + (this._targetGroup = t), (this._bindings = t.subscribe_(e, i)); + } + getValue(t, e) { + this.bind(); + const n = this._targetGroup.nCachedObjects_, + i = this._bindings[n]; + void 0 !== i && i.getValue(t, e); + } + setValue(t, e) { + const n = this._bindings; + for ( + let i = this._targetGroup.nCachedObjects_, r = n.length; + i !== r; + ++i + ) + n[i].setValue(t, e); + } + bind() { + const t = this._bindings; + for ( + let e = this._targetGroup.nCachedObjects_, n = t.length; + e !== n; + ++e + ) + t[e].bind(); + } + unbind() { + const t = this._bindings; + for ( + let e = this._targetGroup.nCachedObjects_, n = t.length; + e !== n; + ++e + ) + t[e].unbind(); + } + }), + (jc.prototype.BindingType = { + Direct: 0, + EntireArray: 1, + ArrayElement: 2, + HasFromToArray: 3, + }), + (jc.prototype.Versioning = { + None: 0, + NeedsUpdate: 1, + MatrixWorldNeedsUpdate: 2, + }), + (jc.prototype.GetterByBindingType = [ + jc.prototype._getValue_direct, + jc.prototype._getValue_array, + jc.prototype._getValue_arrayElement, + jc.prototype._getValue_toArray, + ]), + (jc.prototype.SetterByBindingTypeAndVersioning = [ + [ + jc.prototype._setValue_direct, + jc.prototype._setValue_direct_setNeedsUpdate, + jc.prototype._setValue_direct_setMatrixWorldNeedsUpdate, + ], + [ + jc.prototype._setValue_array, + jc.prototype._setValue_array_setNeedsUpdate, + jc.prototype._setValue_array_setMatrixWorldNeedsUpdate, + ], + [ + jc.prototype._setValue_arrayElement, + jc.prototype._setValue_arrayElement_setNeedsUpdate, + jc.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate, + ], + [ + jc.prototype._setValue_fromArray, + jc.prototype._setValue_fromArray_setNeedsUpdate, + jc.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate, + ], + ]); + class qc { + constructor() { + (this.uuid = ct()), + (this._objects = Array.prototype.slice.call(arguments)), + (this.nCachedObjects_ = 0); + const t = {}; + this._indicesByUUID = t; + for (let e = 0, n = arguments.length; e !== n; ++e) + t[arguments[e].uuid] = e; + (this._paths = []), + (this._parsedPaths = []), + (this._bindings = []), + (this._bindingsIndicesByPath = {}); + const e = this; + this.stats = { + objects: { + get total() { + return e._objects.length; + }, + get inUse() { + return this.total - e.nCachedObjects_; + }, + }, + get bindingsPerObject() { + return e._bindings.length; + }, + }; + } + add() { + const t = this._objects, + e = this._indicesByUUID, + n = this._paths, + i = this._parsedPaths, + r = this._bindings, + s = r.length; + let a, + o = t.length, + l = this.nCachedObjects_; + for (let c = 0, h = arguments.length; c !== h; ++c) { + const h = arguments[c], + u = h.uuid; + let d = e[u]; + if (void 0 === d) { + (d = o++), (e[u] = d), t.push(h); + for (let t = 0, e = s; t !== e; ++t) r[t].push(new jc(h, n[t], i[t])); + } else if (d < l) { + a = t[d]; + const o = --l, + c = t[o]; + (e[c.uuid] = d), (t[d] = c), (e[u] = o), (t[o] = h); + for (let t = 0, e = s; t !== e; ++t) { + const e = r[t], + s = e[o]; + let a = e[d]; + (e[d] = s), void 0 === a && (a = new jc(h, n[t], i[t])), (e[o] = a); + } + } else + t[d] !== a && + console.error( + 'THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.' + ); + } + this.nCachedObjects_ = l; + } + remove() { + const t = this._objects, + e = this._indicesByUUID, + n = this._bindings, + i = n.length; + let r = this.nCachedObjects_; + for (let s = 0, a = arguments.length; s !== a; ++s) { + const a = arguments[s], + o = a.uuid, + l = e[o]; + if (void 0 !== l && l >= r) { + const s = r++, + c = t[s]; + (e[c.uuid] = l), (t[l] = c), (e[o] = s), (t[s] = a); + for (let t = 0, e = i; t !== e; ++t) { + const e = n[t], + i = e[s], + r = e[l]; + (e[l] = i), (e[s] = r); + } + } + } + this.nCachedObjects_ = r; + } + uncache() { + const t = this._objects, + e = this._indicesByUUID, + n = this._bindings, + i = n.length; + let r = this.nCachedObjects_, + s = t.length; + for (let a = 0, o = arguments.length; a !== o; ++a) { + const o = arguments[a].uuid, + l = e[o]; + if (void 0 !== l) + if ((delete e[o], l < r)) { + const a = --r, + o = t[a], + c = --s, + h = t[c]; + (e[o.uuid] = l), (t[l] = o), (e[h.uuid] = a), (t[a] = h), t.pop(); + for (let t = 0, e = i; t !== e; ++t) { + const e = n[t], + i = e[a], + r = e[c]; + (e[l] = i), (e[a] = r), e.pop(); + } + } else { + const r = --s, + a = t[r]; + r > 0 && (e[a.uuid] = l), (t[l] = a), t.pop(); + for (let t = 0, e = i; t !== e; ++t) { + const e = n[t]; + (e[l] = e[r]), e.pop(); + } + } + } + this.nCachedObjects_ = r; + } + subscribe_(t, e) { + const n = this._bindingsIndicesByPath; + let i = n[t]; + const r = this._bindings; + if (void 0 !== i) return r[i]; + const s = this._paths, + a = this._parsedPaths, + o = this._objects, + l = o.length, + c = this.nCachedObjects_, + h = new Array(l); + (i = r.length), (n[t] = i), s.push(t), a.push(e), r.push(h); + for (let n = c, i = o.length; n !== i; ++n) { + const i = o[n]; + h[n] = new jc(i, t, e); + } + return h; + } + unsubscribe_(t) { + const e = this._bindingsIndicesByPath, + n = e[t]; + if (void 0 !== n) { + const i = this._paths, + r = this._parsedPaths, + s = this._bindings, + a = s.length - 1, + o = s[a]; + (e[t[a]] = n), + (s[n] = o), + s.pop(), + (r[n] = r[a]), + r.pop(), + (i[n] = i[a]), + i.pop(); + } + } + } + qc.prototype.isAnimationObjectGroup = !0; + class Xc { + constructor(t, e, n = null, i = e.blendMode) { + (this._mixer = t), + (this._clip = e), + (this._localRoot = n), + (this.blendMode = i); + const r = e.tracks, + s = r.length, + a = new Array(s), + o = { endingStart: k, endingEnd: k }; + for (let t = 0; t !== s; ++t) { + const e = r[t].createInterpolant(null); + (a[t] = e), (e.settings = o); + } + (this._interpolantSettings = o), + (this._interpolants = a), + (this._propertyBindings = new Array(s)), + (this._cacheIndex = null), + (this._byClipCacheIndex = null), + (this._timeScaleInterpolant = null), + (this._weightInterpolant = null), + (this.loop = 2201), + (this._loopCount = -1), + (this._startTime = null), + (this.time = 0), + (this.timeScale = 1), + (this._effectiveTimeScale = 1), + (this.weight = 1), + (this._effectiveWeight = 1), + (this.repetitions = 1 / 0), + (this.paused = !1), + (this.enabled = !0), + (this.clampWhenFinished = !1), + (this.zeroSlopeAtStart = !0), + (this.zeroSlopeAtEnd = !0); + } + play() { + return this._mixer._activateAction(this), this; + } + stop() { + return this._mixer._deactivateAction(this), this.reset(); + } + reset() { + return ( + (this.paused = !1), + (this.enabled = !0), + (this.time = 0), + (this._loopCount = -1), + (this._startTime = null), + this.stopFading().stopWarping() + ); + } + isRunning() { + return ( + this.enabled && + !this.paused && + 0 !== this.timeScale && + null === this._startTime && + this._mixer._isActiveAction(this) + ); + } + isScheduled() { + return this._mixer._isActiveAction(this); + } + startAt(t) { + return (this._startTime = t), this; + } + setLoop(t, e) { + return (this.loop = t), (this.repetitions = e), this; + } + setEffectiveWeight(t) { + return ( + (this.weight = t), + (this._effectiveWeight = this.enabled ? t : 0), + this.stopFading() + ); + } + getEffectiveWeight() { + return this._effectiveWeight; + } + fadeIn(t) { + return this._scheduleFading(t, 0, 1); + } + fadeOut(t) { + return this._scheduleFading(t, 1, 0); + } + crossFadeFrom(t, e, n) { + if ((t.fadeOut(e), this.fadeIn(e), n)) { + const n = this._clip.duration, + i = t._clip.duration, + r = i / n, + s = n / i; + t.warp(1, r, e), this.warp(s, 1, e); + } + return this; + } + crossFadeTo(t, e, n) { + return t.crossFadeFrom(this, e, n); + } + stopFading() { + const t = this._weightInterpolant; + return ( + null !== t && + ((this._weightInterpolant = null), + this._mixer._takeBackControlInterpolant(t)), + this + ); + } + setEffectiveTimeScale(t) { + return ( + (this.timeScale = t), + (this._effectiveTimeScale = this.paused ? 0 : t), + this.stopWarping() + ); + } + getEffectiveTimeScale() { + return this._effectiveTimeScale; + } + setDuration(t) { + return (this.timeScale = this._clip.duration / t), this.stopWarping(); + } + syncWith(t) { + return ( + (this.time = t.time), (this.timeScale = t.timeScale), this.stopWarping() + ); + } + halt(t) { + return this.warp(this._effectiveTimeScale, 0, t); + } + warp(t, e, n) { + const i = this._mixer, + r = i.time, + s = this.timeScale; + let a = this._timeScaleInterpolant; + null === a && + ((a = i._lendControlInterpolant()), (this._timeScaleInterpolant = a)); + const o = a.parameterPositions, + l = a.sampleValues; + return (o[0] = r), (o[1] = r + n), (l[0] = t / s), (l[1] = e / s), this; + } + stopWarping() { + const t = this._timeScaleInterpolant; + return ( + null !== t && + ((this._timeScaleInterpolant = null), + this._mixer._takeBackControlInterpolant(t)), + this + ); + } + getMixer() { + return this._mixer; + } + getClip() { + return this._clip; + } + getRoot() { + return this._localRoot || this._mixer._root; + } + _update(t, e, n, i) { + if (!this.enabled) return void this._updateWeight(t); + const r = this._startTime; + if (null !== r) { + const i = (t - r) * n; + if (i < 0 || 0 === n) return; + (this._startTime = null), (e = n * i); + } + e *= this._updateTimeScale(t); + const s = this._updateTime(e), + a = this._updateWeight(t); + if (a > 0) { + const t = this._interpolants, + e = this._propertyBindings; + switch (this.blendMode) { + case q: + for (let n = 0, i = t.length; n !== i; ++n) + t[n].evaluate(s), e[n].accumulateAdditive(a); + break; + case j: + default: + for (let n = 0, r = t.length; n !== r; ++n) + t[n].evaluate(s), e[n].accumulate(i, a); + } + } + } + _updateWeight(t) { + let e = 0; + if (this.enabled) { + e = this.weight; + const n = this._weightInterpolant; + if (null !== n) { + const i = n.evaluate(t)[0]; + (e *= i), + t > n.parameterPositions[1] && + (this.stopFading(), 0 === i && (this.enabled = !1)); + } + } + return (this._effectiveWeight = e), e; + } + _updateTimeScale(t) { + let e = 0; + if (!this.paused) { + e = this.timeScale; + const n = this._timeScaleInterpolant; + if (null !== n) { + (e *= n.evaluate(t)[0]), + t > n.parameterPositions[1] && + (this.stopWarping(), + 0 === e ? (this.paused = !0) : (this.timeScale = e)); + } + } + return (this._effectiveTimeScale = e), e; + } + _updateTime(t) { + const e = this._clip.duration, + n = this.loop; + let i = this.time + t, + r = this._loopCount; + const s = 2202 === n; + if (0 === t) return -1 === r ? i : s && 1 == (1 & r) ? e - i : i; + if (2200 === n) { + -1 === r && ((this._loopCount = 0), this._setEndings(!0, !0, !1)); + t: { + if (i >= e) i = e; + else { + if (!(i < 0)) { + this.time = i; + break t; + } + i = 0; + } + this.clampWhenFinished ? (this.paused = !0) : (this.enabled = !1), + (this.time = i), + this._mixer.dispatchEvent({ + type: 'finished', + action: this, + direction: t < 0 ? -1 : 1, + }); + } + } else { + if ( + (-1 === r && + (t >= 0 + ? ((r = 0), this._setEndings(!0, 0 === this.repetitions, s)) + : this._setEndings(0 === this.repetitions, !0, s)), + i >= e || i < 0) + ) { + const n = Math.floor(i / e); + (i -= e * n), (r += Math.abs(n)); + const a = this.repetitions - r; + if (a <= 0) + this.clampWhenFinished ? (this.paused = !0) : (this.enabled = !1), + (i = t > 0 ? e : 0), + (this.time = i), + this._mixer.dispatchEvent({ + type: 'finished', + action: this, + direction: t > 0 ? 1 : -1, + }); + else { + if (1 === a) { + const e = t < 0; + this._setEndings(e, !e, s); + } else this._setEndings(!1, !1, s); + (this._loopCount = r), + (this.time = i), + this._mixer.dispatchEvent({ + type: 'loop', + action: this, + loopDelta: n, + }); + } + } else this.time = i; + if (s && 1 == (1 & r)) return e - i; + } + return i; + } + _setEndings(t, e, n) { + const i = this._interpolantSettings; + n + ? ((i.endingStart = V), (i.endingEnd = V)) + : ((i.endingStart = t ? (this.zeroSlopeAtStart ? V : k) : W), + (i.endingEnd = e ? (this.zeroSlopeAtEnd ? V : k) : W)); + } + _scheduleFading(t, e, n) { + const i = this._mixer, + r = i.time; + let s = this._weightInterpolant; + null === s && + ((s = i._lendControlInterpolant()), (this._weightInterpolant = s)); + const a = s.parameterPositions, + o = s.sampleValues; + return (a[0] = r), (o[0] = e), (a[1] = r + t), (o[1] = n), this; + } + } + class Yc extends rt { + constructor(t) { + super(), + (this._root = t), + this._initMemoryManager(), + (this._accuIndex = 0), + (this.time = 0), + (this.timeScale = 1); + } + _bindAction(t, e) { + const n = t._localRoot || this._root, + i = t._clip.tracks, + r = i.length, + s = t._propertyBindings, + a = t._interpolants, + o = n.uuid, + l = this._bindingsByRootAndName; + let c = l[o]; + void 0 === c && ((c = {}), (l[o] = c)); + for (let t = 0; t !== r; ++t) { + const r = i[t], + l = r.name; + let h = c[l]; + if (void 0 !== h) s[t] = h; + else { + if (((h = s[t]), void 0 !== h)) { + null === h._cacheIndex && + (++h.referenceCount, this._addInactiveBinding(h, o, l)); + continue; + } + const i = e && e._propertyBindings[t].binding.parsedPath; + (h = new Nc(jc.create(n, l, i), r.ValueTypeName, r.getValueSize())), + ++h.referenceCount, + this._addInactiveBinding(h, o, l), + (s[t] = h); + } + a[t].resultBuffer = h.buffer; + } + } + _activateAction(t) { + if (!this._isActiveAction(t)) { + if (null === t._cacheIndex) { + const e = (t._localRoot || this._root).uuid, + n = t._clip.uuid, + i = this._actionsByClip[n]; + this._bindAction(t, i && i.knownActions[0]), + this._addInactiveAction(t, n, e); + } + const e = t._propertyBindings; + for (let t = 0, n = e.length; t !== n; ++t) { + const n = e[t]; + 0 == n.useCount++ && (this._lendBinding(n), n.saveOriginalState()); + } + this._lendAction(t); + } + } + _deactivateAction(t) { + if (this._isActiveAction(t)) { + const e = t._propertyBindings; + for (let t = 0, n = e.length; t !== n; ++t) { + const n = e[t]; + 0 == --n.useCount && + (n.restoreOriginalState(), this._takeBackBinding(n)); + } + this._takeBackAction(t); + } + } + _initMemoryManager() { + (this._actions = []), + (this._nActiveActions = 0), + (this._actionsByClip = {}), + (this._bindings = []), + (this._nActiveBindings = 0), + (this._bindingsByRootAndName = {}), + (this._controlInterpolants = []), + (this._nActiveControlInterpolants = 0); + const t = this; + this.stats = { + actions: { + get total() { + return t._actions.length; + }, + get inUse() { + return t._nActiveActions; + }, + }, + bindings: { + get total() { + return t._bindings.length; + }, + get inUse() { + return t._nActiveBindings; + }, + }, + controlInterpolants: { + get total() { + return t._controlInterpolants.length; + }, + get inUse() { + return t._nActiveControlInterpolants; + }, + }, + }; + } + _isActiveAction(t) { + const e = t._cacheIndex; + return null !== e && e < this._nActiveActions; + } + _addInactiveAction(t, e, n) { + const i = this._actions, + r = this._actionsByClip; + let s = r[e]; + if (void 0 === s) + (s = { knownActions: [t], actionByRoot: {} }), + (t._byClipCacheIndex = 0), + (r[e] = s); + else { + const e = s.knownActions; + (t._byClipCacheIndex = e.length), e.push(t); + } + (t._cacheIndex = i.length), i.push(t), (s.actionByRoot[n] = t); + } + _removeInactiveAction(t) { + const e = this._actions, + n = e[e.length - 1], + i = t._cacheIndex; + (n._cacheIndex = i), (e[i] = n), e.pop(), (t._cacheIndex = null); + const r = t._clip.uuid, + s = this._actionsByClip, + a = s[r], + o = a.knownActions, + l = o[o.length - 1], + c = t._byClipCacheIndex; + (l._byClipCacheIndex = c), + (o[c] = l), + o.pop(), + (t._byClipCacheIndex = null); + delete a.actionByRoot[(t._localRoot || this._root).uuid], + 0 === o.length && delete s[r], + this._removeInactiveBindingsForAction(t); + } + _removeInactiveBindingsForAction(t) { + const e = t._propertyBindings; + for (let t = 0, n = e.length; t !== n; ++t) { + const n = e[t]; + 0 == --n.referenceCount && this._removeInactiveBinding(n); + } + } + _lendAction(t) { + const e = this._actions, + n = t._cacheIndex, + i = this._nActiveActions++, + r = e[i]; + (t._cacheIndex = i), (e[i] = t), (r._cacheIndex = n), (e[n] = r); + } + _takeBackAction(t) { + const e = this._actions, + n = t._cacheIndex, + i = --this._nActiveActions, + r = e[i]; + (t._cacheIndex = i), (e[i] = t), (r._cacheIndex = n), (e[n] = r); + } + _addInactiveBinding(t, e, n) { + const i = this._bindingsByRootAndName, + r = this._bindings; + let s = i[e]; + void 0 === s && ((s = {}), (i[e] = s)), + (s[n] = t), + (t._cacheIndex = r.length), + r.push(t); + } + _removeInactiveBinding(t) { + const e = this._bindings, + n = t.binding, + i = n.rootNode.uuid, + r = n.path, + s = this._bindingsByRootAndName, + a = s[i], + o = e[e.length - 1], + l = t._cacheIndex; + (o._cacheIndex = l), + (e[l] = o), + e.pop(), + delete a[r], + 0 === Object.keys(a).length && delete s[i]; + } + _lendBinding(t) { + const e = this._bindings, + n = t._cacheIndex, + i = this._nActiveBindings++, + r = e[i]; + (t._cacheIndex = i), (e[i] = t), (r._cacheIndex = n), (e[n] = r); + } + _takeBackBinding(t) { + const e = this._bindings, + n = t._cacheIndex, + i = --this._nActiveBindings, + r = e[i]; + (t._cacheIndex = i), (e[i] = t), (r._cacheIndex = n), (e[n] = r); + } + _lendControlInterpolant() { + const t = this._controlInterpolants, + e = this._nActiveControlInterpolants++; + let n = t[e]; + return ( + void 0 === n && + ((n = new qo( + new Float32Array(2), + new Float32Array(2), + 1, + this._controlInterpolantsResultBuffer + )), + (n.__cacheIndex = e), + (t[e] = n)), + n + ); + } + _takeBackControlInterpolant(t) { + const e = this._controlInterpolants, + n = t.__cacheIndex, + i = --this._nActiveControlInterpolants, + r = e[i]; + (t.__cacheIndex = i), (e[i] = t), (r.__cacheIndex = n), (e[n] = r); + } + clipAction(t, e, n) { + const i = e || this._root, + r = i.uuid; + let s = 'string' == typeof t ? nl.findByName(i, t) : t; + const a = null !== s ? s.uuid : t, + o = this._actionsByClip[a]; + let l = null; + if ((void 0 === n && (n = null !== s ? s.blendMode : j), void 0 !== o)) { + const t = o.actionByRoot[r]; + if (void 0 !== t && t.blendMode === n) return t; + (l = o.knownActions[0]), null === s && (s = l._clip); + } + if (null === s) return null; + const c = new Xc(this, s, e, n); + return this._bindAction(c, l), this._addInactiveAction(c, a, r), c; + } + existingAction(t, e) { + const n = e || this._root, + i = n.uuid, + r = 'string' == typeof t ? nl.findByName(n, t) : t, + s = r ? r.uuid : t, + a = this._actionsByClip[s]; + return (void 0 !== a && a.actionByRoot[i]) || null; + } + stopAllAction() { + const t = this._actions; + for (let e = this._nActiveActions - 1; e >= 0; --e) t[e].stop(); + return this; + } + update(t) { + t *= this.timeScale; + const e = this._actions, + n = this._nActiveActions, + i = (this.time += t), + r = Math.sign(t), + s = (this._accuIndex ^= 1); + for (let a = 0; a !== n; ++a) { + e[a]._update(i, t, r, s); + } + const a = this._bindings, + o = this._nActiveBindings; + for (let t = 0; t !== o; ++t) a[t].apply(s); + return this; + } + setTime(t) { + this.time = 0; + for (let t = 0; t < this._actions.length; t++) this._actions[t].time = 0; + return this.update(t); + } + getRoot() { + return this._root; + } + uncacheClip(t) { + const e = this._actions, + n = t.uuid, + i = this._actionsByClip, + r = i[n]; + if (void 0 !== r) { + const t = r.knownActions; + for (let n = 0, i = t.length; n !== i; ++n) { + const i = t[n]; + this._deactivateAction(i); + const r = i._cacheIndex, + s = e[e.length - 1]; + (i._cacheIndex = null), + (i._byClipCacheIndex = null), + (s._cacheIndex = r), + (e[r] = s), + e.pop(), + this._removeInactiveBindingsForAction(i); + } + delete i[n]; + } + } + uncacheRoot(t) { + const e = t.uuid, + n = this._actionsByClip; + for (const t in n) { + const i = n[t].actionByRoot[e]; + void 0 !== i && + (this._deactivateAction(i), this._removeInactiveAction(i)); + } + const i = this._bindingsByRootAndName[e]; + if (void 0 !== i) + for (const t in i) { + const e = i[t]; + e.restoreOriginalState(), this._removeInactiveBinding(e); + } + } + uncacheAction(t, e) { + const n = this.existingAction(t, e); + null !== n && (this._deactivateAction(n), this._removeInactiveAction(n)); + } + } + Yc.prototype._controlInterpolantsResultBuffer = new Float32Array(1); + class Zc { + constructor(t) { + 'string' == typeof t && + (console.warn('THREE.Uniform: Type parameter is no longer needed.'), + (t = arguments[1])), + (this.value = t); + } + clone() { + return new Zc( + void 0 === this.value.clone ? this.value : this.value.clone() + ); + } + } + class Jc extends Es { + constructor(t, e, n = 1) { + super(t, e), (this.meshPerAttribute = n || 1); + } + copy(t) { + return super.copy(t), (this.meshPerAttribute = t.meshPerAttribute), this; + } + clone(t) { + const e = super.clone(t); + return (e.meshPerAttribute = this.meshPerAttribute), e; + } + toJSON(t) { + const e = super.toJSON(t); + return ( + (e.isInstancedInterleavedBuffer = !0), + (e.meshPerAttribute = this.meshPerAttribute), + e + ); + } + } + Jc.prototype.isInstancedInterleavedBuffer = !0; + class Qc { + constructor(t, e, n, i, r) { + (this.buffer = t), + (this.type = e), + (this.itemSize = n), + (this.elementSize = i), + (this.count = r), + (this.version = 0); + } + set needsUpdate(t) { + !0 === t && this.version++; + } + setBuffer(t) { + return (this.buffer = t), this; + } + setType(t, e) { + return (this.type = t), (this.elementSize = e), this; + } + setItemSize(t) { + return (this.itemSize = t), this; + } + setCount(t) { + return (this.count = t), this; + } + } + Qc.prototype.isGLBufferAttribute = !0; + function Kc(t, e) { + return t.distance - e.distance; + } + function $c(t, e, n, i) { + if ((t.layers.test(e.layers) && t.raycast(e, n), !0 === i)) { + const i = t.children; + for (let t = 0, r = i.length; t < r; t++) $c(i[t], e, n, !0); + } + } + const th = new vt(); + class eh { + constructor(t = new vt(1 / 0, 1 / 0), e = new vt(-1 / 0, -1 / 0)) { + (this.min = t), (this.max = e); + } + set(t, e) { + return this.min.copy(t), this.max.copy(e), this; + } + setFromPoints(t) { + this.makeEmpty(); + for (let e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); + return this; + } + setFromCenterAndSize(t, e) { + const n = th.copy(e).multiplyScalar(0.5); + return this.min.copy(t).sub(n), this.max.copy(t).add(n), this; + } + clone() { + return new this.constructor().copy(this); + } + copy(t) { + return this.min.copy(t.min), this.max.copy(t.max), this; + } + makeEmpty() { + return ( + (this.min.x = this.min.y = 1 / 0), + (this.max.x = this.max.y = -1 / 0), + this + ); + } + isEmpty() { + return this.max.x < this.min.x || this.max.y < this.min.y; + } + getCenter(t) { + return ( + void 0 === t && + (console.warn('THREE.Box2: .getCenter() target is now required'), + (t = new vt())), + this.isEmpty() + ? t.set(0, 0) + : t.addVectors(this.min, this.max).multiplyScalar(0.5) + ); + } + getSize(t) { + return ( + void 0 === t && + (console.warn('THREE.Box2: .getSize() target is now required'), + (t = new vt())), + this.isEmpty() ? t.set(0, 0) : t.subVectors(this.max, this.min) + ); + } + expandByPoint(t) { + return this.min.min(t), this.max.max(t), this; + } + expandByVector(t) { + return this.min.sub(t), this.max.add(t), this; + } + expandByScalar(t) { + return this.min.addScalar(-t), this.max.addScalar(t), this; + } + containsPoint(t) { + return !( + t.x < this.min.x || + t.x > this.max.x || + t.y < this.min.y || + t.y > this.max.y + ); + } + containsBox(t) { + return ( + this.min.x <= t.min.x && + t.max.x <= this.max.x && + this.min.y <= t.min.y && + t.max.y <= this.max.y + ); + } + getParameter(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Box2: .getParameter() target is now required'), + (e = new vt())), + e.set( + (t.x - this.min.x) / (this.max.x - this.min.x), + (t.y - this.min.y) / (this.max.y - this.min.y) + ) + ); + } + intersectsBox(t) { + return !( + t.max.x < this.min.x || + t.min.x > this.max.x || + t.max.y < this.min.y || + t.min.y > this.max.y + ); + } + clampPoint(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Box2: .clampPoint() target is now required'), + (e = new vt())), + e.copy(t).clamp(this.min, this.max) + ); + } + distanceToPoint(t) { + return th.copy(t).clamp(this.min, this.max).sub(t).length(); + } + intersect(t) { + return this.min.max(t.min), this.max.min(t.max), this; + } + union(t) { + return this.min.min(t.min), this.max.max(t.max), this; + } + translate(t) { + return this.min.add(t), this.max.add(t), this; + } + equals(t) { + return t.min.equals(this.min) && t.max.equals(this.max); + } + } + eh.prototype.isBox2 = !0; + const nh = new Lt(), + ih = new Lt(); + class rh { + constructor(t = new Lt(), e = new Lt()) { + (this.start = t), (this.end = e); + } + set(t, e) { + return this.start.copy(t), this.end.copy(e), this; + } + copy(t) { + return this.start.copy(t.start), this.end.copy(t.end), this; + } + getCenter(t) { + return ( + void 0 === t && + (console.warn('THREE.Line3: .getCenter() target is now required'), + (t = new Lt())), + t.addVectors(this.start, this.end).multiplyScalar(0.5) + ); + } + delta(t) { + return ( + void 0 === t && + (console.warn('THREE.Line3: .delta() target is now required'), + (t = new Lt())), + t.subVectors(this.end, this.start) + ); + } + distanceSq() { + return this.start.distanceToSquared(this.end); + } + distance() { + return this.start.distanceTo(this.end); + } + at(t, e) { + return ( + void 0 === e && + (console.warn('THREE.Line3: .at() target is now required'), + (e = new Lt())), + this.delta(e).multiplyScalar(t).add(this.start) + ); + } + closestPointToPointParameter(t, e) { + nh.subVectors(t, this.start), ih.subVectors(this.end, this.start); + const n = ih.dot(ih); + let i = ih.dot(nh) / n; + return e && (i = ht(i, 0, 1)), i; + } + closestPointToPoint(t, e, n) { + const i = this.closestPointToPointParameter(t, e); + return ( + void 0 === n && + (console.warn( + 'THREE.Line3: .closestPointToPoint() target is now required' + ), + (n = new Lt())), + this.delta(n).multiplyScalar(i).add(this.start) + ); + } + applyMatrix4(t) { + return this.start.applyMatrix4(t), this.end.applyMatrix4(t), this; + } + equals(t) { + return t.start.equals(this.start) && t.end.equals(this.end); + } + clone() { + return new this.constructor().copy(this); + } + } + class sh extends Ce { + constructor(t) { + super(), + (this.material = t), + (this.render = function () {}), + (this.hasPositions = !1), + (this.hasNormals = !1), + (this.hasColors = !1), + (this.hasUvs = !1), + (this.positionArray = null), + (this.normalArray = null), + (this.colorArray = null), + (this.uvArray = null), + (this.count = 0); + } + } + sh.prototype.isImmediateRenderObject = !0; + const ah = new Lt(); + const oh = new Lt(), + lh = new se(), + ch = new se(); + class hh extends ya { + constructor(t) { + const e = uh(t), + n = new En(), + i = [], + r = [], + s = new tn(0, 0, 1), + a = new tn(0, 1, 0); + for (let t = 0; t < e.length; t++) { + const n = e[t]; + n.parent && + n.parent.isBone && + (i.push(0, 0, 0), + i.push(0, 0, 0), + r.push(s.r, s.g, s.b), + r.push(a.r, a.g, a.b)); + } + n.setAttribute('position', new mn(i, 3)), + n.setAttribute('color', new mn(r, 3)); + super( + n, + new ca({ + vertexColors: !0, + depthTest: !1, + depthWrite: !1, + toneMapped: !1, + transparent: !0, + }) + ), + (this.type = 'SkeletonHelper'), + (this.isSkeletonHelper = !0), + (this.root = t), + (this.bones = e), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1); + } + updateMatrixWorld(t) { + const e = this.bones, + n = this.geometry, + i = n.getAttribute('position'); + ch.copy(this.root.matrixWorld).invert(); + for (let t = 0, n = 0; t < e.length; t++) { + const r = e[t]; + r.parent && + r.parent.isBone && + (lh.multiplyMatrices(ch, r.matrixWorld), + oh.setFromMatrixPosition(lh), + i.setXYZ(n, oh.x, oh.y, oh.z), + lh.multiplyMatrices(ch, r.parent.matrixWorld), + oh.setFromMatrixPosition(lh), + i.setXYZ(n + 1, oh.x, oh.y, oh.z), + (n += 2)); + } + (n.getAttribute('position').needsUpdate = !0), super.updateMatrixWorld(t); + } + } + function uh(t) { + const e = []; + t && t.isBone && e.push(t); + for (let n = 0; n < t.children.length; n++) + e.push.apply(e, uh(t.children[n])); + return e; + } + const dh = new Lt(), + ph = new tn(), + mh = new tn(); + class fh extends ya { + constructor(t = 10, e = 10, n = 4473924, i = 8947848) { + (n = new tn(n)), (i = new tn(i)); + const r = e / 2, + s = t / e, + a = t / 2, + o = [], + l = []; + for (let t = 0, c = 0, h = -a; t <= e; t++, h += s) { + o.push(-a, 0, h, a, 0, h), o.push(h, 0, -a, h, 0, a); + const e = t === r ? n : i; + e.toArray(l, c), + (c += 3), + e.toArray(l, c), + (c += 3), + e.toArray(l, c), + (c += 3), + e.toArray(l, c), + (c += 3); + } + const c = new En(); + c.setAttribute('position', new mn(o, 3)), + c.setAttribute('color', new mn(l, 3)); + super(c, new ca({ vertexColors: !0, toneMapped: !1 })), + (this.type = 'GridHelper'); + } + } + const gh = new Lt(), + vh = new Lt(), + yh = new Lt(); + const xh = new Lt(), + _h = new Qn(); + function wh(t, e, n, i, r, s, a) { + xh.set(r, s, a).unproject(i); + const o = e[t]; + if (void 0 !== o) { + const t = n.getAttribute('position'); + for (let e = 0, n = o.length; e < n; e++) + t.setXYZ(o[e], xh.x, xh.y, xh.z); + } + } + const bh = new Pt(); + class Mh extends ya { + constructor(t, e = 16776960) { + const n = new Uint16Array([ + 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, + 7, + ]), + i = new Float32Array(24), + r = new En(); + r.setIndex(new sn(n, 1)), + r.setAttribute('position', new sn(i, 3)), + super(r, new ca({ color: e, toneMapped: !1 })), + (this.object = t), + (this.type = 'BoxHelper'), + (this.matrixAutoUpdate = !1), + this.update(); + } + update(t) { + if ( + (void 0 !== t && + console.warn('THREE.BoxHelper: .update() has no longer arguments.'), + void 0 !== this.object && bh.setFromObject(this.object), + bh.isEmpty()) + ) + return; + const e = bh.min, + n = bh.max, + i = this.geometry.attributes.position, + r = i.array; + (r[0] = n.x), + (r[1] = n.y), + (r[2] = n.z), + (r[3] = e.x), + (r[4] = n.y), + (r[5] = n.z), + (r[6] = e.x), + (r[7] = e.y), + (r[8] = n.z), + (r[9] = n.x), + (r[10] = e.y), + (r[11] = n.z), + (r[12] = n.x), + (r[13] = n.y), + (r[14] = e.z), + (r[15] = e.x), + (r[16] = n.y), + (r[17] = e.z), + (r[18] = e.x), + (r[19] = e.y), + (r[20] = e.z), + (r[21] = n.x), + (r[22] = e.y), + (r[23] = e.z), + (i.needsUpdate = !0), + this.geometry.computeBoundingSphere(); + } + setFromObject(t) { + return (this.object = t), this.update(), this; + } + copy(t) { + return ya.prototype.copy.call(this, t), (this.object = t.object), this; + } + } + const Sh = new Lt(); + let Th, Eh; + class Ah extends ya { + constructor(t = 1) { + const e = [0, 0, 0, t, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, t], + n = new En(); + n.setAttribute('position', new mn(e, 3)), + n.setAttribute( + 'color', + new mn( + [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1], + 3 + ) + ); + super(n, new ca({ vertexColors: !0, toneMapped: !1 })), + (this.type = 'AxesHelper'); + } + dispose() { + this.geometry.dispose(), this.material.dispose(); + } + } + const Lh = new Float32Array(1), + Rh = new Int32Array(Lh.buffer); + const Ch = Math.pow(2, 8), + Ph = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582], + Dh = 5 + Ph.length, + Ih = 20, + Nh = { [X]: 0, [Y]: 1, [J]: 2, [Q]: 3, [K]: 4, [$]: 5, [Z]: 6 }, + Bh = new en({ side: 1, depthWrite: !1, depthTest: !1 }), + zh = new Wn(new qn(), Bh), + Fh = new Jl(), + { _lodPlanes: Oh, _sizeLods: Hh, _sigmas: Gh } = Yh(), + Uh = new tn(); + let kh = null; + const Vh = (1 + Math.sqrt(5)) / 2, + Wh = 1 / Vh, + jh = [ + new Lt(1, 1, 1), + new Lt(-1, 1, 1), + new Lt(1, 1, -1), + new Lt(-1, 1, -1), + new Lt(0, Vh, Wh), + new Lt(0, Vh, -Wh), + new Lt(Wh, 0, Vh), + new Lt(-Wh, 0, Vh), + new Lt(Vh, Wh, 0), + new Lt(-Vh, Wh, 0), + ]; + function qh(t) { + const e = Math.max(t.r, t.g, t.b), + n = Math.min(Math.max(Math.ceil(Math.log2(e)), -128), 127); + t.multiplyScalar(Math.pow(2, -n)); + return (n + 128) / 255; + } + function Xh(t) { + return ( + void 0 !== t && + t.type === x && + (t.encoding === X || t.encoding === Y || t.encoding === Z) + ); + } + function Yh() { + const t = [], + e = [], + n = []; + let i = 8; + for (let r = 0; r < Dh; r++) { + const s = Math.pow(2, i); + e.push(s); + let a = 1 / s; + r > 4 ? (a = Ph[r - 8 + 4 - 1]) : 0 == r && (a = 0), n.push(a); + const o = 1 / (s - 1), + l = -o / 2, + c = 1 + o / 2, + h = [l, l, c, l, c, c, l, l, c, c, l, c], + u = 6, + d = 6, + p = 3, + m = 2, + f = 1, + g = new Float32Array(p * d * u), + v = new Float32Array(m * d * u), + y = new Float32Array(f * d * u); + for (let t = 0; t < u; t++) { + const e = ((t % 3) * 2) / 3 - 1, + n = t > 2 ? 0 : -1, + i = [ + e, + n, + 0, + e + 2 / 3, + n, + 0, + e + 2 / 3, + n + 1, + 0, + e, + n, + 0, + e + 2 / 3, + n + 1, + 0, + e, + n + 1, + 0, + ]; + g.set(i, p * d * t), v.set(h, m * d * t); + const r = [t, t, t, t, t, t]; + y.set(r, f * d * t); + } + const x = new En(); + x.setAttribute('position', new sn(g, p)), + x.setAttribute('uv', new sn(v, m)), + x.setAttribute('faceIndex', new sn(y, f)), + t.push(x), + i > 4 && i--; + } + return { _lodPlanes: t, _sizeLods: e, _sigmas: n }; + } + function Zh(t) { + const e = new Tt(3 * Ch, 3 * Ch, t); + return ( + (e.texture.mapping = l), + (e.texture.name = 'PMREM.cubeUv'), + (e.scissorTest = !0), + e + ); + } + function Jh(t, e, n, i, r) { + t.viewport.set(e, n, i, r), t.scissor.set(e, n, i, r); + } + function Qh() { + const t = new vt(1, 1); + return new Io({ + name: 'EquirectangularToCubeUV', + uniforms: { + envMap: { value: null }, + texelSize: { value: t }, + inputEncoding: { value: Nh[3e3] }, + outputEncoding: { value: Nh[3e3] }, + }, + vertexShader: $h(), + fragmentShader: `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t${tu()}\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`, + blending: 0, + depthTest: !1, + depthWrite: !1, + }); + } + function Kh() { + return new Io({ + name: 'CubemapToCubeUV', + uniforms: { + envMap: { value: null }, + inputEncoding: { value: Nh[3e3] }, + outputEncoding: { value: Nh[3e3] }, + }, + vertexShader: $h(), + fragmentShader: `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t${tu()}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`, + blending: 0, + depthTest: !1, + depthWrite: !1, + }); + } + function $h() { + return '\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t'; + } + function tu() { + return '\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t'; + } + (ml.create = function (t, e) { + return ( + console.log('THREE.Curve.create() has been deprecated'), + (t.prototype = Object.create(ml.prototype)), + (t.prototype.constructor = t), + (t.prototype.getPoint = e), + t + ); + }), + (Bl.prototype.fromPoints = function (t) { + return ( + console.warn( + 'THREE.Path: .fromPoints() has been renamed to .setFromPoints().' + ), + this.setFromPoints(t) + ); + }), + (fh.prototype.setColors = function () { + console.error( + 'THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.' + ); + }), + (hh.prototype.update = function () { + console.error( + 'THREE.SkeletonHelper: update() no longer needs to be called.' + ); + }), + (ol.prototype.extractUrlBase = function (t) { + return ( + console.warn( + 'THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.' + ), + rc.extractUrlBase(t) + ); + }), + (ol.Handlers = { + add: function () { + console.error( + 'THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.' + ); + }, + get: function () { + console.error( + 'THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.' + ); + }, + }), + (eh.prototype.center = function (t) { + return ( + console.warn('THREE.Box2: .center() has been renamed to .getCenter().'), + this.getCenter(t) + ); + }), + (eh.prototype.empty = function () { + return ( + console.warn('THREE.Box2: .empty() has been renamed to .isEmpty().'), + this.isEmpty() + ); + }), + (eh.prototype.isIntersectionBox = function (t) { + return ( + console.warn( + 'THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().' + ), + this.intersectsBox(t) + ); + }), + (eh.prototype.size = function (t) { + return ( + console.warn('THREE.Box2: .size() has been renamed to .getSize().'), + this.getSize(t) + ); + }), + (Pt.prototype.center = function (t) { + return ( + console.warn('THREE.Box3: .center() has been renamed to .getCenter().'), + this.getCenter(t) + ); + }), + (Pt.prototype.empty = function () { + return ( + console.warn('THREE.Box3: .empty() has been renamed to .isEmpty().'), + this.isEmpty() + ); + }), + (Pt.prototype.isIntersectionBox = function (t) { + return ( + console.warn( + 'THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().' + ), + this.intersectsBox(t) + ); + }), + (Pt.prototype.isIntersectionSphere = function (t) { + return ( + console.warn( + 'THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().' + ), + this.intersectsSphere(t) + ); + }), + (Pt.prototype.size = function (t) { + return ( + console.warn('THREE.Box3: .size() has been renamed to .getSize().'), + this.getSize(t) + ); + }), + (Jt.prototype.empty = function () { + return ( + console.warn('THREE.Sphere: .empty() has been renamed to .isEmpty().'), + this.isEmpty() + ); + }), + (ai.prototype.setFromMatrix = function (t) { + return ( + console.warn( + 'THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().' + ), + this.setFromProjectionMatrix(t) + ); + }), + (rh.prototype.center = function (t) { + return ( + console.warn( + 'THREE.Line3: .center() has been renamed to .getCenter().' + ), + this.getCenter(t) + ); + }), + (yt.prototype.flattenToArrayOffset = function (t, e) { + return ( + console.warn( + 'THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' + ), + this.toArray(t, e) + ); + }), + (yt.prototype.multiplyVector3 = function (t) { + return ( + console.warn( + 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.' + ), + t.applyMatrix3(this) + ); + }), + (yt.prototype.multiplyVector3Array = function () { + console.error('THREE.Matrix3: .multiplyVector3Array() has been removed.'); + }), + (yt.prototype.applyToBufferAttribute = function (t) { + return ( + console.warn( + 'THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.' + ), + t.applyMatrix3(this) + ); + }), + (yt.prototype.applyToVector3Array = function () { + console.error('THREE.Matrix3: .applyToVector3Array() has been removed.'); + }), + (yt.prototype.getInverse = function (t) { + return ( + console.warn( + 'THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' + ), + this.copy(t).invert() + ); + }), + (se.prototype.extractPosition = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().' + ), + this.copyPosition(t) + ); + }), + (se.prototype.flattenToArrayOffset = function (t, e) { + return ( + console.warn( + 'THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' + ), + this.toArray(t, e) + ); + }), + (se.prototype.getPosition = function () { + return ( + console.warn( + 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.' + ), + new Lt().setFromMatrixColumn(this, 3) + ); + }), + (se.prototype.setRotationFromQuaternion = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().' + ), + this.makeRotationFromQuaternion(t) + ); + }), + (se.prototype.multiplyToArray = function () { + console.warn('THREE.Matrix4: .multiplyToArray() has been removed.'); + }), + (se.prototype.multiplyVector3 = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.' + ), + t.applyMatrix4(this) + ); + }), + (se.prototype.multiplyVector4 = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.' + ), + t.applyMatrix4(this) + ); + }), + (se.prototype.multiplyVector3Array = function () { + console.error('THREE.Matrix4: .multiplyVector3Array() has been removed.'); + }), + (se.prototype.rotateAxis = function (t) { + console.warn( + 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.' + ), + t.transformDirection(this); + }), + (se.prototype.crossVector = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.' + ), + t.applyMatrix4(this) + ); + }), + (se.prototype.translate = function () { + console.error('THREE.Matrix4: .translate() has been removed.'); + }), + (se.prototype.rotateX = function () { + console.error('THREE.Matrix4: .rotateX() has been removed.'); + }), + (se.prototype.rotateY = function () { + console.error('THREE.Matrix4: .rotateY() has been removed.'); + }), + (se.prototype.rotateZ = function () { + console.error('THREE.Matrix4: .rotateZ() has been removed.'); + }), + (se.prototype.rotateByAxis = function () { + console.error('THREE.Matrix4: .rotateByAxis() has been removed.'); + }), + (se.prototype.applyToBufferAttribute = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.' + ), + t.applyMatrix4(this) + ); + }), + (se.prototype.applyToVector3Array = function () { + console.error('THREE.Matrix4: .applyToVector3Array() has been removed.'); + }), + (se.prototype.makeFrustum = function (t, e, n, i, r, s) { + return ( + console.warn( + 'THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.' + ), + this.makePerspective(t, e, i, n, r, s) + ); + }), + (se.prototype.getInverse = function (t) { + return ( + console.warn( + 'THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' + ), + this.copy(t).invert() + ); + }), + (Ne.prototype.isIntersectionLine = function (t) { + return ( + console.warn( + 'THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().' + ), + this.intersectsLine(t) + ); + }), + (At.prototype.multiplyVector3 = function (t) { + return ( + console.warn( + 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' + ), + t.applyQuaternion(this) + ); + }), + (At.prototype.inverse = function () { + return ( + console.warn( + 'THREE.Quaternion: .inverse() has been renamed to invert().' + ), + this.invert() + ); + }), + (re.prototype.isIntersectionBox = function (t) { + return ( + console.warn( + 'THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().' + ), + this.intersectsBox(t) + ); + }), + (re.prototype.isIntersectionPlane = function (t) { + return ( + console.warn( + 'THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().' + ), + this.intersectsPlane(t) + ); + }), + (re.prototype.isIntersectionSphere = function (t) { + return ( + console.warn( + 'THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().' + ), + this.intersectsSphere(t) + ); + }), + (je.prototype.area = function () { + return ( + console.warn('THREE.Triangle: .area() has been renamed to .getArea().'), + this.getArea() + ); + }), + (je.prototype.barycoordFromPoint = function (t, e) { + return ( + console.warn( + 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' + ), + this.getBarycoord(t, e) + ); + }), + (je.prototype.midpoint = function (t) { + return ( + console.warn( + 'THREE.Triangle: .midpoint() has been renamed to .getMidpoint().' + ), + this.getMidpoint(t) + ); + }), + (je.prototypenormal = function (t) { + return ( + console.warn( + 'THREE.Triangle: .normal() has been renamed to .getNormal().' + ), + this.getNormal(t) + ); + }), + (je.prototype.plane = function (t) { + return ( + console.warn( + 'THREE.Triangle: .plane() has been renamed to .getPlane().' + ), + this.getPlane(t) + ); + }), + (je.barycoordFromPoint = function (t, e, n, i, r) { + return ( + console.warn( + 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' + ), + je.getBarycoord(t, e, n, i, r) + ); + }), + (je.normal = function (t, e, n, i) { + return ( + console.warn( + 'THREE.Triangle: .normal() has been renamed to .getNormal().' + ), + je.getNormal(t, e, n, i) + ); + }), + (zl.prototype.extractAllPoints = function (t) { + return ( + console.warn( + 'THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.' + ), + this.extractPoints(t) + ); + }), + (zl.prototype.extrude = function (t) { + return ( + console.warn( + 'THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.' + ), + new go(this, t) + ); + }), + (zl.prototype.makeGeometry = function (t) { + return ( + console.warn( + 'THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.' + ), + new Mo(this, t) + ); + }), + (vt.prototype.fromAttribute = function (t, e, n) { + return ( + console.warn( + 'THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().' + ), + this.fromBufferAttribute(t, e, n) + ); + }), + (vt.prototype.distanceToManhattan = function (t) { + return ( + console.warn( + 'THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' + ), + this.manhattanDistanceTo(t) + ); + }), + (vt.prototype.lengthManhattan = function () { + return ( + console.warn( + 'THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().' + ), + this.manhattanLength() + ); + }), + (Lt.prototype.setEulerFromRotationMatrix = function () { + console.error( + 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.' + ); + }), + (Lt.prototype.setEulerFromQuaternion = function () { + console.error( + 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.' + ); + }), + (Lt.prototype.getPositionFromMatrix = function (t) { + return ( + console.warn( + 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().' + ), + this.setFromMatrixPosition(t) + ); + }), + (Lt.prototype.getScaleFromMatrix = function (t) { + return ( + console.warn( + 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().' + ), + this.setFromMatrixScale(t) + ); + }), + (Lt.prototype.getColumnFromMatrix = function (t, e) { + return ( + console.warn( + 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().' + ), + this.setFromMatrixColumn(e, t) + ); + }), + (Lt.prototype.applyProjection = function (t) { + return ( + console.warn( + 'THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.' + ), + this.applyMatrix4(t) + ); + }), + (Lt.prototype.fromAttribute = function (t, e, n) { + return ( + console.warn( + 'THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().' + ), + this.fromBufferAttribute(t, e, n) + ); + }), + (Lt.prototype.distanceToManhattan = function (t) { + return ( + console.warn( + 'THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' + ), + this.manhattanDistanceTo(t) + ); + }), + (Lt.prototype.lengthManhattan = function () { + return ( + console.warn( + 'THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().' + ), + this.manhattanLength() + ); + }), + (St.prototype.fromAttribute = function (t, e, n) { + return ( + console.warn( + 'THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().' + ), + this.fromBufferAttribute(t, e, n) + ); + }), + (St.prototype.lengthManhattan = function () { + return ( + console.warn( + 'THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().' + ), + this.manhattanLength() + ); + }), + (Ce.prototype.getChildByName = function (t) { + return ( + console.warn( + 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' + ), + this.getObjectByName(t) + ); + }), + (Ce.prototype.renderDepth = function () { + console.warn( + 'THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.' + ); + }), + (Ce.prototype.translate = function (t, e) { + return ( + console.warn( + 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' + ), + this.translateOnAxis(e, t) + ); + }), + (Ce.prototype.getWorldRotation = function () { + console.error( + 'THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.' + ); + }), + (Ce.prototype.applyMatrix = function (t) { + return ( + console.warn( + 'THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().' + ), + this.applyMatrix4(t) + ); + }), + Object.defineProperties(Ce.prototype, { + eulerOrder: { + get: function () { + return ( + console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.'), + this.rotation.order + ); + }, + set: function (t) { + console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.'), + (this.rotation.order = t); + }, + }, + useQuaternion: { + get: function () { + console.warn( + 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' + ); + }, + set: function () { + console.warn( + 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' + ); + }, + }, + }), + (Wn.prototype.setDrawMode = function () { + console.error( + 'THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' + ); + }), + Object.defineProperties(Wn.prototype, { + drawMode: { + get: function () { + return ( + console.error( + 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.' + ), + 0 + ); + }, + set: function () { + console.error( + 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' + ); + }, + }, + }), + ($s.prototype.initBones = function () { + console.error('THREE.SkinnedMesh: initBones() has been removed.'); + }), + (Kn.prototype.setLens = function (t, e) { + console.warn( + 'THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.' + ), + void 0 !== e && (this.filmGauge = e), + this.setFocalLength(t); + }), + Object.defineProperties(Fl.prototype, { + onlyShadow: { + set: function () { + console.warn('THREE.Light: .onlyShadow has been removed.'); + }, + }, + shadowCameraFov: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraFov is now .shadow.camera.fov.' + ), + (this.shadow.camera.fov = t); + }, + }, + shadowCameraLeft: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraLeft is now .shadow.camera.left.' + ), + (this.shadow.camera.left = t); + }, + }, + shadowCameraRight: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraRight is now .shadow.camera.right.' + ), + (this.shadow.camera.right = t); + }, + }, + shadowCameraTop: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraTop is now .shadow.camera.top.' + ), + (this.shadow.camera.top = t); + }, + }, + shadowCameraBottom: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.' + ), + (this.shadow.camera.bottom = t); + }, + }, + shadowCameraNear: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraNear is now .shadow.camera.near.' + ), + (this.shadow.camera.near = t); + }, + }, + shadowCameraFar: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowCameraFar is now .shadow.camera.far.' + ), + (this.shadow.camera.far = t); + }, + }, + shadowCameraVisible: { + set: function () { + console.warn( + 'THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.' + ); + }, + }, + shadowBias: { + set: function (t) { + console.warn('THREE.Light: .shadowBias is now .shadow.bias.'), + (this.shadow.bias = t); + }, + }, + shadowDarkness: { + set: function () { + console.warn('THREE.Light: .shadowDarkness has been removed.'); + }, + }, + shadowMapWidth: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.' + ), + (this.shadow.mapSize.width = t); + }, + }, + shadowMapHeight: { + set: function (t) { + console.warn( + 'THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.' + ), + (this.shadow.mapSize.height = t); + }, + }, + }), + Object.defineProperties(sn.prototype, { + length: { + get: function () { + return ( + console.warn( + 'THREE.BufferAttribute: .length has been deprecated. Use .count instead.' + ), + this.array.length + ); + }, + }, + dynamic: { + get: function () { + return ( + console.warn( + 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' + ), + this.usage === nt + ); + }, + set: function () { + console.warn( + 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' + ), + this.setUsage(nt); + }, + }, + }), + (sn.prototype.setDynamic = function (t) { + return ( + console.warn( + 'THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.' + ), + this.setUsage(!0 === t ? nt : et), + this + ); + }), + (sn.prototype.copyIndicesArray = function () { + console.error( + 'THREE.BufferAttribute: .copyIndicesArray() has been removed.' + ); + }), + (sn.prototype.setArray = function () { + console.error( + 'THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' + ); + }), + (En.prototype.addIndex = function (t) { + console.warn( + 'THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().' + ), + this.setIndex(t); + }), + (En.prototype.addAttribute = function (t, e) { + return ( + console.warn( + 'THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().' + ), + (e && e.isBufferAttribute) || (e && e.isInterleavedBufferAttribute) + ? 'index' === t + ? (console.warn( + 'THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.' + ), + this.setIndex(e), + this) + : this.setAttribute(t, e) + : (console.warn( + 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' + ), + this.setAttribute(t, new sn(arguments[1], arguments[2]))) + ); + }), + (En.prototype.addDrawCall = function (t, e, n) { + void 0 !== n && + console.warn( + 'THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.' + ), + console.warn( + 'THREE.BufferGeometry: .addDrawCall() is now .addGroup().' + ), + this.addGroup(t, e); + }), + (En.prototype.clearDrawCalls = function () { + console.warn( + 'THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().' + ), + this.clearGroups(); + }), + (En.prototype.computeOffsets = function () { + console.warn('THREE.BufferGeometry: .computeOffsets() has been removed.'); + }), + (En.prototype.removeAttribute = function (t) { + return ( + console.warn( + 'THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().' + ), + this.deleteAttribute(t) + ); + }), + (En.prototype.applyMatrix = function (t) { + return ( + console.warn( + 'THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().' + ), + this.applyMatrix4(t) + ); + }), + Object.defineProperties(En.prototype, { + drawcalls: { + get: function () { + return ( + console.error( + 'THREE.BufferGeometry: .drawcalls has been renamed to .groups.' + ), + this.groups + ); + }, + }, + offsets: { + get: function () { + return ( + console.warn( + 'THREE.BufferGeometry: .offsets has been renamed to .groups.' + ), + this.groups + ); + }, + }, + }), + (Es.prototype.setDynamic = function (t) { + return ( + console.warn( + 'THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.' + ), + this.setUsage(!0 === t ? nt : et), + this + ); + }), + (Es.prototype.setArray = function () { + console.error( + 'THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' + ); + }), + (go.prototype.getArrays = function () { + console.error('THREE.ExtrudeGeometry: .getArrays() has been removed.'); + }), + (go.prototype.addShapeList = function () { + console.error('THREE.ExtrudeGeometry: .addShapeList() has been removed.'); + }), + (go.prototype.addShape = function () { + console.error('THREE.ExtrudeGeometry: .addShape() has been removed.'); + }), + (Ts.prototype.dispose = function () { + console.error('THREE.Scene: .dispose() has been removed.'); + }), + (Zc.prototype.onUpdate = function () { + return ( + console.warn( + 'THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.' + ), + this + ); + }), + Object.defineProperties(Xe.prototype, { + wrapAround: { + get: function () { + console.warn('THREE.Material: .wrapAround has been removed.'); + }, + set: function () { + console.warn('THREE.Material: .wrapAround has been removed.'); + }, + }, + overdraw: { + get: function () { + console.warn('THREE.Material: .overdraw has been removed.'); + }, + set: function () { + console.warn('THREE.Material: .overdraw has been removed.'); + }, + }, + wrapRGB: { + get: function () { + return ( + console.warn('THREE.Material: .wrapRGB has been removed.'), new tn() + ); + }, + }, + shading: { + get: function () { + console.error( + 'THREE.' + + this.type + + ': .shading has been removed. Use the boolean .flatShading instead.' + ); + }, + set: function (t) { + console.warn( + 'THREE.' + + this.type + + ': .shading has been removed. Use the boolean .flatShading instead.' + ), + (this.flatShading = 1 === t); + }, + }, + stencilMask: { + get: function () { + return ( + console.warn( + 'THREE.' + + this.type + + ': .stencilMask has been removed. Use .stencilFuncMask instead.' + ), + this.stencilFuncMask + ); + }, + set: function (t) { + console.warn( + 'THREE.' + + this.type + + ': .stencilMask has been removed. Use .stencilFuncMask instead.' + ), + (this.stencilFuncMask = t); + }, + }, + }), + Object.defineProperties(Jn.prototype, { + derivatives: { + get: function () { + return ( + console.warn( + 'THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' + ), + this.extensions.derivatives + ); + }, + set: function (t) { + console.warn( + 'THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' + ), + (this.extensions.derivatives = t); + }, + }, + }), + (ws.prototype.clearTarget = function (t, e, n, i) { + console.warn( + 'THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.' + ), + this.setRenderTarget(t), + this.clear(e, n, i); + }), + (ws.prototype.animate = function (t) { + console.warn( + 'THREE.WebGLRenderer: .animate() is now .setAnimationLoop().' + ), + this.setAnimationLoop(t); + }), + (ws.prototype.getCurrentRenderTarget = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().' + ), + this.getRenderTarget() + ); + }), + (ws.prototype.getMaxAnisotropy = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().' + ), + this.capabilities.getMaxAnisotropy() + ); + }), + (ws.prototype.getPrecision = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.' + ), + this.capabilities.precision + ); + }), + (ws.prototype.resetGLState = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .resetGLState() is now .state.reset().' + ), + this.state.reset() + ); + }), + (ws.prototype.supportsFloatTextures = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )." + ), + this.extensions.get('OES_texture_float') + ); + }), + (ws.prototype.supportsHalfFloatTextures = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )." + ), + this.extensions.get('OES_texture_half_float') + ); + }), + (ws.prototype.supportsStandardDerivatives = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )." + ), + this.extensions.get('OES_standard_derivatives') + ); + }), + (ws.prototype.supportsCompressedTextureS3TC = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )." + ), + this.extensions.get('WEBGL_compressed_texture_s3tc') + ); + }), + (ws.prototype.supportsCompressedTexturePVRTC = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )." + ), + this.extensions.get('WEBGL_compressed_texture_pvrtc') + ); + }), + (ws.prototype.supportsBlendMinMax = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )." + ), + this.extensions.get('EXT_blend_minmax') + ); + }), + (ws.prototype.supportsVertexTextures = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.' + ), + this.capabilities.vertexTextures + ); + }), + (ws.prototype.supportsInstancedArrays = function () { + return ( + console.warn( + "THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )." + ), + this.extensions.get('ANGLE_instanced_arrays') + ); + }), + (ws.prototype.enableScissorTest = function (t) { + console.warn( + 'THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().' + ), + this.setScissorTest(t); + }), + (ws.prototype.initMaterial = function () { + console.warn('THREE.WebGLRenderer: .initMaterial() has been removed.'); + }), + (ws.prototype.addPrePlugin = function () { + console.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.'); + }), + (ws.prototype.addPostPlugin = function () { + console.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.'); + }), + (ws.prototype.updateShadowMap = function () { + console.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.'); + }), + (ws.prototype.setFaceCulling = function () { + console.warn('THREE.WebGLRenderer: .setFaceCulling() has been removed.'); + }), + (ws.prototype.allocTextureUnit = function () { + console.warn( + 'THREE.WebGLRenderer: .allocTextureUnit() has been removed.' + ); + }), + (ws.prototype.setTexture = function () { + console.warn('THREE.WebGLRenderer: .setTexture() has been removed.'); + }), + (ws.prototype.setTexture2D = function () { + console.warn('THREE.WebGLRenderer: .setTexture2D() has been removed.'); + }), + (ws.prototype.setTextureCube = function () { + console.warn('THREE.WebGLRenderer: .setTextureCube() has been removed.'); + }), + (ws.prototype.getActiveMipMapLevel = function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().' + ), + this.getActiveMipmapLevel() + ); + }), + Object.defineProperties(ws.prototype, { + shadowMapEnabled: { + get: function () { + return this.shadowMap.enabled; + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.' + ), + (this.shadowMap.enabled = t); + }, + }, + shadowMapType: { + get: function () { + return this.shadowMap.type; + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.' + ), + (this.shadowMap.type = t); + }, + }, + shadowMapCullFace: { + get: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' + ); + }, + }, + context: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.' + ), + this.getContext() + ); + }, + }, + vr: { + get: function () { + return ( + console.warn('THREE.WebGLRenderer: .vr has been renamed to .xr'), + this.xr + ); + }, + }, + gammaInput: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' + ), + !1 + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' + ); + }, + }, + gammaOutput: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' + ), + !1 + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' + ), + (this.outputEncoding = !0 === t ? Y : X); + }, + }, + toneMappingWhitePoint: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' + ), + 1 + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' + ); + }, + }, + }), + Object.defineProperties(us.prototype, { + cullFace: { + get: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' + ); + }, + }, + renderReverseSided: { + get: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' + ); + }, + }, + renderSingleSided: { + get: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' + ); + }, + set: function () { + console.warn( + 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' + ); + }, + }, + }), + Object.defineProperties(Tt.prototype, { + wrapS: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' + ), + this.texture.wrapS + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' + ), + (this.texture.wrapS = t); + }, + }, + wrapT: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' + ), + this.texture.wrapT + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' + ), + (this.texture.wrapT = t); + }, + }, + magFilter: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' + ), + this.texture.magFilter + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' + ), + (this.texture.magFilter = t); + }, + }, + minFilter: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' + ), + this.texture.minFilter + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' + ), + (this.texture.minFilter = t); + }, + }, + anisotropy: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' + ), + this.texture.anisotropy + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' + ), + (this.texture.anisotropy = t); + }, + }, + offset: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' + ), + this.texture.offset + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' + ), + (this.texture.offset = t); + }, + }, + repeat: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' + ), + this.texture.repeat + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' + ), + (this.texture.repeat = t); + }, + }, + format: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .format is now .texture.format.' + ), + this.texture.format + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .format is now .texture.format.' + ), + (this.texture.format = t); + }, + }, + type: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .type is now .texture.type.' + ), + this.texture.type + ); + }, + set: function (t) { + console.warn('THREE.WebGLRenderTarget: .type is now .texture.type.'), + (this.texture.type = t); + }, + }, + generateMipmaps: { + get: function () { + return ( + console.warn( + 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' + ), + this.texture.generateMipmaps + ); + }, + set: function (t) { + console.warn( + 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' + ), + (this.texture.generateMipmaps = t); + }, + }, + }), + (Lc.prototype.load = function (t) { + console.warn( + 'THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.' + ); + const e = this; + return ( + new vc().load(t, function (t) { + e.setBuffer(t); + }), + this + ); + }), + (Ic.prototype.getData = function () { + return ( + console.warn( + 'THREE.AudioAnalyser: .getData() is now .getFrequencyData().' + ), + this.getFrequencyData() + ); + }), + (ti.prototype.updateCubeMap = function (t, e) { + return ( + console.warn('THREE.CubeCamera: .updateCubeMap() is now .update().'), + this.update(t, e) + ); + }), + (ti.prototype.clear = function (t, e, n, i) { + return ( + console.warn( + 'THREE.CubeCamera: .clear() is now .renderTarget.clear().' + ), + this.renderTarget.clear(t, e, n, i) + ); + }), + (_t.crossOrigin = void 0), + (_t.loadTexture = function (t, e, n, i) { + console.warn( + 'THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.' + ); + const r = new pl(); + r.setCrossOrigin(this.crossOrigin); + const s = r.load(t, n, void 0, i); + return e && (s.mapping = e), s; + }), + (_t.loadTextureCube = function (t, e, n, i) { + console.warn( + 'THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.' + ); + const r = new ul(); + r.setCrossOrigin(this.crossOrigin); + const s = r.load(t, n, void 0, i); + return e && (s.mapping = e), s; + }), + (_t.loadCompressedTexture = function () { + console.error( + 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' + ); + }), + (_t.loadCompressedTextureCube = function () { + console.error( + 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' + ); + }); + const eu = { + createMultiMaterialObject: function () { + console.error( + 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' + ); + }, + detach: function () { + console.error( + 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' + ); + }, + attach: function () { + console.error( + 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' + ); + }, + }; + 'undefined' != typeof __THREE_DEVTOOLS__ && + __THREE_DEVTOOLS__.dispatchEvent( + new CustomEvent('register', { detail: { revision: e } }) + ), + 'undefined' != typeof window && + (window.__THREE__ + ? console.warn( + 'WARNING: Multiple instances of Three.js being imported.' + ) + : (window.__THREE__ = e)), + (t.ACESFilmicToneMapping = 4), + (t.AddEquation = n), + (t.AddOperation = 2), + (t.AdditiveAnimationBlendMode = q), + (t.AdditiveBlending = 2), + (t.AlphaFormat = 1021), + (t.AlwaysDepth = 1), + (t.AlwaysStencilFunc = 519), + (t.AmbientLight = $l), + (t.AmbientLightProbe = xc), + (t.AnimationClip = nl), + (t.AnimationLoader = class extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = new cl(this.manager); + s.setPath(this.path), + s.setRequestHeader(this.requestHeader), + s.setWithCredentials(this.withCredentials), + s.load( + t, + function (n) { + try { + e(r.parse(JSON.parse(n))); + } catch (e) { + i ? i(e) : console.error(e), r.manager.itemError(t); + } + }, + n, + i + ); + } + parse(t) { + const e = []; + for (let n = 0; n < t.length; n++) { + const i = nl.parse(t[n]); + e.push(i); + } + return e; + } + }), + (t.AnimationMixer = Yc), + (t.AnimationObjectGroup = qc), + (t.AnimationUtils = Vo), + (t.ArcCurve = gl), + (t.ArrayCamera = fs), + (t.ArrowHelper = class extends Ce { + constructor( + t = new Lt(0, 0, 1), + e = new Lt(0, 0, 0), + n = 1, + i = 16776960, + r = 0.2 * n, + s = 0.2 * r + ) { + super(), + (this.type = 'ArrowHelper'), + void 0 === Th && + ((Th = new En()), + Th.setAttribute('position', new mn([0, 0, 0, 0, 1, 0], 3)), + (Eh = new Da(0, 0.5, 1, 5, 1)), + Eh.translate(0, -0.5, 0)), + this.position.copy(e), + (this.line = new fa(Th, new ca({ color: i, toneMapped: !1 }))), + (this.line.matrixAutoUpdate = !1), + this.add(this.line), + (this.cone = new Wn(Eh, new en({ color: i, toneMapped: !1 }))), + (this.cone.matrixAutoUpdate = !1), + this.add(this.cone), + this.setDirection(t), + this.setLength(n, r, s); + } + setDirection(t) { + if (t.y > 0.99999) this.quaternion.set(0, 0, 0, 1); + else if (t.y < -0.99999) this.quaternion.set(1, 0, 0, 0); + else { + Sh.set(t.z, 0, -t.x).normalize(); + const e = Math.acos(t.y); + this.quaternion.setFromAxisAngle(Sh, e); + } + } + setLength(t, e = 0.2 * t, n = 0.2 * e) { + this.line.scale.set(1, Math.max(1e-4, t - e), 1), + this.line.updateMatrix(), + this.cone.scale.set(n, e, n), + (this.cone.position.y = t), + this.cone.updateMatrix(); + } + setColor(t) { + this.line.material.color.set(t), this.cone.material.color.set(t); + } + copy(t) { + return ( + super.copy(t, !1), + this.line.copy(t.line), + this.cone.copy(t.cone), + this + ); + } + }), + (t.Audio = Lc), + (t.AudioAnalyser = Ic), + (t.AudioContext = gc), + (t.AudioListener = class extends Ce { + constructor() { + super(), + (this.type = 'AudioListener'), + (this.context = gc.getContext()), + (this.gain = this.context.createGain()), + this.gain.connect(this.context.destination), + (this.filter = null), + (this.timeDelta = 0), + (this._clock = new bc()); + } + getInput() { + return this.gain; + } + removeFilter() { + return ( + null !== this.filter && + (this.gain.disconnect(this.filter), + this.filter.disconnect(this.context.destination), + this.gain.connect(this.context.destination), + (this.filter = null)), + this + ); + } + getFilter() { + return this.filter; + } + setFilter(t) { + return ( + null !== this.filter + ? (this.gain.disconnect(this.filter), + this.filter.disconnect(this.context.destination)) + : this.gain.disconnect(this.context.destination), + (this.filter = t), + this.gain.connect(this.filter), + this.filter.connect(this.context.destination), + this + ); + } + getMasterVolume() { + return this.gain.gain.value; + } + setMasterVolume(t) { + return ( + this.gain.gain.setTargetAtTime(t, this.context.currentTime, 0.01), + this + ); + } + updateMatrixWorld(t) { + super.updateMatrixWorld(t); + const e = this.context.listener, + n = this.up; + if ( + ((this.timeDelta = this._clock.getDelta()), + this.matrixWorld.decompose(Sc, Tc, Ec), + Ac.set(0, 0, -1).applyQuaternion(Tc), + e.positionX) + ) { + const t = this.context.currentTime + this.timeDelta; + e.positionX.linearRampToValueAtTime(Sc.x, t), + e.positionY.linearRampToValueAtTime(Sc.y, t), + e.positionZ.linearRampToValueAtTime(Sc.z, t), + e.forwardX.linearRampToValueAtTime(Ac.x, t), + e.forwardY.linearRampToValueAtTime(Ac.y, t), + e.forwardZ.linearRampToValueAtTime(Ac.z, t), + e.upX.linearRampToValueAtTime(n.x, t), + e.upY.linearRampToValueAtTime(n.y, t), + e.upZ.linearRampToValueAtTime(n.z, t); + } else + e.setPosition(Sc.x, Sc.y, Sc.z), + e.setOrientation(Ac.x, Ac.y, Ac.z, n.x, n.y, n.z); + } + }), + (t.AudioLoader = vc), + (t.AxesHelper = Ah), + (t.AxisHelper = function (t) { + return ( + console.warn('THREE.AxisHelper has been renamed to THREE.AxesHelper.'), + new Ah(t) + ); + }), + (t.BackSide = 1), + (t.BasicDepthPacking = 3200), + (t.BasicShadowMap = 0), + (t.BinaryTextureLoader = function (t) { + return ( + console.warn( + 'THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.' + ), + new dl(t) + ); + }), + (t.Bone = ta), + (t.BooleanKeyframeTrack = Zo), + (t.BoundingBoxHelper = function (t, e) { + return ( + console.warn( + 'THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.' + ), + new Mh(t, e) + ); + }), + (t.Box2 = eh), + (t.Box3 = Pt), + (t.Box3Helper = class extends ya { + constructor(t, e = 16776960) { + const n = new Uint16Array([ + 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, + 7, + ]), + i = new En(); + i.setIndex(new sn(n, 1)), + i.setAttribute( + 'position', + new mn( + [ + 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, + -1, -1, 1, -1, -1, + ], + 3 + ) + ), + super(i, new ca({ color: e, toneMapped: !1 })), + (this.box = t), + (this.type = 'Box3Helper'), + this.geometry.computeBoundingSphere(); + } + updateMatrixWorld(t) { + const e = this.box; + e.isEmpty() || + (e.getCenter(this.position), + e.getSize(this.scale), + this.scale.multiplyScalar(0.5), + super.updateMatrixWorld(t)); + } + }), + (t.BoxBufferGeometry = qn), + (t.BoxGeometry = qn), + (t.BoxHelper = Mh), + (t.BufferAttribute = sn), + (t.BufferGeometry = En), + (t.BufferGeometryLoader = oc), + (t.ByteType = 1010), + (t.Cache = rl), + (t.Camera = Qn), + (t.CameraHelper = class extends ya { + constructor(t) { + const e = new En(), + n = new ca({ color: 16777215, vertexColors: !0, toneMapped: !1 }), + i = [], + r = [], + s = {}, + a = new tn(16755200), + o = new tn(16711680), + l = new tn(43775), + c = new tn(16777215), + h = new tn(3355443); + function u(t, e, n) { + d(t, n), d(e, n); + } + function d(t, e) { + i.push(0, 0, 0), + r.push(e.r, e.g, e.b), + void 0 === s[t] && (s[t] = []), + s[t].push(i.length / 3 - 1); + } + u('n1', 'n2', a), + u('n2', 'n4', a), + u('n4', 'n3', a), + u('n3', 'n1', a), + u('f1', 'f2', a), + u('f2', 'f4', a), + u('f4', 'f3', a), + u('f3', 'f1', a), + u('n1', 'f1', a), + u('n2', 'f2', a), + u('n3', 'f3', a), + u('n4', 'f4', a), + u('p', 'n1', o), + u('p', 'n2', o), + u('p', 'n3', o), + u('p', 'n4', o), + u('u1', 'u2', l), + u('u2', 'u3', l), + u('u3', 'u1', l), + u('c', 't', c), + u('p', 'c', h), + u('cn1', 'cn2', h), + u('cn3', 'cn4', h), + u('cf1', 'cf2', h), + u('cf3', 'cf4', h), + e.setAttribute('position', new mn(i, 3)), + e.setAttribute('color', new mn(r, 3)), + super(e, n), + (this.type = 'CameraHelper'), + (this.camera = t), + this.camera.updateProjectionMatrix && + this.camera.updateProjectionMatrix(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.pointMap = s), + this.update(); + } + update() { + const t = this.geometry, + e = this.pointMap; + _h.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse), + wh('c', e, t, _h, 0, 0, -1), + wh('t', e, t, _h, 0, 0, 1), + wh('n1', e, t, _h, -1, -1, -1), + wh('n2', e, t, _h, 1, -1, -1), + wh('n3', e, t, _h, -1, 1, -1), + wh('n4', e, t, _h, 1, 1, -1), + wh('f1', e, t, _h, -1, -1, 1), + wh('f2', e, t, _h, 1, -1, 1), + wh('f3', e, t, _h, -1, 1, 1), + wh('f4', e, t, _h, 1, 1, 1), + wh('u1', e, t, _h, 0.7, 1.1, -1), + wh('u2', e, t, _h, -0.7, 1.1, -1), + wh('u3', e, t, _h, 0, 2, -1), + wh('cf1', e, t, _h, -1, 0, 1), + wh('cf2', e, t, _h, 1, 0, 1), + wh('cf3', e, t, _h, 0, -1, 1), + wh('cf4', e, t, _h, 0, 1, 1), + wh('cn1', e, t, _h, -1, 0, -1), + wh('cn2', e, t, _h, 1, 0, -1), + wh('cn3', e, t, _h, 0, -1, -1), + wh('cn4', e, t, _h, 0, 1, -1), + (t.getAttribute('position').needsUpdate = !0); + } + dispose() { + this.geometry.dispose(), this.material.dispose(); + } + }), + (t.CanvasRenderer = function () { + console.error('THREE.CanvasRenderer has been removed'); + }), + (t.CanvasTexture = Ra), + (t.CatmullRomCurve3 = bl), + (t.CineonToneMapping = 3), + (t.CircleBufferGeometry = Pa), + (t.CircleGeometry = Pa), + (t.ClampToEdgeWrapping = u), + (t.Clock = bc), + (t.Color = tn), + (t.ColorKeyframeTrack = Jo), + (t.CompressedTexture = La), + (t.CompressedTextureLoader = class extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = [], + a = new La(), + o = new cl(this.manager); + o.setPath(this.path), + o.setResponseType('arraybuffer'), + o.setRequestHeader(this.requestHeader), + o.setWithCredentials(r.withCredentials); + let l = 0; + function c(c) { + o.load( + t[c], + function (t) { + const n = r.parse(t, !0); + (s[c] = { + width: n.width, + height: n.height, + format: n.format, + mipmaps: n.mipmaps, + }), + (l += 1), + 6 === l && + (1 === n.mipmapCount && (a.minFilter = g), + (a.image = s), + (a.format = n.format), + (a.needsUpdate = !0), + e && e(a)); + }, + n, + i + ); + } + if (Array.isArray(t)) for (let e = 0, n = t.length; e < n; ++e) c(e); + else + o.load( + t, + function (t) { + const n = r.parse(t, !0); + if (n.isCubemap) { + const t = n.mipmaps.length / n.mipmapCount; + for (let e = 0; e < t; e++) { + s[e] = { mipmaps: [] }; + for (let t = 0; t < n.mipmapCount; t++) + s[e].mipmaps.push(n.mipmaps[e * n.mipmapCount + t]), + (s[e].format = n.format), + (s[e].width = n.width), + (s[e].height = n.height); + } + a.image = s; + } else + (a.image.width = n.width), + (a.image.height = n.height), + (a.mipmaps = n.mipmaps); + 1 === n.mipmapCount && (a.minFilter = g), + (a.format = n.format), + (a.needsUpdate = !0), + e && e(a); + }, + n, + i + ); + return a; + } + }), + (t.ConeBufferGeometry = Ia), + (t.ConeGeometry = Ia), + (t.CubeCamera = ti), + (t.CubeReflectionMapping = r), + (t.CubeRefractionMapping = s), + (t.CubeTexture = ei), + (t.CubeTextureLoader = ul), + (t.CubeUVReflectionMapping = l), + (t.CubeUVRefractionMapping = c), + (t.CubicBezierCurve = El), + (t.CubicBezierCurve3 = Al), + (t.CubicInterpolant = jo), + (t.CullFaceBack = 1), + (t.CullFaceFront = 2), + (t.CullFaceFrontBack = 3), + (t.CullFaceNone = 0), + (t.Curve = ml), + (t.CurvePath = Nl), + (t.CustomBlending = 5), + (t.CustomToneMapping = 5), + (t.CylinderBufferGeometry = Da), + (t.CylinderGeometry = Da), + (t.Cylindrical = class { + constructor(t = 1, e = 0, n = 0) { + return (this.radius = t), (this.theta = e), (this.y = n), this; + } + set(t, e, n) { + return (this.radius = t), (this.theta = e), (this.y = n), this; + } + copy(t) { + return ( + (this.radius = t.radius), (this.theta = t.theta), (this.y = t.y), this + ); + } + setFromVector3(t) { + return this.setFromCartesianCoords(t.x, t.y, t.z); + } + setFromCartesianCoords(t, e, n) { + return ( + (this.radius = Math.sqrt(t * t + n * n)), + (this.theta = Math.atan2(t, n)), + (this.y = e), + this + ); + } + clone() { + return new this.constructor().copy(this); + } + }), + (t.DataTexture = ii), + (t.DataTexture2DArray = Ai), + (t.DataTexture3D = Li), + (t.DataTextureLoader = dl), + (t.DataUtils = class { + static toHalfFloat(t) { + Lh[0] = t; + const e = Rh[0]; + let n = (e >> 16) & 32768, + i = (e >> 12) & 2047; + const r = (e >> 23) & 255; + return r < 103 + ? n + : r > 142 + ? ((n |= 31744), (n |= (255 == r ? 0 : 1) && 8388607 & e), n) + : r < 113 + ? ((i |= 2048), + (n |= (i >> (114 - r)) + ((i >> (113 - r)) & 1)), + n) + : ((n |= ((r - 112) << 10) | (i >> 1)), (n += 1 & i), n); + } + }), + (t.DecrementStencilOp = 7683), + (t.DecrementWrapStencilOp = 34056), + (t.DefaultLoadingManager = al), + (t.DepthFormat = A), + (t.DepthStencilFormat = L), + (t.DepthTexture = Ca), + (t.DirectionalLight = Kl), + (t.DirectionalLightHelper = class extends Ce { + constructor(t, e, n) { + super(), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.color = n), + void 0 === e && (e = 1); + let i = new En(); + i.setAttribute( + 'position', + new mn([-e, e, 0, e, e, 0, e, -e, 0, -e, -e, 0, -e, e, 0], 3) + ); + const r = new ca({ fog: !1, toneMapped: !1 }); + (this.lightPlane = new fa(i, r)), + this.add(this.lightPlane), + (i = new En()), + i.setAttribute('position', new mn([0, 0, 0, 0, 0, 1], 3)), + (this.targetLine = new fa(i, r)), + this.add(this.targetLine), + this.update(); + } + dispose() { + this.lightPlane.geometry.dispose(), + this.lightPlane.material.dispose(), + this.targetLine.geometry.dispose(), + this.targetLine.material.dispose(); + } + update() { + gh.setFromMatrixPosition(this.light.matrixWorld), + vh.setFromMatrixPosition(this.light.target.matrixWorld), + yh.subVectors(vh, gh), + this.lightPlane.lookAt(vh), + void 0 !== this.color + ? (this.lightPlane.material.color.set(this.color), + this.targetLine.material.color.set(this.color)) + : (this.lightPlane.material.color.copy(this.light.color), + this.targetLine.material.color.copy(this.light.color)), + this.targetLine.lookAt(vh), + (this.targetLine.scale.z = yh.length()); + } + }), + (t.DiscreteInterpolant = Xo), + (t.DodecahedronBufferGeometry = Ba), + (t.DodecahedronGeometry = Ba), + (t.DoubleSide = 2), + (t.DstAlphaFactor = 206), + (t.DstColorFactor = 208), + (t.DynamicBufferAttribute = function (t, e) { + return ( + console.warn( + 'THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.' + ), + new sn(t, e).setUsage(nt) + ); + }), + (t.DynamicCopyUsage = 35050), + (t.DynamicDrawUsage = nt), + (t.DynamicReadUsage = 35049), + (t.EdgesGeometry = Ga), + (t.EdgesHelper = function (t, e) { + return ( + console.warn( + 'THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.' + ), + new ya( + new Ga(t.geometry), + new ca({ color: void 0 !== e ? e : 16777215 }) + ) + ); + }), + (t.EllipseCurve = fl), + (t.EqualDepth = 4), + (t.EqualStencilFunc = 514), + (t.EquirectangularReflectionMapping = a), + (t.EquirectangularRefractionMapping = o), + (t.Euler = fe), + (t.EventDispatcher = rt), + (t.ExtrudeBufferGeometry = go), + (t.ExtrudeGeometry = go), + (t.FaceColors = 1), + (t.FileLoader = cl), + (t.FlatShading = 1), + (t.Float16BufferAttribute = pn), + (t.Float32Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.' + ), + new mn(t, e) + ); + }), + (t.Float32BufferAttribute = mn), + (t.Float64Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.' + ), + new fn(t, e) + ); + }), + (t.Float64BufferAttribute = fn), + (t.FloatType = b), + (t.Fog = Ss), + (t.FogExp2 = Ms), + (t.Font = pc), + (t.FontLoader = class extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = new cl(this.manager); + s.setPath(this.path), + s.setRequestHeader(this.requestHeader), + s.setWithCredentials(r.withCredentials), + s.load( + t, + function (t) { + let n; + try { + n = JSON.parse(t); + } catch (e) { + console.warn( + 'THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.' + ), + (n = JSON.parse(t.substring(65, t.length - 2))); + } + const i = r.parse(n); + e && e(i); + }, + n, + i + ); + } + parse(t) { + return new pc(t); + } + }), + (t.FrontSide = 0), + (t.Frustum = ai), + (t.GLBufferAttribute = Qc), + (t.GLSL1 = '100'), + (t.GLSL3 = it), + (t.GammaEncoding = Z), + (t.GreaterDepth = 6), + (t.GreaterEqualDepth = 5), + (t.GreaterEqualStencilFunc = 518), + (t.GreaterStencilFunc = 516), + (t.GridHelper = fh), + (t.Group = gs), + (t.HalfFloatType = M), + (t.HemisphereLight = Ol), + (t.HemisphereLightHelper = class extends Ce { + constructor(t, e, n) { + super(), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.color = n); + const i = new _o(e); + i.rotateY(0.5 * Math.PI), + (this.material = new en({ wireframe: !0, fog: !1, toneMapped: !1 })), + void 0 === this.color && (this.material.vertexColors = !0); + const r = i.getAttribute('position'), + s = new Float32Array(3 * r.count); + i.setAttribute('color', new sn(s, 3)), + this.add(new Wn(i, this.material)), + this.update(); + } + dispose() { + this.children[0].geometry.dispose(), + this.children[0].material.dispose(); + } + update() { + const t = this.children[0]; + if (void 0 !== this.color) this.material.color.set(this.color); + else { + const e = t.geometry.getAttribute('color'); + ph.copy(this.light.color), mh.copy(this.light.groundColor); + for (let t = 0, n = e.count; t < n; t++) { + const i = t < n / 2 ? ph : mh; + e.setXYZ(t, i.r, i.g, i.b); + } + e.needsUpdate = !0; + } + t.lookAt(dh.setFromMatrixPosition(this.light.matrixWorld).negate()); + } + }), + (t.HemisphereLightProbe = yc), + (t.IcosahedronBufferGeometry = yo), + (t.IcosahedronGeometry = yo), + (t.ImageBitmapLoader = uc), + (t.ImageLoader = hl), + (t.ImageUtils = _t), + (t.ImmediateRenderObject = sh), + (t.IncrementStencilOp = 7682), + (t.IncrementWrapStencilOp = 34055), + (t.InstancedBufferAttribute = ac), + (t.InstancedBufferGeometry = sc), + (t.InstancedInterleavedBuffer = Jc), + (t.InstancedMesh = la), + (t.Int16Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.' + ), + new cn(t, e) + ); + }), + (t.Int16BufferAttribute = cn), + (t.Int32Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.' + ), + new un(t, e) + ); + }), + (t.Int32BufferAttribute = un), + (t.Int8Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.' + ), + new an(t, e) + ); + }), + (t.Int8BufferAttribute = an), + (t.IntType = 1013), + (t.InterleavedBuffer = Es), + (t.InterleavedBufferAttribute = Ls), + (t.Interpolant = Wo), + (t.InterpolateDiscrete = H), + (t.InterpolateLinear = G), + (t.InterpolateSmooth = U), + (t.InvertStencilOp = 5386), + (t.JSONLoader = function () { + console.error('THREE.JSONLoader has been removed.'); + }), + (t.KeepStencilOp = tt), + (t.KeyframeTrack = Yo), + (t.LOD = Xs), + (t.LatheBufferGeometry = xo), + (t.LatheGeometry = xo), + (t.Layers = ge), + (t.LensFlare = function () { + console.error( + 'THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js' + ); + }), + (t.LessDepth = 2), + (t.LessEqualDepth = 3), + (t.LessEqualStencilFunc = 515), + (t.LessStencilFunc = 513), + (t.Light = Fl), + (t.LightProbe = nc), + (t.Line = fa), + (t.Line3 = rh), + (t.LineBasicMaterial = ca), + (t.LineCurve = Ll), + (t.LineCurve3 = Rl), + (t.LineDashedMaterial = Uo), + (t.LineLoop = xa), + (t.LinePieces = 1), + (t.LineSegments = ya), + (t.LineStrip = 0), + (t.LinearEncoding = X), + (t.LinearFilter = g), + (t.LinearInterpolant = qo), + (t.LinearMipMapLinearFilter = 1008), + (t.LinearMipMapNearestFilter = 1007), + (t.LinearMipmapLinearFilter = y), + (t.LinearMipmapNearestFilter = v), + (t.LinearToneMapping = 1), + (t.Loader = ol), + (t.LoaderUtils = rc), + (t.LoadingManager = sl), + (t.LogLuvEncoding = 3003), + (t.LoopOnce = 2200), + (t.LoopPingPong = 2202), + (t.LoopRepeat = 2201), + (t.LuminanceAlphaFormat = 1025), + (t.LuminanceFormat = 1024), + (t.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 }), + (t.Material = Xe), + (t.MaterialLoader = ic), + (t.Math = gt), + (t.MathUtils = gt), + (t.Matrix3 = yt), + (t.Matrix4 = se), + (t.MaxEquation = 104), + (t.Mesh = Wn), + (t.MeshBasicMaterial = en), + (t.MeshDepthMaterial = cs), + (t.MeshDistanceMaterial = hs), + (t.MeshFaceMaterial = function (t) { + return ( + console.warn( + 'THREE.MeshFaceMaterial has been removed. Use an Array instead.' + ), + t + ); + }), + (t.MeshLambertMaterial = Ho), + (t.MeshMatcapMaterial = Go), + (t.MeshNormalMaterial = Oo), + (t.MeshPhongMaterial = zo), + (t.MeshPhysicalMaterial = Bo), + (t.MeshStandardMaterial = No), + (t.MeshToonMaterial = Fo), + (t.MinEquation = 103), + (t.MirroredRepeatWrapping = d), + (t.MixOperation = 1), + (t.MultiMaterial = function (t = []) { + return ( + console.warn( + 'THREE.MultiMaterial has been removed. Use an Array instead.' + ), + (t.isMultiMaterial = !0), + (t.materials = t), + (t.clone = function () { + return t.slice(); + }), + t + ); + }), + (t.MultiplyBlending = 4), + (t.MultiplyOperation = 0), + (t.NearestFilter = p), + (t.NearestMipMapLinearFilter = 1005), + (t.NearestMipMapNearestFilter = 1004), + (t.NearestMipmapLinearFilter = f), + (t.NearestMipmapNearestFilter = m), + (t.NeverDepth = 0), + (t.NeverStencilFunc = 512), + (t.NoBlending = 0), + (t.NoColors = 0), + (t.NoToneMapping = 0), + (t.NormalAnimationBlendMode = j), + (t.NormalBlending = 1), + (t.NotEqualDepth = 7), + (t.NotEqualStencilFunc = 517), + (t.NumberKeyframeTrack = Qo), + (t.Object3D = Ce), + (t.ObjectLoader = class extends ol { + constructor(t) { + super(t); + } + load(t, e, n, i) { + const r = this, + s = '' === this.path ? rc.extractUrlBase(t) : this.path; + this.resourcePath = this.resourcePath || s; + const a = new cl(this.manager); + a.setPath(this.path), + a.setRequestHeader(this.requestHeader), + a.setWithCredentials(this.withCredentials), + a.load( + t, + function (n) { + let s = null; + try { + s = JSON.parse(n); + } catch (e) { + return ( + void 0 !== i && i(e), + void console.error( + "THREE:ObjectLoader: Can't parse " + t + '.', + e.message + ) + ); + } + const a = s.metadata; + void 0 !== a && + void 0 !== a.type && + 'geometry' !== a.type.toLowerCase() + ? r.parse(s, e) + : console.error("THREE.ObjectLoader: Can't load " + t); + }, + n, + i + ); + } + parse(t, e) { + const n = this.parseAnimations(t.animations), + i = this.parseShapes(t.shapes), + r = this.parseGeometries(t.geometries, i), + s = this.parseImages(t.images, function () { + void 0 !== e && e(l); + }), + a = this.parseTextures(t.textures, s), + o = this.parseMaterials(t.materials, a), + l = this.parseObject(t.object, r, o, n), + c = this.parseSkeletons(t.skeletons, l); + if ((this.bindSkeletons(l, c), void 0 !== e)) { + let t = !1; + for (const e in s) + if (s[e] instanceof HTMLImageElement) { + t = !0; + break; + } + !1 === t && e(l); + } + return l; + } + parseShapes(t) { + const e = {}; + if (void 0 !== t) + for (let n = 0, i = t.length; n < i; n++) { + const i = new zl().fromJSON(t[n]); + e[i.uuid] = i; + } + return e; + } + parseSkeletons(t, e) { + const n = {}, + i = {}; + if ( + (e.traverse(function (t) { + t.isBone && (i[t.uuid] = t); + }), + void 0 !== t) + ) + for (let e = 0, r = t.length; e < r; e++) { + const r = new ia().fromJSON(t[e], i); + n[r.uuid] = r; + } + return n; + } + parseGeometries(t, e) { + const n = {}; + let i; + if (void 0 !== t) { + const r = new oc(); + for (let s = 0, a = t.length; s < a; s++) { + let a; + const o = t[s]; + switch (o.type) { + case 'PlaneGeometry': + case 'PlaneBufferGeometry': + a = new Po[o.type]( + o.width, + o.height, + o.widthSegments, + o.heightSegments + ); + break; + case 'BoxGeometry': + case 'BoxBufferGeometry': + a = new Po[o.type]( + o.width, + o.height, + o.depth, + o.widthSegments, + o.heightSegments, + o.depthSegments + ); + break; + case 'CircleGeometry': + case 'CircleBufferGeometry': + a = new Po[o.type]( + o.radius, + o.segments, + o.thetaStart, + o.thetaLength + ); + break; + case 'CylinderGeometry': + case 'CylinderBufferGeometry': + a = new Po[o.type]( + o.radiusTop, + o.radiusBottom, + o.height, + o.radialSegments, + o.heightSegments, + o.openEnded, + o.thetaStart, + o.thetaLength + ); + break; + case 'ConeGeometry': + case 'ConeBufferGeometry': + a = new Po[o.type]( + o.radius, + o.height, + o.radialSegments, + o.heightSegments, + o.openEnded, + o.thetaStart, + o.thetaLength + ); + break; + case 'SphereGeometry': + case 'SphereBufferGeometry': + a = new Po[o.type]( + o.radius, + o.widthSegments, + o.heightSegments, + o.phiStart, + o.phiLength, + o.thetaStart, + o.thetaLength + ); + break; + case 'DodecahedronGeometry': + case 'DodecahedronBufferGeometry': + case 'IcosahedronGeometry': + case 'IcosahedronBufferGeometry': + case 'OctahedronGeometry': + case 'OctahedronBufferGeometry': + case 'TetrahedronGeometry': + case 'TetrahedronBufferGeometry': + a = new Po[o.type](o.radius, o.detail); + break; + case 'RingGeometry': + case 'RingBufferGeometry': + a = new Po[o.type]( + o.innerRadius, + o.outerRadius, + o.thetaSegments, + o.phiSegments, + o.thetaStart, + o.thetaLength + ); + break; + case 'TorusGeometry': + case 'TorusBufferGeometry': + a = new Po[o.type]( + o.radius, + o.tube, + o.radialSegments, + o.tubularSegments, + o.arc + ); + break; + case 'TorusKnotGeometry': + case 'TorusKnotBufferGeometry': + a = new Po[o.type]( + o.radius, + o.tube, + o.tubularSegments, + o.radialSegments, + o.p, + o.q + ); + break; + case 'TubeGeometry': + case 'TubeBufferGeometry': + a = new Po[o.type]( + new Il[o.path.type]().fromJSON(o.path), + o.tubularSegments, + o.radius, + o.radialSegments, + o.closed + ); + break; + case 'LatheGeometry': + case 'LatheBufferGeometry': + a = new Po[o.type]( + o.points, + o.segments, + o.phiStart, + o.phiLength + ); + break; + case 'PolyhedronGeometry': + case 'PolyhedronBufferGeometry': + a = new Po[o.type](o.vertices, o.indices, o.radius, o.details); + break; + case 'ShapeGeometry': + case 'ShapeBufferGeometry': + i = []; + for (let t = 0, n = o.shapes.length; t < n; t++) { + const n = e[o.shapes[t]]; + i.push(n); + } + a = new Po[o.type](i, o.curveSegments); + break; + case 'ExtrudeGeometry': + case 'ExtrudeBufferGeometry': + i = []; + for (let t = 0, n = o.shapes.length; t < n; t++) { + const n = e[o.shapes[t]]; + i.push(n); + } + const t = o.options.extrudePath; + void 0 !== t && + (o.options.extrudePath = new Il[t.type]().fromJSON(t)), + (a = new Po[o.type](i, o.options)); + break; + case 'BufferGeometry': + case 'InstancedBufferGeometry': + a = r.parse(o); + break; + case 'Geometry': + console.error( + 'THREE.ObjectLoader: Loading "Geometry" is not supported anymore.' + ); + break; + default: + console.warn( + 'THREE.ObjectLoader: Unsupported geometry type "' + + o.type + + '"' + ); + continue; + } + (a.uuid = o.uuid), + void 0 !== o.name && (a.name = o.name), + !0 === a.isBufferGeometry && + void 0 !== o.userData && + (a.userData = o.userData), + (n[o.uuid] = a); + } + } + return n; + } + parseMaterials(t, e) { + const n = {}, + i = {}; + if (void 0 !== t) { + const r = new ic(); + r.setTextures(e); + for (let e = 0, s = t.length; e < s; e++) { + const s = t[e]; + if ('MultiMaterial' === s.type) { + const t = []; + for (let e = 0; e < s.materials.length; e++) { + const i = s.materials[e]; + void 0 === n[i.uuid] && (n[i.uuid] = r.parse(i)), + t.push(n[i.uuid]); + } + i[s.uuid] = t; + } else + void 0 === n[s.uuid] && (n[s.uuid] = r.parse(s)), + (i[s.uuid] = n[s.uuid]); + } + } + return i; + } + parseAnimations(t) { + const e = {}; + if (void 0 !== t) + for (let n = 0; n < t.length; n++) { + const i = t[n], + r = nl.parse(i); + e[r.uuid] = r; + } + return e; + } + parseImages(t, e) { + const n = this, + i = {}; + let r; + function s(t) { + if ('string' == typeof t) { + const e = t; + return (function (t) { + return ( + n.manager.itemStart(t), + r.load( + t, + function () { + n.manager.itemEnd(t); + }, + void 0, + function () { + n.manager.itemError(t), n.manager.itemEnd(t); + } + ) + ); + })(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(e) ? e : n.resourcePath + e); + } + return t.data + ? { data: yn(t.type, t.data), width: t.width, height: t.height } + : null; + } + if (void 0 !== t && t.length > 0) { + const n = new sl(e); + (r = new hl(n)), r.setCrossOrigin(this.crossOrigin); + for (let e = 0, n = t.length; e < n; e++) { + const n = t[e], + r = n.url; + if (Array.isArray(r)) { + i[n.uuid] = []; + for (let t = 0, e = r.length; t < e; t++) { + const e = s(r[t]); + null !== e && + (e instanceof HTMLImageElement + ? i[n.uuid].push(e) + : i[n.uuid].push(new ii(e.data, e.width, e.height))); + } + } else { + const t = s(n.url); + null !== t && (i[n.uuid] = t); + } + } + } + return i; + } + parseTextures(t, e) { + function n(t, e) { + return 'number' == typeof t + ? t + : (console.warn( + 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', + t + ), + e[t]); + } + const i = {}; + if (void 0 !== t) + for (let r = 0, s = t.length; r < s; r++) { + const s = t[r]; + let a; + void 0 === s.image && + console.warn( + 'THREE.ObjectLoader: No "image" specified for', + s.uuid + ), + void 0 === e[s.image] && + console.warn('THREE.ObjectLoader: Undefined image', s.image); + const o = e[s.image]; + Array.isArray(o) + ? ((a = new ei(o)), 6 === o.length && (a.needsUpdate = !0)) + : ((a = + o && o.data ? new ii(o.data, o.width, o.height) : new bt(o)), + o && (a.needsUpdate = !0)), + (a.uuid = s.uuid), + void 0 !== s.name && (a.name = s.name), + void 0 !== s.mapping && (a.mapping = n(s.mapping, lc)), + void 0 !== s.offset && a.offset.fromArray(s.offset), + void 0 !== s.repeat && a.repeat.fromArray(s.repeat), + void 0 !== s.center && a.center.fromArray(s.center), + void 0 !== s.rotation && (a.rotation = s.rotation), + void 0 !== s.wrap && + ((a.wrapS = n(s.wrap[0], cc)), (a.wrapT = n(s.wrap[1], cc))), + void 0 !== s.format && (a.format = s.format), + void 0 !== s.type && (a.type = s.type), + void 0 !== s.encoding && (a.encoding = s.encoding), + void 0 !== s.minFilter && (a.minFilter = n(s.minFilter, hc)), + void 0 !== s.magFilter && (a.magFilter = n(s.magFilter, hc)), + void 0 !== s.anisotropy && (a.anisotropy = s.anisotropy), + void 0 !== s.flipY && (a.flipY = s.flipY), + void 0 !== s.premultiplyAlpha && + (a.premultiplyAlpha = s.premultiplyAlpha), + void 0 !== s.unpackAlignment && + (a.unpackAlignment = s.unpackAlignment), + (i[s.uuid] = a); + } + return i; + } + parseObject(t, e, n, i) { + let r, s, a; + function o(t) { + return ( + void 0 === e[t] && + console.warn('THREE.ObjectLoader: Undefined geometry', t), + e[t] + ); + } + function l(t) { + if (void 0 !== t) { + if (Array.isArray(t)) { + const e = []; + for (let i = 0, r = t.length; i < r; i++) { + const r = t[i]; + void 0 === n[r] && + console.warn('THREE.ObjectLoader: Undefined material', r), + e.push(n[r]); + } + return e; + } + return ( + void 0 === n[t] && + console.warn('THREE.ObjectLoader: Undefined material', t), + n[t] + ); + } + } + switch (t.type) { + case 'Scene': + (r = new Ts()), + void 0 !== t.background && + Number.isInteger(t.background) && + (r.background = new tn(t.background)), + void 0 !== t.fog && + ('Fog' === t.fog.type + ? (r.fog = new Ss(t.fog.color, t.fog.near, t.fog.far)) + : 'FogExp2' === t.fog.type && + (r.fog = new Ms(t.fog.color, t.fog.density))); + break; + case 'PerspectiveCamera': + (r = new Kn(t.fov, t.aspect, t.near, t.far)), + void 0 !== t.focus && (r.focus = t.focus), + void 0 !== t.zoom && (r.zoom = t.zoom), + void 0 !== t.filmGauge && (r.filmGauge = t.filmGauge), + void 0 !== t.filmOffset && (r.filmOffset = t.filmOffset), + void 0 !== t.view && (r.view = Object.assign({}, t.view)); + break; + case 'OrthographicCamera': + (r = new Jl(t.left, t.right, t.top, t.bottom, t.near, t.far)), + void 0 !== t.zoom && (r.zoom = t.zoom), + void 0 !== t.view && (r.view = Object.assign({}, t.view)); + break; + case 'AmbientLight': + r = new $l(t.color, t.intensity); + break; + case 'DirectionalLight': + r = new Kl(t.color, t.intensity); + break; + case 'PointLight': + r = new Zl(t.color, t.intensity, t.distance, t.decay); + break; + case 'RectAreaLight': + r = new tc(t.color, t.intensity, t.width, t.height); + break; + case 'SpotLight': + r = new Wl( + t.color, + t.intensity, + t.distance, + t.angle, + t.penumbra, + t.decay + ); + break; + case 'HemisphereLight': + r = new Ol(t.color, t.groundColor, t.intensity); + break; + case 'LightProbe': + r = new nc().fromJSON(t); + break; + case 'SkinnedMesh': + (s = o(t.geometry)), + (a = l(t.material)), + (r = new $s(s, a)), + void 0 !== t.bindMode && (r.bindMode = t.bindMode), + void 0 !== t.bindMatrix && r.bindMatrix.fromArray(t.bindMatrix), + void 0 !== t.skeleton && (r.skeleton = t.skeleton); + break; + case 'Mesh': + (s = o(t.geometry)), (a = l(t.material)), (r = new Wn(s, a)); + break; + case 'InstancedMesh': + (s = o(t.geometry)), (a = l(t.material)); + const e = t.count, + n = t.instanceMatrix, + i = t.instanceColor; + (r = new la(s, a, e)), + (r.instanceMatrix = new sn(new Float32Array(n.array), 16)), + void 0 !== i && + (r.instanceColor = new sn( + new Float32Array(i.array), + i.itemSize + )); + break; + case 'LOD': + r = new Xs(); + break; + case 'Line': + r = new fa(o(t.geometry), l(t.material)); + break; + case 'LineLoop': + r = new xa(o(t.geometry), l(t.material)); + break; + case 'LineSegments': + r = new ya(o(t.geometry), l(t.material)); + break; + case 'PointCloud': + case 'Points': + r = new Ta(o(t.geometry), l(t.material)); + break; + case 'Sprite': + r = new Vs(l(t.material)); + break; + case 'Group': + r = new gs(); + break; + case 'Bone': + r = new ta(); + break; + default: + r = new Ce(); + } + if ( + ((r.uuid = t.uuid), + void 0 !== t.name && (r.name = t.name), + void 0 !== t.matrix + ? (r.matrix.fromArray(t.matrix), + void 0 !== t.matrixAutoUpdate && + (r.matrixAutoUpdate = t.matrixAutoUpdate), + r.matrixAutoUpdate && + r.matrix.decompose(r.position, r.quaternion, r.scale)) + : (void 0 !== t.position && r.position.fromArray(t.position), + void 0 !== t.rotation && r.rotation.fromArray(t.rotation), + void 0 !== t.quaternion && r.quaternion.fromArray(t.quaternion), + void 0 !== t.scale && r.scale.fromArray(t.scale)), + void 0 !== t.castShadow && (r.castShadow = t.castShadow), + void 0 !== t.receiveShadow && (r.receiveShadow = t.receiveShadow), + t.shadow && + (void 0 !== t.shadow.bias && (r.shadow.bias = t.shadow.bias), + void 0 !== t.shadow.normalBias && + (r.shadow.normalBias = t.shadow.normalBias), + void 0 !== t.shadow.radius && (r.shadow.radius = t.shadow.radius), + void 0 !== t.shadow.mapSize && + r.shadow.mapSize.fromArray(t.shadow.mapSize), + void 0 !== t.shadow.camera && + (r.shadow.camera = this.parseObject(t.shadow.camera))), + void 0 !== t.visible && (r.visible = t.visible), + void 0 !== t.frustumCulled && (r.frustumCulled = t.frustumCulled), + void 0 !== t.renderOrder && (r.renderOrder = t.renderOrder), + void 0 !== t.userData && (r.userData = t.userData), + void 0 !== t.layers && (r.layers.mask = t.layers), + void 0 !== t.children) + ) { + const s = t.children; + for (let t = 0; t < s.length; t++) + r.add(this.parseObject(s[t], e, n, i)); + } + if (void 0 !== t.animations) { + const e = t.animations; + for (let t = 0; t < e.length; t++) { + const n = e[t]; + r.animations.push(i[n]); + } + } + if ('LOD' === t.type) { + void 0 !== t.autoUpdate && (r.autoUpdate = t.autoUpdate); + const e = t.levels; + for (let t = 0; t < e.length; t++) { + const n = e[t], + i = r.getObjectByProperty('uuid', n.object); + void 0 !== i && r.addLevel(i, n.distance); + } + } + return r; + } + bindSkeletons(t, e) { + 0 !== Object.keys(e).length && + t.traverse(function (t) { + if (!0 === t.isSkinnedMesh && void 0 !== t.skeleton) { + const n = e[t.skeleton]; + void 0 === n + ? console.warn( + 'THREE.ObjectLoader: No skeleton found with UUID:', + t.skeleton + ) + : t.bind(n, t.bindMatrix); + } + }); + } + setTexturePath(t) { + return ( + console.warn( + 'THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().' + ), + this.setResourcePath(t) + ); + } + }), + (t.ObjectSpaceNormalMap = 1), + (t.OctahedronBufferGeometry = _o), + (t.OctahedronGeometry = _o), + (t.OneFactor = 201), + (t.OneMinusDstAlphaFactor = 207), + (t.OneMinusDstColorFactor = 209), + (t.OneMinusSrcAlphaFactor = 205), + (t.OneMinusSrcColorFactor = 203), + (t.OrthographicCamera = Jl), + (t.PCFShadowMap = 1), + (t.PCFSoftShadowMap = 2), + (t.PMREMGenerator = class { + constructor(t) { + (this._renderer = t), + (this._pingPongRenderTarget = null), + (this._blurMaterial = (function (t) { + const e = new Float32Array(t), + n = new Lt(0, 1, 0); + return new Io({ + name: 'SphericalGaussianBlur', + defines: { n: t }, + uniforms: { + envMap: { value: null }, + samples: { value: 1 }, + weights: { value: e }, + latitudinal: { value: !1 }, + dTheta: { value: 0 }, + mipInt: { value: 0 }, + poleAxis: { value: n }, + inputEncoding: { value: Nh[3e3] }, + outputEncoding: { value: Nh[3e3] }, + }, + vertexShader: $h(), + fragmentShader: `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t${tu()}\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`, + blending: 0, + depthTest: !1, + depthWrite: !1, + }); + })(Ih)), + (this._equirectShader = null), + (this._cubemapShader = null), + this._compileMaterial(this._blurMaterial); + } + fromScene(t, e = 0, n = 0.1, i = 100) { + kh = this._renderer.getRenderTarget(); + const r = this._allocateTargets(); + return ( + this._sceneToCubeUV(t, n, i, r), + e > 0 && this._blur(r, 0, 0, e), + this._applyPMREM(r), + this._cleanup(r), + r + ); + } + fromEquirectangular(t) { + return this._fromTexture(t); + } + fromCubemap(t) { + return this._fromTexture(t); + } + compileCubemapShader() { + null === this._cubemapShader && + ((this._cubemapShader = Kh()), + this._compileMaterial(this._cubemapShader)); + } + compileEquirectangularShader() { + null === this._equirectShader && + ((this._equirectShader = Qh()), + this._compileMaterial(this._equirectShader)); + } + dispose() { + this._blurMaterial.dispose(), + null !== this._cubemapShader && this._cubemapShader.dispose(), + null !== this._equirectShader && this._equirectShader.dispose(); + for (let t = 0; t < Oh.length; t++) Oh[t].dispose(); + } + _cleanup(t) { + this._pingPongRenderTarget.dispose(), + this._renderer.setRenderTarget(kh), + (t.scissorTest = !1), + Jh(t, 0, 0, t.width, t.height); + } + _fromTexture(t) { + kh = this._renderer.getRenderTarget(); + const e = this._allocateTargets(t); + return ( + this._textureToCubeUV(t, e), this._applyPMREM(e), this._cleanup(e), e + ); + } + _allocateTargets(t) { + const e = { + magFilter: p, + minFilter: p, + generateMipmaps: !1, + type: x, + format: 1023, + encoding: Xh(t) ? t.encoding : J, + depthBuffer: !1, + }, + n = Zh(e); + return (n.depthBuffer = !t), (this._pingPongRenderTarget = Zh(e)), n; + } + _compileMaterial(t) { + const e = new Wn(Oh[0], t); + this._renderer.compile(e, Fh); + } + _sceneToCubeUV(t, e, n, i) { + const r = new Kn(90, 1, e, n), + s = [1, -1, 1, 1, 1, 1], + a = [1, 1, 1, -1, -1, -1], + o = this._renderer, + l = o.autoClear, + c = o.outputEncoding, + h = o.toneMapping; + o.getClearColor(Uh), + (o.toneMapping = 0), + (o.outputEncoding = X), + (o.autoClear = !1); + let u = !1; + const d = t.background; + if (d) { + if (d.isColor) { + Bh.color.copy(d).convertSRGBToLinear(), (t.background = null); + const e = qh(Bh.color); + (Bh.opacity = e), (u = !0); + } + } else { + Bh.color.copy(Uh).convertSRGBToLinear(); + const t = qh(Bh.color); + (Bh.opacity = t), (u = !0); + } + for (let e = 0; e < 6; e++) { + const n = e % 3; + 0 == n + ? (r.up.set(0, s[e], 0), r.lookAt(a[e], 0, 0)) + : 1 == n + ? (r.up.set(0, 0, s[e]), r.lookAt(0, a[e], 0)) + : (r.up.set(0, s[e], 0), r.lookAt(0, 0, a[e])), + Jh(i, n * Ch, e > 2 ? Ch : 0, Ch, Ch), + o.setRenderTarget(i), + u && o.render(zh, r), + o.render(t, r); + } + (o.toneMapping = h), (o.outputEncoding = c), (o.autoClear = l); + } + _textureToCubeUV(t, e) { + const n = this._renderer; + t.isCubeTexture + ? null == this._cubemapShader && (this._cubemapShader = Kh()) + : null == this._equirectShader && (this._equirectShader = Qh()); + const i = t.isCubeTexture ? this._cubemapShader : this._equirectShader, + r = new Wn(Oh[0], i), + s = i.uniforms; + (s.envMap.value = t), + t.isCubeTexture || + s.texelSize.value.set(1 / t.image.width, 1 / t.image.height), + (s.inputEncoding.value = Nh[t.encoding]), + (s.outputEncoding.value = Nh[e.texture.encoding]), + Jh(e, 0, 0, 3 * Ch, 2 * Ch), + n.setRenderTarget(e), + n.render(r, Fh); + } + _applyPMREM(t) { + const e = this._renderer, + n = e.autoClear; + e.autoClear = !1; + for (let e = 1; e < Dh; e++) { + const n = Math.sqrt(Gh[e] * Gh[e] - Gh[e - 1] * Gh[e - 1]), + i = jh[(e - 1) % jh.length]; + this._blur(t, e - 1, e, n, i); + } + e.autoClear = n; + } + _blur(t, e, n, i, r) { + const s = this._pingPongRenderTarget; + this._halfBlur(t, s, e, n, i, 'latitudinal', r), + this._halfBlur(s, t, n, n, i, 'longitudinal', r); + } + _halfBlur(t, e, n, i, r, s, a) { + const o = this._renderer, + l = this._blurMaterial; + 'latitudinal' !== s && + 'longitudinal' !== s && + console.error( + 'blur direction must be either latitudinal or longitudinal!' + ); + const c = new Wn(Oh[i], l), + h = l.uniforms, + u = Hh[n] - 1, + d = isFinite(r) ? Math.PI / (2 * u) : (2 * Math.PI) / 39, + p = r / d, + m = isFinite(r) ? 1 + Math.floor(3 * p) : Ih; + m > Ih && + console.warn( + `sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20` + ); + const f = []; + let g = 0; + for (let t = 0; t < Ih; ++t) { + const e = t / p, + n = Math.exp((-e * e) / 2); + f.push(n), 0 == t ? (g += n) : t < m && (g += 2 * n); + } + for (let t = 0; t < f.length; t++) f[t] = f[t] / g; + (h.envMap.value = t.texture), + (h.samples.value = m), + (h.weights.value = f), + (h.latitudinal.value = 'latitudinal' === s), + a && (h.poleAxis.value = a), + (h.dTheta.value = d), + (h.mipInt.value = 8 - n), + (h.inputEncoding.value = Nh[t.texture.encoding]), + (h.outputEncoding.value = Nh[t.texture.encoding]); + const v = Hh[i]; + Jh( + e, + 3 * Math.max(0, Ch - 2 * v), + (0 === i ? 0 : 2 * Ch) + 2 * v * (i > 4 ? i - 8 + 4 : 0), + 3 * v, + 2 * v + ), + o.setRenderTarget(e), + o.render(c, Fh); + } + }), + (t.ParametricBufferGeometry = wo), + (t.ParametricGeometry = wo), + (t.Particle = function (t) { + return ( + console.warn('THREE.Particle has been renamed to THREE.Sprite.'), + new Vs(t) + ); + }), + (t.ParticleBasicMaterial = function (t) { + return ( + console.warn( + 'THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.' + ), + new _a(t) + ); + }), + (t.ParticleSystem = function (t, e) { + return ( + console.warn('THREE.ParticleSystem has been renamed to THREE.Points.'), + new Ta(t, e) + ); + }), + (t.ParticleSystemMaterial = function (t) { + return ( + console.warn( + 'THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.' + ), + new _a(t) + ); + }), + (t.Path = Bl), + (t.PerspectiveCamera = Kn), + (t.Plane = Ne), + (t.PlaneBufferGeometry = ci), + (t.PlaneGeometry = ci), + (t.PlaneHelper = class extends fa { + constructor(t, e = 1, n = 16776960) { + const i = n, + r = new En(); + r.setAttribute( + 'position', + new mn( + [ + 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, + -1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, + ], + 3 + ) + ), + r.computeBoundingSphere(), + super(r, new ca({ color: i, toneMapped: !1 })), + (this.type = 'PlaneHelper'), + (this.plane = t), + (this.size = e); + const s = new En(); + s.setAttribute( + 'position', + new mn( + [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1], + 3 + ) + ), + s.computeBoundingSphere(), + this.add( + new Wn( + s, + new en({ + color: i, + opacity: 0.2, + transparent: !0, + depthWrite: !1, + toneMapped: !1, + }) + ) + ); + } + updateMatrixWorld(t) { + let e = -this.plane.constant; + Math.abs(e) < 1e-8 && (e = 1e-8), + this.scale.set(0.5 * this.size, 0.5 * this.size, e), + (this.children[0].material.side = e < 0 ? 1 : 0), + this.lookAt(this.plane.normal), + super.updateMatrixWorld(t); + } + }), + (t.PointCloud = function (t, e) { + return ( + console.warn('THREE.PointCloud has been renamed to THREE.Points.'), + new Ta(t, e) + ); + }), + (t.PointCloudMaterial = function (t) { + return ( + console.warn( + 'THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.' + ), + new _a(t) + ); + }), + (t.PointLight = Zl), + (t.PointLightHelper = class extends Wn { + constructor(t, e, n) { + super( + new So(e, 4, 2), + new en({ wireframe: !0, fog: !1, toneMapped: !1 }) + ), + (this.light = t), + this.light.updateMatrixWorld(), + (this.color = n), + (this.type = 'PointLightHelper'), + (this.matrix = this.light.matrixWorld), + (this.matrixAutoUpdate = !1), + this.update(); + } + dispose() { + this.geometry.dispose(), this.material.dispose(); + } + update() { + void 0 !== this.color + ? this.material.color.set(this.color) + : this.material.color.copy(this.light.color); + } + }), + (t.Points = Ta), + (t.PointsMaterial = _a), + (t.PolarGridHelper = class extends ya { + constructor(t = 10, e = 16, n = 8, i = 64, r = 4473924, s = 8947848) { + (r = new tn(r)), (s = new tn(s)); + const a = [], + o = []; + for (let n = 0; n <= e; n++) { + const i = (n / e) * (2 * Math.PI), + l = Math.sin(i) * t, + c = Math.cos(i) * t; + a.push(0, 0, 0), a.push(l, 0, c); + const h = 1 & n ? r : s; + o.push(h.r, h.g, h.b), o.push(h.r, h.g, h.b); + } + for (let e = 0; e <= n; e++) { + const l = 1 & e ? r : s, + c = t - (t / n) * e; + for (let t = 0; t < i; t++) { + let e = (t / i) * (2 * Math.PI), + n = Math.sin(e) * c, + r = Math.cos(e) * c; + a.push(n, 0, r), + o.push(l.r, l.g, l.b), + (e = ((t + 1) / i) * (2 * Math.PI)), + (n = Math.sin(e) * c), + (r = Math.cos(e) * c), + a.push(n, 0, r), + o.push(l.r, l.g, l.b); + } + } + const l = new En(); + l.setAttribute('position', new mn(a, 3)), + l.setAttribute('color', new mn(o, 3)); + super(l, new ca({ vertexColors: !0, toneMapped: !1 })), + (this.type = 'PolarGridHelper'); + } + }), + (t.PolyhedronBufferGeometry = Na), + (t.PolyhedronGeometry = Na), + (t.PositionalAudio = class extends Lc { + constructor(t) { + super(t), + (this.panner = this.context.createPanner()), + (this.panner.panningModel = 'HRTF'), + this.panner.connect(this.gain); + } + getOutput() { + return this.panner; + } + getRefDistance() { + return this.panner.refDistance; + } + setRefDistance(t) { + return (this.panner.refDistance = t), this; + } + getRolloffFactor() { + return this.panner.rolloffFactor; + } + setRolloffFactor(t) { + return (this.panner.rolloffFactor = t), this; + } + getDistanceModel() { + return this.panner.distanceModel; + } + setDistanceModel(t) { + return (this.panner.distanceModel = t), this; + } + getMaxDistance() { + return this.panner.maxDistance; + } + setMaxDistance(t) { + return (this.panner.maxDistance = t), this; + } + setDirectionalCone(t, e, n) { + return ( + (this.panner.coneInnerAngle = t), + (this.panner.coneOuterAngle = e), + (this.panner.coneOuterGain = n), + this + ); + } + updateMatrixWorld(t) { + if ( + (super.updateMatrixWorld(t), + !0 === this.hasPlaybackControl && !1 === this.isPlaying) + ) + return; + this.matrixWorld.decompose(Rc, Cc, Pc), + Dc.set(0, 0, 1).applyQuaternion(Cc); + const e = this.panner; + if (e.positionX) { + const t = this.context.currentTime + this.listener.timeDelta; + e.positionX.linearRampToValueAtTime(Rc.x, t), + e.positionY.linearRampToValueAtTime(Rc.y, t), + e.positionZ.linearRampToValueAtTime(Rc.z, t), + e.orientationX.linearRampToValueAtTime(Dc.x, t), + e.orientationY.linearRampToValueAtTime(Dc.y, t), + e.orientationZ.linearRampToValueAtTime(Dc.z, t); + } else + e.setPosition(Rc.x, Rc.y, Rc.z), e.setOrientation(Dc.x, Dc.y, Dc.z); + } + }), + (t.PropertyBinding = jc), + (t.PropertyMixer = Nc), + (t.QuadraticBezierCurve = Cl), + (t.QuadraticBezierCurve3 = Pl), + (t.Quaternion = At), + (t.QuaternionKeyframeTrack = $o), + (t.QuaternionLinearInterpolant = Ko), + (t.REVISION = e), + (t.RGBADepthPacking = 3201), + (t.RGBAFormat = E), + (t.RGBAIntegerFormat = 1033), + (t.RGBA_ASTC_10x10_Format = 37819), + (t.RGBA_ASTC_10x5_Format = 37816), + (t.RGBA_ASTC_10x6_Format = 37817), + (t.RGBA_ASTC_10x8_Format = 37818), + (t.RGBA_ASTC_12x10_Format = 37820), + (t.RGBA_ASTC_12x12_Format = 37821), + (t.RGBA_ASTC_4x4_Format = 37808), + (t.RGBA_ASTC_5x4_Format = 37809), + (t.RGBA_ASTC_5x5_Format = 37810), + (t.RGBA_ASTC_6x5_Format = 37811), + (t.RGBA_ASTC_6x6_Format = 37812), + (t.RGBA_ASTC_8x5_Format = 37813), + (t.RGBA_ASTC_8x6_Format = 37814), + (t.RGBA_ASTC_8x8_Format = 37815), + (t.RGBA_BPTC_Format = 36492), + (t.RGBA_ETC2_EAC_Format = O), + (t.RGBA_PVRTC_2BPPV1_Format = z), + (t.RGBA_PVRTC_4BPPV1_Format = B), + (t.RGBA_S3TC_DXT1_Format = C), + (t.RGBA_S3TC_DXT3_Format = P), + (t.RGBA_S3TC_DXT5_Format = D), + (t.RGBDEncoding = $), + (t.RGBEEncoding = J), + (t.RGBEFormat = 1023), + (t.RGBFormat = T), + (t.RGBIntegerFormat = 1032), + (t.RGBM16Encoding = K), + (t.RGBM7Encoding = Q), + (t.RGB_ETC1_Format = 36196), + (t.RGB_ETC2_Format = F), + (t.RGB_PVRTC_2BPPV1_Format = N), + (t.RGB_PVRTC_4BPPV1_Format = I), + (t.RGB_S3TC_DXT1_Format = R), + (t.RGFormat = 1030), + (t.RGIntegerFormat = 1031), + (t.RawShaderMaterial = Io), + (t.Ray = re), + (t.Raycaster = class { + constructor(t, e, n = 0, i = 1 / 0) { + (this.ray = new re(t, e)), + (this.near = n), + (this.far = i), + (this.camera = null), + (this.layers = new ge()), + (this.params = { + Mesh: {}, + Line: { threshold: 1 }, + LOD: {}, + Points: { threshold: 1 }, + Sprite: {}, + }); + } + set(t, e) { + this.ray.set(t, e); + } + setFromCamera(t, e) { + e && e.isPerspectiveCamera + ? (this.ray.origin.setFromMatrixPosition(e.matrixWorld), + this.ray.direction + .set(t.x, t.y, 0.5) + .unproject(e) + .sub(this.ray.origin) + .normalize(), + (this.camera = e)) + : e && e.isOrthographicCamera + ? (this.ray.origin + .set(t.x, t.y, (e.near + e.far) / (e.near - e.far)) + .unproject(e), + this.ray.direction + .set(0, 0, -1) + .transformDirection(e.matrixWorld), + (this.camera = e)) + : console.error( + 'THREE.Raycaster: Unsupported camera type: ' + e.type + ); + } + intersectObject(t, e = !1, n = []) { + return $c(t, this, n, e), n.sort(Kc), n; + } + intersectObjects(t, e = !1, n = []) { + for (let i = 0, r = t.length; i < r; i++) $c(t[i], this, n, e); + return n.sort(Kc), n; + } + }), + (t.RectAreaLight = tc), + (t.RedFormat = 1028), + (t.RedIntegerFormat = 1029), + (t.ReinhardToneMapping = 2), + (t.RepeatWrapping = h), + (t.ReplaceStencilOp = 7681), + (t.ReverseSubtractEquation = 102), + (t.RingBufferGeometry = bo), + (t.RingGeometry = bo), + (t.SRGB8_ALPHA8_ASTC_10x10_Format = 37851), + (t.SRGB8_ALPHA8_ASTC_10x5_Format = 37848), + (t.SRGB8_ALPHA8_ASTC_10x6_Format = 37849), + (t.SRGB8_ALPHA8_ASTC_10x8_Format = 37850), + (t.SRGB8_ALPHA8_ASTC_12x10_Format = 37852), + (t.SRGB8_ALPHA8_ASTC_12x12_Format = 37853), + (t.SRGB8_ALPHA8_ASTC_4x4_Format = 37840), + (t.SRGB8_ALPHA8_ASTC_5x4_Format = 37841), + (t.SRGB8_ALPHA8_ASTC_5x5_Format = 37842), + (t.SRGB8_ALPHA8_ASTC_6x5_Format = 37843), + (t.SRGB8_ALPHA8_ASTC_6x6_Format = 37844), + (t.SRGB8_ALPHA8_ASTC_8x5_Format = 37845), + (t.SRGB8_ALPHA8_ASTC_8x6_Format = 37846), + (t.SRGB8_ALPHA8_ASTC_8x8_Format = 37847), + (t.Scene = Ts), + (t.SceneUtils = eu), + (t.ShaderChunk = hi), + (t.ShaderLib = di), + (t.ShaderMaterial = Jn), + (t.ShadowMaterial = Do), + (t.Shape = zl), + (t.ShapeBufferGeometry = Mo), + (t.ShapeGeometry = Mo), + (t.ShapePath = dc), + (t.ShapeUtils = po), + (t.ShortType = 1011), + (t.Skeleton = ia), + (t.SkeletonHelper = hh), + (t.SkinnedMesh = $s), + (t.SmoothShading = 2), + (t.Sphere = Jt), + (t.SphereBufferGeometry = So), + (t.SphereGeometry = So), + (t.Spherical = class { + constructor(t = 1, e = 0, n = 0) { + return (this.radius = t), (this.phi = e), (this.theta = n), this; + } + set(t, e, n) { + return (this.radius = t), (this.phi = e), (this.theta = n), this; + } + copy(t) { + return ( + (this.radius = t.radius), + (this.phi = t.phi), + (this.theta = t.theta), + this + ); + } + makeSafe() { + const t = 1e-6; + return (this.phi = Math.max(t, Math.min(Math.PI - t, this.phi))), this; + } + setFromVector3(t) { + return this.setFromCartesianCoords(t.x, t.y, t.z); + } + setFromCartesianCoords(t, e, n) { + return ( + (this.radius = Math.sqrt(t * t + e * e + n * n)), + 0 === this.radius + ? ((this.theta = 0), (this.phi = 0)) + : ((this.theta = Math.atan2(t, n)), + (this.phi = Math.acos(ht(e / this.radius, -1, 1)))), + this + ); + } + clone() { + return new this.constructor().copy(this); + } + }), + (t.SphericalHarmonics3 = ec), + (t.SplineCurve = Dl), + (t.SpotLight = Wl), + (t.SpotLightHelper = class extends Ce { + constructor(t, e) { + super(), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.color = e); + const n = new En(), + i = [ + 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, -1, 1, + ]; + for (let t = 0, e = 1, n = 32; t < n; t++, e++) { + const r = (t / n) * Math.PI * 2, + s = (e / n) * Math.PI * 2; + i.push(Math.cos(r), Math.sin(r), 1, Math.cos(s), Math.sin(s), 1); + } + n.setAttribute('position', new mn(i, 3)); + const r = new ca({ fog: !1, toneMapped: !1 }); + (this.cone = new ya(n, r)), this.add(this.cone), this.update(); + } + dispose() { + this.cone.geometry.dispose(), this.cone.material.dispose(); + } + update() { + this.light.updateMatrixWorld(); + const t = this.light.distance ? this.light.distance : 1e3, + e = t * Math.tan(this.light.angle); + this.cone.scale.set(e, e, t), + ah.setFromMatrixPosition(this.light.target.matrixWorld), + this.cone.lookAt(ah), + void 0 !== this.color + ? this.cone.material.color.set(this.color) + : this.cone.material.color.copy(this.light.color); + } + }), + (t.Sprite = Vs), + (t.SpriteMaterial = Rs), + (t.SrcAlphaFactor = 204), + (t.SrcAlphaSaturateFactor = 210), + (t.SrcColorFactor = 202), + (t.StaticCopyUsage = 35046), + (t.StaticDrawUsage = et), + (t.StaticReadUsage = 35045), + (t.StereoCamera = class { + constructor() { + (this.type = 'StereoCamera'), + (this.aspect = 1), + (this.eyeSep = 0.064), + (this.cameraL = new Kn()), + this.cameraL.layers.enable(1), + (this.cameraL.matrixAutoUpdate = !1), + (this.cameraR = new Kn()), + this.cameraR.layers.enable(2), + (this.cameraR.matrixAutoUpdate = !1), + (this._cache = { + focus: null, + fov: null, + aspect: null, + near: null, + far: null, + zoom: null, + eyeSep: null, + }); + } + update(t) { + const e = this._cache; + if ( + e.focus !== t.focus || + e.fov !== t.fov || + e.aspect !== t.aspect * this.aspect || + e.near !== t.near || + e.far !== t.far || + e.zoom !== t.zoom || + e.eyeSep !== this.eyeSep + ) { + (e.focus = t.focus), + (e.fov = t.fov), + (e.aspect = t.aspect * this.aspect), + (e.near = t.near), + (e.far = t.far), + (e.zoom = t.zoom), + (e.eyeSep = this.eyeSep); + const n = t.projectionMatrix.clone(), + i = e.eyeSep / 2, + r = (i * e.near) / e.focus, + s = (e.near * Math.tan(ot * e.fov * 0.5)) / e.zoom; + let a, o; + (wc.elements[12] = -i), + (_c.elements[12] = i), + (a = -s * e.aspect + r), + (o = s * e.aspect + r), + (n.elements[0] = (2 * e.near) / (o - a)), + (n.elements[8] = (o + a) / (o - a)), + this.cameraL.projectionMatrix.copy(n), + (a = -s * e.aspect - r), + (o = s * e.aspect - r), + (n.elements[0] = (2 * e.near) / (o - a)), + (n.elements[8] = (o + a) / (o - a)), + this.cameraR.projectionMatrix.copy(n); + } + this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(wc), + this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(_c); + } + }), + (t.StreamCopyUsage = 35042), + (t.StreamDrawUsage = 35040), + (t.StreamReadUsage = 35041), + (t.StringKeyframeTrack = tl), + (t.SubtractEquation = 101), + (t.SubtractiveBlending = 3), + (t.TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 }), + (t.TangentSpaceNormalMap = 0), + (t.TetrahedronBufferGeometry = To), + (t.TetrahedronGeometry = To), + (t.TextBufferGeometry = Eo), + (t.TextGeometry = Eo), + (t.Texture = bt), + (t.TextureLoader = pl), + (t.TorusBufferGeometry = Ao), + (t.TorusGeometry = Ao), + (t.TorusKnotBufferGeometry = Lo), + (t.TorusKnotGeometry = Lo), + (t.Triangle = je), + (t.TriangleFanDrawMode = 2), + (t.TriangleStripDrawMode = 1), + (t.TrianglesDrawMode = 0), + (t.TubeBufferGeometry = Ro), + (t.TubeGeometry = Ro), + (t.UVMapping = i), + (t.Uint16Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.' + ), + new hn(t, e) + ); + }), + (t.Uint16BufferAttribute = hn), + (t.Uint32Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.' + ), + new dn(t, e) + ); + }), + (t.Uint32BufferAttribute = dn), + (t.Uint8Attribute = function (t, e) { + return ( + console.warn( + 'THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.' + ), + new on(t, e) + ); + }), + (t.Uint8BufferAttribute = on), + (t.Uint8ClampedAttribute = function (t, e) { + return ( + console.warn( + 'THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.' + ), + new ln(t, e) + ); + }), + (t.Uint8ClampedBufferAttribute = ln), + (t.Uniform = Zc), + (t.UniformsLib = ui), + (t.UniformsUtils = Zn), + (t.UnsignedByteType = x), + (t.UnsignedInt248Type = S), + (t.UnsignedIntType = w), + (t.UnsignedShort4444Type = 1017), + (t.UnsignedShort5551Type = 1018), + (t.UnsignedShort565Type = 1019), + (t.UnsignedShortType = _), + (t.VSMShadowMap = 3), + (t.Vector2 = vt), + (t.Vector3 = Lt), + (t.Vector4 = St), + (t.VectorKeyframeTrack = el), + (t.Vertex = function (t, e, n) { + return ( + console.warn( + 'THREE.Vertex has been removed. Use THREE.Vector3 instead.' + ), + new Lt(t, e, n) + ); + }), + (t.VertexColors = 2), + (t.VideoTexture = Aa), + (t.WebGL1Renderer = bs), + (t.WebGLCubeRenderTarget = ni), + (t.WebGLMultisampleRenderTarget = Et), + (t.WebGLRenderTarget = Tt), + (t.WebGLRenderTargetCube = function (t, e, n) { + return ( + console.warn( + 'THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).' + ), + new ni(t, n) + ); + }), + (t.WebGLRenderer = ws), + (t.WebGLUtils = ms), + (t.WireframeGeometry = Co), + (t.WireframeHelper = function (t, e) { + return ( + console.warn( + 'THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.' + ), + new ya( + new Co(t.geometry), + new ca({ color: void 0 !== e ? e : 16777215 }) + ) + ); + }), + (t.WrapAroundEnding = W), + (t.XHRLoader = function (t) { + return ( + console.warn('THREE.XHRLoader has been renamed to THREE.FileLoader.'), + new cl(t) + ); + }), + (t.ZeroCurvatureEnding = k), + (t.ZeroFactor = 200), + (t.ZeroSlopeEnding = V), + (t.ZeroStencilOp = 0), + (t.sRGBEncoding = Y), + Object.defineProperty(t, '__esModule', { value: !0 }); +}); diff --git a/frontend/apps/crawlab/src/main.ts b/frontend/apps/crawlab/src/main.ts new file mode 100644 index 00000000..c63091ef --- /dev/null +++ b/frontend/apps/crawlab/src/main.ts @@ -0,0 +1,7 @@ +import 'crawlab-ui/dist/style.css'; +import 'vue'; +import {createApp} from 'crawlab-ui'; + +(async function () { + await createApp(); +})(); diff --git a/frontend/apps/crawlab/src/shims-vue.d.ts b/frontend/apps/crawlab/src/shims-vue.d.ts new file mode 100644 index 00000000..ebcd61d0 --- /dev/null +++ b/frontend/apps/crawlab/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +declare module '*.scss'; +declare module '*.vue' { + import {DefineComponent} from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/frontend/apps/crawlab/tsconfig.json b/frontend/apps/crawlab/tsconfig.json new file mode 100644 index 00000000..3b5835eb --- /dev/null +++ b/frontend/apps/crawlab/tsconfig.json @@ -0,0 +1,41 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "importHelpers": true, + "moduleResolution": "node", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ], + "typeRoots": [ + "src/interfaces" + ] + }, + "include": [ + "src/shims-vue.d.ts", + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "__test__/**/*.spec.ts" + ], + "exclude": [ + "node_modules", + "src/**/*.js" + ] +} diff --git a/frontend/apps/crawlab/vite.config.ts b/frontend/apps/crawlab/vite.config.ts new file mode 100644 index 00000000..180ffd21 --- /dev/null +++ b/frontend/apps/crawlab/vite.config.ts @@ -0,0 +1,46 @@ +import { resolve } from 'path'; +import { defineConfig, UserConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import dynamicImport from 'vite-plugin-dynamic-import'; +import { visualizer } from 'rollup-plugin-visualizer'; + +export default defineConfig(({ mode }) => { + const config: UserConfig = { + build: { + rollupOptions: { + output: { + manualChunks(id, meta) { + if (id.includes('node_modules')) { + const arr = id.toString().split('node_modules/'); + const modulePath = arr[arr.length - 1]; + return modulePath?.split('/')?.[0]; + } + if (id.includes('three.min.js')) { + return 'three'; + } + }, + }, + }, + }, + optimizeDeps: { + include: ['element-plus', 'axios'], + }, + resolve: { + dedupe: ['vue', 'vue-router', 'vuex', 'axios', 'element-plus'], + alias: { + '@': resolve(__dirname, 'src'), + }, + extensions: ['.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.scss'], + }, + plugins: [vue(), dynamicImport()], + server: { + cors: true, + }, + }; + + if (mode === 'analyze') { + config.plugins.push(visualizer({ open: true, gzipSize: true })); + } + + return config; +}); diff --git a/frontend/babel.config.js b/frontend/babel.config.js deleted file mode 100644 index ce6ed5cf..00000000 --- a/frontend/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset', - '@babel/preset-typescript' - ] -} diff --git a/frontend/index.html b/frontend/index.html deleted file mode 100644 index 09d81161..00000000 --- a/frontend/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - Crawlab - - - - - - - -
- -
- - - - diff --git a/frontend/jest.config.ts b/frontend/jest.config.ts deleted file mode 100644 index 1ceea513..00000000 --- a/frontend/jest.config.ts +++ /dev/null @@ -1,194 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/en/configuration.html - */ - -export default { - // All imported modules in your tests should be mocked automatically - // automock: false, - - // Stop running tests after `n` failures - // bail: 0, - - // The directory where Jest should store its cached dependency information - // cacheDirectory: "/private/var/folders/r0/jl9gx1m97tb2qpggj961z3n40000gn/T/jest_dx", - - // Automatically clear mock calls and instances between every test - clearMocks: true, - - // Indicates whether the coverage information should be collected while executing the test - // collectCoverage: false, - - // An array of glob patterns indicating a set of files for which coverage information should be collected - // collectCoverageFrom: undefined, - - // The directory where Jest should output its coverage files - coverageDirectory: 'coverage', - - // An array of regexp pattern strings used to skip coverage collection - // coveragePathIgnorePatterns: [ - // "/node_modules/" - // ], - - // Indicates which provider should be used to instrument code for coverage - coverageProvider: 'v8', - - // A list of reporter names that Jest uses when writing coverage reports - // coverageReporters: [ - // "json", - // "text", - // "lcov", - // "clover" - // ], - - // An object that configures minimum threshold enforcement for coverage results - // coverageThreshold: undefined, - - // A path to a custom dependency extractor - // dependencyExtractor: undefined, - - // Make calling deprecated APIs throw helpful error messages - // errorOnDeprecated: false, - - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], - - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: undefined, - - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: undefined, - - // A set of global variables that need to be available in all test environments - // globals: {}, - - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: "50%", - - // An array of directory names to be searched recursively up from the requiring module's location - // moduleDirectories: [ - // "node_modules" - // ], - - // An array of file extensions your modules use - // moduleFileExtensions: [ - // "js", - // "json", - // "jsx", - // "ts", - // "tsx", - // "node" - // ], - - // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module - // moduleNameMapper: {}, - - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], - - // Activates notifications for test results - // notify: false, - - // An enum that specifies notification mode. Requires { notify: true } - // notifyMode: "failure-change", - - // A preset that is used as a base for Jest's configuration - // preset: undefined, - - // Run tests from one or more projects - // projects: undefined, - - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, - - // Automatically reset mock state between every test - // resetMocks: false, - - // Reset the module registry before running each individual test - // resetModules: false, - - // A path to a custom resolver - // resolver: undefined, - - // Automatically restore mock state between every test - // restoreMocks: false, - - // The root directory that Jest should scan for tests and modules within - // rootDir: undefined, - - // A list of paths to directories that Jest should use to search for files in - // roots: [ - // "" - // ], - - // Allows you to use a custom runner instead of Jest's default test runner - // runner: "jest-runner", - - // The paths to modules that run some code to configure or set up the testing environment before each test - // setupFiles: [], - - // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], - - // The number of seconds after which a test is considered as slow and reported as such in the results. - // slowTestThreshold: 5, - - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], - - // The test environment that will be used for testing - testEnvironment: 'node', - - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, - - // Adds a location field to test results - // testLocationInResults: false, - - // The glob patterns Jest uses to detect test files - // testMatch: [ - // "**/__tests__/**/*.[jt]s?(x)", - // "**/?(*.)+(spec|test).[tj]s?(x)" - // ], - - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - // testPathIgnorePatterns: [ - // "/node_modules/" - // ], - - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], - - // This option allows the use of a custom results processor - // testResultsProcessor: undefined, - - // This option allows use of a custom test runner - // testRunner: "jasmine2", - - // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href - // testURL: "http://localhost", - - // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" - // timers: "real", - - // A map from regular expressions to paths to transformers - // transform: undefined, - - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - // transformIgnorePatterns: [ - // "/node_modules/", - // "\\.pnp\\.[^\\/]+$" - // ], - - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, - - // Indicates whether each individual test should be reported during the run - // verbose: undefined, - - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], - - // Whether to use watchman for file crawling - // watchman: true, -}; diff --git a/frontend/package.json b/frontend/package.json index 9ecf7da3..d3a3644c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,17 +1,25 @@ { - "name": "@crawlab/app", + "name": "crawlab", "version": "0.7.0", + "workspaces": [ + "packages/*", + "apps/*" + ], "scripts": { - "serve": "vite", - "serve:dist": "serve dist", - "build": "vite build", - "build:docker": "vite build --mode docker" + "dev": "turbo run dev", + "test": "turbo run test", + "build": "turbo run build" }, - "author": { - "name": "Marvin Zhang", - "email": "tikazyq@163.com" + "devDependencies": { + "@types/node": "^20.14.8", + "@vue/language-server": "^2.0.24", + "pnpm": "^9.5.0", + "turbo": "^2.0.6", + "typescript": "^5", + "vite": "^5.4.6", + "vue-tsc": "^2.0.24" }, - "license": "BSD-3-Clause", + "packageManager": "pnpm@9.4.0", "dependencies": { "@element-plus/icons-vue": "^2.3.1", "@fortawesome/fontawesome-common-types": "^6.5.2", @@ -30,11 +38,8 @@ "@types/url-join": "^4.0.3", "async-validator": "^4.2.5", "atom-material-icons": "^3.0.0", - "axios": "^1.7.2", - "chart.js": "^4.4.3", - "chartjs-adapter-date-fns": "^3.0.0", + "axios": "^1.7.4", "core-js": "^3.37.1", - "crawlab-ui": "0.7.0-rc5", "crawlab-vue3-dropzone": "3.0.3", "cron-parser": "^4.9.0", "cronstrue": "^2.50.0", @@ -57,18 +62,5 @@ "vue-i18n": "9.13.1", "vue-router": "4.4.0", "vuex": "^4.1.0" - }, - "devDependencies": { - "@types/node": "^18.11.10", - "@vitejs/plugin-vue": "^3.2.0", - "@vue/compiler-sfc": "^3.2.45", - "rollup-plugin-external-globals": "^0.8.0", - "rollup-plugin-visualizer": "^5.9.2", - "typescript": "^4.6.4", - "vite": "^3.2.4", - "vite-aliases": "^0.9.7", - "vite-plugin-dynamic-import": "^1.2.4", - "vite-plugin-externalize-deps": "^0.7.0", - "vue-tsc": "^1.0.9" } -} \ No newline at end of file +} diff --git a/frontend/packages/crawlab-ui b/frontend/packages/crawlab-ui new file mode 160000 index 00000000..96bbe3bd --- /dev/null +++ b/frontend/packages/crawlab-ui @@ -0,0 +1 @@ +Subproject commit 96bbe3bdd948575268aa52644c2aab4221e2b022 diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index e977a6c7..04e6e433 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@element-plus/icons-vue': specifier: ^2.3.1 - version: 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 2.3.1(vue@3.5.12(typescript@5.6.3)) '@fortawesome/fontawesome-common-types': specifier: ^6.5.2 version: 6.6.0 @@ -28,7 +28,7 @@ importers: version: 6.6.0 '@fortawesome/vue-fontawesome': specifier: ^3.0.8 - version: 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@5.6.3)) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -60,23 +60,14 @@ importers: specifier: ^3.0.0 version: 3.0.0 axios: - specifier: ^1.7.2 + specifier: ^1.7.4 version: 1.7.7 - chart.js: - specifier: ^4.4.3 - version: 4.4.5 - chartjs-adapter-date-fns: - specifier: ^3.0.0 - version: 3.0.0(chart.js@4.4.5)(date-fns@4.1.0) core-js: specifier: ^3.37.1 version: 3.38.1 - crawlab-ui: - specifier: 0.7.0-rc3 - version: 0.7.0-rc3(dlwfpvqjxhvrevoazxvsg7egqu) crawlab-vue3-dropzone: specifier: 3.0.3 - version: 3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 3.0.3(vue@3.5.12(typescript@5.6.3)) cron-parser: specifier: ^4.9.0 version: 4.9.0 @@ -88,7 +79,7 @@ importers: version: 1.11.13 element-plus: specifier: ^2.7.6 - version: 2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 2.8.5(vue@3.5.12(typescript@5.6.3)) font-awesome: specifier: ^4.7.0 version: 4.7.0 @@ -127,56 +118,386 @@ importers: version: 4.0.1 vue: specifier: ^3.4 - version: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + version: 3.5.12(typescript@5.6.3) vue-clipboard3: specifier: ^2.0.0 version: 2.0.0 vue-i18n: specifier: 9.13.1 - version: 9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 9.13.1(vue@3.5.12(typescript@5.6.3)) vue-router: specifier: 4.4.0 - version: 4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 4.4.0(vue@3.5.12(typescript@5.6.3)) vuex: specifier: ^4.1.0 - version: 4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + version: 4.1.0(vue@3.5.12(typescript@5.6.3)) devDependencies: '@types/node': - specifier: ^18.11.10 - version: https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz + specifier: ^20.14.8 + version: 20.17.0 + '@vue/language-server': + specifier: ^2.0.24 + version: 2.1.6(typescript@5.6.3) + pnpm: + specifier: ^9.5.0 + version: 9.12.2 + turbo: + specifier: ^2.0.6 + version: 2.2.3 + typescript: + specifier: ^5 + version: 5.6.3 + vite: + specifier: ^5.4.6 + version: 5.4.10(@types/node@20.17.0)(sass@1.80.1) + vue-tsc: + specifier: ^2.0.24 + version: 2.1.6(typescript@5.6.3) + + apps/crawlab: + dependencies: + crawlab-ui: + specifier: workspace:crawlab-ui + version: link:../../packages/crawlab-ui + devDependencies: + '@types/node': + specifier: ^20.14.8 + version: 20.17.0 '@vitejs/plugin-vue': - specifier: ^3.2.0 - version: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1))(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + specifier: ^5.0.5 + version: 5.0.5(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1))(vue@3.5.12(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ^3.2.45 - version: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz + version: 3.5.12 + pnpm: + specifier: ^9 + version: 9.12.2 rollup-plugin-external-globals: - specifier: ^0.8.0 - version: 0.8.0(rollup@3.26.2) + specifier: ^0.10.0 + version: 0.10.0(rollup@4.24.0) rollup-plugin-visualizer: - specifier: ^5.9.2 - version: 5.9.2(rollup@3.26.2) + specifier: ^5.12.0 + version: 5.12.0(rollup@4.24.0) + sass: + specifier: ^1.56.1 + version: 1.80.1 typescript: - specifier: ^4.6.4 - version: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz + specifier: ^5 + version: 5.6.3 vite: - specifier: ^3.2.4 - version: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + specifier: ^5.4.6 + version: 5.4.10(@types/node@20.17.0)(sass@1.80.1) vite-aliases: - specifier: ^0.9.7 - version: https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + specifier: ^0.11.7 + version: 0.11.7(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1)) vite-plugin-dynamic-import: - specifier: ^1.2.4 - version: https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz + specifier: ^1.5.0 + version: 1.6.0 vite-plugin-externalize-deps: - specifier: ^0.7.0 - version: 0.7.0(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1)) + specifier: ^0.8.0 + version: 0.8.0(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1)) vue-tsc: - specifier: ^1.0.9 - version: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + specifier: ^2.0.22 + version: 2.1.6(typescript@5.6.3) + + packages/crawlab-ui: + dependencies: + '@element-plus/icons-vue': + specifier: ^2.3.1 + version: 2.3.1(vue@3.5.12(typescript@5.6.3)) + '@fortawesome/fontawesome-common-types': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/fontawesome-svg-core': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-brands-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-regular-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/free-solid-svg-icons': + specifier: ^6.5.2 + version: 6.6.0 + '@fortawesome/vue-fontawesome': + specifier: ^3.0.8 + version: 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@5.6.3)) + '@lexical/history': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/rich-text': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/text': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/utils': + specifier: ^0.16.1 + version: 0.16.1 + '@popperjs/core': + specifier: ^2.11.8 + version: 2.11.8 + '@types/getos': + specifier: ^3.0.4 + version: 3.0.4 + '@types/humanize-duration': + specifier: ^3.27.4 + version: 3.27.4 + '@types/javascript-time-ago': + specifier: ^2.0.8 + version: 2.0.8 + '@types/lodash': + specifier: ^4.17.6 + version: 4.17.10 + '@types/md5': + specifier: ^2.3.5 + version: 2.3.5 + '@types/pinyin': + specifier: ^2.10.2 + version: 2.10.2 + '@types/showdown': + specifier: ^2.0.6 + version: 2.0.6 + '@types/url-join': + specifier: ^4.0.3 + version: 4.0.3 + async-validator: + specifier: ^4.2.5 + version: 4.2.5 + atom-material-icons: + specifier: ^3.0.0 + version: 3.0.0 + axios: + specifier: ^1.7.2 + version: 1.7.7 + chart.js: + specifier: ^4.4.3 + version: 4.4.5 + clipboard: + specifier: ^2.0.11 + version: 2.0.11 + core-js: + specifier: ^3.37.1 + version: 3.38.1 + crawlab-vue3-dropzone: + specifier: 3.0.3 + version: 3.0.3(vue@3.5.12(typescript@5.6.3)) + cron-parser: + specifier: ^4.9.0 + version: 4.9.0 + cronstrue: + specifier: ^2.50.0 + version: 2.50.0 + dayjs: + specifier: ^1.11.11 + version: 1.11.13 + element-plus: + specifier: ^2.7.6 + version: 2.8.5(vue@3.5.12(typescript@5.6.3)) + font-awesome: + specifier: ^4.7.0 + version: 4.7.0 + humanize-duration: + specifier: ^3.32.1 + version: 3.32.1 + javascript-time-ago: + specifier: ^2.5.10 + version: 2.5.11 + json-editor-vue: + specifier: ^0.17.0 + version: 0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@5.6.3)) + lexical: + specifier: ^0.16.1 + version: 0.16.1 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + md5: + specifier: ^2.3.0 + version: 2.3.0 + monaco-editor: + specifier: ^0.50.0 + version: 0.50.0 + normalize.css: + specifier: ^8.0.1 + version: 8.0.1 + os-name: + specifier: ^5.0.1 + version: 5.0.1 + pinyin: + specifier: ^2.10.2 + version: 2.11.2 + point-cluster: + specifier: ^3.1.8 + version: 3.1.8 + showdown: + specifier: ^2.1.0 + version: 2.1.0 + three: + specifier: ^0.166.1 + version: 0.166.1 + tiny-invariant: + specifier: ^1.3.3 + version: 1.3.3 + url-join: + specifier: ^4.0.1 + version: 4.0.1 + url-regex: + specifier: ^5.0.0 + version: 5.0.0 + uuid: + specifier: ^10.0.0 + version: 10.0.0 + vue: + specifier: ^3.4 + version: 3.5.12(typescript@5.6.3) + vue-clipboard3: + specifier: ^2.0.0 + version: 2.0.0 + vue-i18n: + specifier: 9.13.1 + version: 9.13.1(vue@3.5.12(typescript@5.6.3)) + vue-router: + specifier: ^4.4.0 + version: 4.4.0(vue@3.5.12(typescript@5.6.3)) + vuex: + specifier: ^4.1.0 + version: 4.1.0(vue@3.5.12(typescript@5.6.3)) + devDependencies: + '@lexical/code': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/html': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/link': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/list': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/markdown': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/selection': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/table': + specifier: ^0.16.1 + version: 0.16.1 + '@types/jest': + specifier: ^29.5.12 + version: 29.5.14 + '@types/node': + specifier: ^20.14.9 + version: 20.17.0 + '@types/node-os-utils': + specifier: ^1.3.4 + version: 1.3.4 + '@types/three': + specifier: ^0.166.0 + version: 0.166.0 + '@vitejs/plugin-vue': + specifier: 5.0.5 + version: 5.0.5(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1))(vue@3.5.12(typescript@5.6.3)) + '@vitejs/plugin-vue-jsx': + specifier: ^4.0.0 + version: 4.0.1(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1))(vue@3.5.12(typescript@5.6.3)) + '@vue/compiler-sfc': + specifier: ^3.4.31 + version: 3.5.12 + autoprefixer: + specifier: ^10.4.19 + version: 10.4.20(postcss@8.4.47) + base64-img: + specifier: ^1.0.4 + version: 1.0.4 + chalk: + specifier: ^5.3.0 + version: 5.3.0 + chartjs-adapter-date-fns: + specifier: ^3.0.0 + version: 3.0.0(chart.js@4.4.5)(date-fns@4.1.0) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + esno: + specifier: ^4.7.0 + version: 4.8.0 + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + globals: + specifier: ^15.8.0 + version: 15.11.0 + increase-memory-limit: + specifier: ^1.0.7 + version: 1.0.7 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.17.0) + klaw-sync: + specifier: ^6.0.0 + version: 6.0.0 + mitt: + specifier: ^3.0.1 + version: 3.0.1 + postcss: + specifier: ^8.4.39 + version: 8.4.47 + prettier: + specifier: ^3.3.2 + version: 3.3.3 + prismjs: + specifier: ^1.29.0 + version: 1.29.0 + rd: + specifier: ^2.0.1 + version: 2.0.1 + rollup-plugin-external-globals: + specifier: ^0.10.0 + version: 0.10.0(rollup@4.24.0) + rollup-plugin-visualizer: + specifier: ^5.12.0 + version: 5.12.0(rollup@4.24.0) + sass: + specifier: ^1.77.6 + version: 1.80.1 + serve: + specifier: ^14.2.3 + version: 14.2.4 + tailwindcss: + specifier: ^3.4.4 + version: 3.4.14 + typescript: + specifier: ^5.5.3 + version: 5.6.3 + vite: + specifier: ^5.3.2 + version: 5.4.10(@types/node@20.17.0)(sass@1.80.1) + vite-plugin-dynamic-import: + specifier: ^1.5.0 + version: 1.6.0 + vite-svg-loader: + specifier: ^5.1.0 + version: 5.1.0(vue@3.5.12(typescript@5.6.3)) + vue-chartjs: + specifier: ^5.3.1 + version: 5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@5.6.3)) + vue-tsc: + specifier: ^2.0.24 + version: 2.1.6(typescript@5.6.3) packages: + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -185,22 +506,98 @@ packages: resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} engines: {node: '>=4'} + '@babel/code-frame@7.25.9': + resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.9': + resolution: {integrity: sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.9': + resolution: {integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.9': + resolution: {integrity: sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.9': + resolution: {integrity: sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.25.9': + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.25.9': + resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.7': resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz': - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} - version: 7.19.4 + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.25.7': resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz': - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} - version: 7.19.1 + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.9': + resolution: {integrity: sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.9': + resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} '@babel/parser@7.25.8': @@ -208,21 +605,127 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz': - resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz} - version: 7.20.5 + '@babel/parser@7.25.9': + resolution: {integrity: sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.25.9': + resolution: {integrity: sha512-u3EN9ub8LyYvgTnrgp8gboElouayiwPdnM7x5tcnW3iSt09/lQYPwMNK40I9IUxo7QOZhAsPHCmmuO7EPdruqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.25.9': + resolution: {integrity: sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.25.8': resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} - '@babel/types@https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz': - resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz} - version: 7.20.5 + '@babel/types@7.25.9': + resolution: {integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==} engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@codemirror/autocomplete@6.18.1': resolution: {integrity: sha512-iWHdj/B1ethnHRTwZj+C1obmmuCzquH29EbcKr0qIjA9NfDeBDJ7vs+WOHsFeLeflE4o+dHfYndJloMKHUkWUA==} peerDependencies: @@ -258,22 +761,312 @@ packages: '@element-plus/icons-vue@2.3.1': resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} - version: 2.3.1 peerDependencies: vue: ^3.2.0 - '@esbuild/android-arm@0.15.16': - resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==} + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/linux-loong64@0.15.16': - resolution: {integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@floating-ui/core@1.6.8': resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} @@ -305,7 +1098,6 @@ packages: '@fortawesome/vue-fontawesome@3.0.8': resolution: {integrity: sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==} - version: 3.0.8 peerDependencies: '@fortawesome/fontawesome-svg-core': ~1 || ~6 vue: '>= 3.0.0 < 4' @@ -322,6 +1114,87 @@ packages: resolution: {integrity: sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==} engines: {node: '>= 16'} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@johnsoncodehk/pug-beautify@0.2.2': + resolution: {integrity: sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -334,9 +1207,6 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -414,19 +1284,16 @@ packages: resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true - '@nodelib/fs.scandir@https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} - version: 2.1.5 + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - '@nodelib/fs.stat@https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} - version: 2.0.5 + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - '@nodelib/fs.walk@https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} - version: 1.2.8 + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} '@parcel/watcher-android-arm64@2.4.1': @@ -505,6 +1372,10 @@ packages: resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@polka/url@0.5.0': resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} @@ -521,15 +1392,104 @@ packages: '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 - '@rollup/pluginutils@5.0.2': - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sphinxxxx/color-conversion@2.2.2': resolution: {integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==} @@ -543,6 +1503,18 @@ packages: '@tweenjs/tween.js@23.1.3': resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/estree@1.0.0': resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} @@ -552,12 +1524,27 @@ packages: '@types/getos@3.0.4': resolution: {integrity: sha512-OsNVsuGEBd5QoeXTgjPmA89a465hjQithLMImsiJlIi0aYP8axKWtWrsmEMfm50w6EL2oRzCz+cLkZmp9/LfZw==} + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/humanize-duration@3.27.4': resolution: {integrity: sha512-yaf7kan2Sq0goxpbcwTQ+8E9RP6HutFBPv74T/IA/ojcHKhuKVlk2YFYyHhWZeLvZPzzLE3aatuQB4h0iqyyUA==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/javascript-time-ago@2.0.8': resolution: {integrity: sha512-X77q3xUzWVn0qohgurKE1G5NiXZjee8VbLqaukW/HXVkz7bdCFJgOPQ3JVB4IkrDhMS4CviFTmpZuNVg0i2QFA==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} @@ -567,9 +1554,14 @@ packages: '@types/md5@2.3.5': resolution: {integrity: sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==} - '@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz': - resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==, tarball: https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz} - version: 18.11.10 + '@types/node-os-utils@1.3.4': + resolution: {integrity: sha512-BCUYrbdoO4FUbx6MB9atLNFnkxdliFaxdiTJMIPPiecXIApc5zf4NIqV5G1jWv/ReZvtYyHLs40RkBjHX+vykA==} + + '@types/node@10.17.60': + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + + '@types/node@20.17.0': + resolution: {integrity: sha512-a7zRo0f0eLo9K5X9Wp5cAqTUNGzuFLDG2R7C4HY2BhcMAsxgSPuRvAC1ZB6QkuUQXf0YZAgfOX2ZyrBa2n4nHQ==} '@types/pinyin@2.10.2': resolution: {integrity: sha512-jLzlRkaLRLg+lgYPjOuP3HX2cozUkhXls5GTXopsKuKJ9lDGlIAb88OoIztH6TbNUsoJnl/7e/kjaumA5IKKJg==} @@ -577,6 +1569,9 @@ packages: '@types/showdown@2.0.6': resolution: {integrity: sha512-pTvD/0CIeqe4x23+YJWlX2gArHa8G0J0Oh6GKaVXV7TAeickpkkZiNOgFcFcmLQ5lB/K0qBJL1FtRYltBfbGCQ==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} @@ -592,61 +1587,80 @@ packages: '@types/webxr@0.5.20': resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} - '@vitejs/plugin-vue@https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz': - resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz} - version: 3.2.0 - engines: {node: ^14.18.0 || >=16.0.0} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@vitejs/plugin-vue-jsx@4.0.1': + resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^3.0.0 + vite: ^5.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.0.5': + resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 vue: ^3.2.25 - '@volar/language-core@https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz': - resolution: {integrity: sha512-YwUYKxIyDc+Fq3kQ6BGGfkrKCG5JzE2Yr6vMxrxEXW2rg/gsq3JgMk/4sI8ybRsaTirhCB4V8+AIVYsvcRxgig==, tarball: https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz} - version: 1.0.11 + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} - '@volar/source-map@https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz': - resolution: {integrity: sha512-tkuV9MD+OuiZfHA0qZXrPdW6F7TvnpnuTan6Qe7UGUs9+sflezlMJdjaYdGgQObfP+06pcT1E3xdkOoi08ZyyQ==, tarball: https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz} - version: 1.0.11 + '@volar/language-server@2.4.6': + resolution: {integrity: sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==} - '@volar/typescript@https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz': - resolution: {integrity: sha512-mq7wDDAs0Eb43jev2FxbowuiwWqvL3kb+tar1we8VQbdabpyQ5dmbWPwo/IglevMmW3SKo1Et+6rqAeZpXNnPQ==, tarball: https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz} - version: 1.0.11 + '@volar/language-service@2.4.6': + resolution: {integrity: sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==} - '@volar/vue-language-core@https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz': - resolution: {integrity: sha512-A3ODs0/ua7BcpSSnE7KtO8bzWsYsbOJRyW2Q/2uktxlfHj8srln3JdgK/mNlIgfnWtACbE5K+EfMJOgJKv864A==, tarball: https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz} - version: 1.0.11 + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} - '@volar/vue-typescript@https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz': - resolution: {integrity: sha512-jlnFPvBcTyPiAbGlgjhKK7fp3Q+Z7Z5eU1NTbTSS0lQC8Gog3sh2UxLAFG5Voe1gHIxasoOEPXzMR0CWF4bKbA==, tarball: https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz} - version: 1.0.11 + '@volar/test-utils@2.4.6': + resolution: {integrity: sha512-QIW5BeYvsY4QPRCaRp6ewb/L9i+NZFJTY1fYsbQe4Hi4k7Zqs+Mu4Hz21nbGWTWIF2wHeX6gGMWfJjhR7jFtvw==} + + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@vue/babel-helper-vue-transform-on@1.2.5': + resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} + + '@vue/babel-plugin-jsx@1.2.5': + resolution: {integrity: sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.2.5': + resolution: {integrity: sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==} + peerDependencies: + '@babel/core': ^7.0.0-0 '@vue/compiler-core@3.5.12': resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - '@vue/compiler-core@https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz': - resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz} - version: 3.2.45 - '@vue/compiler-dom@3.5.12': resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - '@vue/compiler-dom@https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz': - resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz} - version: 3.2.45 - '@vue/compiler-sfc@3.5.12': resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} - '@vue/compiler-sfc@https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz': - resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz} - version: 3.2.45 - '@vue/compiler-ssr@3.5.12': resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - '@vue/compiler-ssr@https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz': - resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz} - version: 3.2.45 + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} '@vue/devtools-api@6.4.5': resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} @@ -654,17 +1668,24 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/reactivity-transform@https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz': - resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz} - version: 3.2.45 + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-server@2.1.6': + resolution: {integrity: sha512-xRtugvuwFs9KqJ5JMmO9q2b5IrhNLaj/+iqrnBEfWPFRCsywzFABrZFgI7huqsndSdO5uiBkkOkJVcruB0ULFw==} + hasBin: true + + '@vue/language-service@2.1.6': + resolution: {integrity: sha512-FZ3Fn0MslS/fdBm0U2A/JUmq0HBtvkm/6OcHfw23mE7olm0yCAOV0i8xKqqbrwZeSDoEfk48zzTSEE9Zj6RmBg==} '@vue/reactivity@3.5.12': resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} - '@vue/reactivity@https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz': - resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==, tarball: https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz} - version: 3.2.45 - '@vue/runtime-core@3.5.12': resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} @@ -673,27 +1694,26 @@ packages: '@vue/server-renderer@3.5.12': resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} - version: 3.5.12 peerDependencies: vue: 3.5.12 '@vue/shared@3.5.12': resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} - '@vue/shared@https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz': - resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz} - version: 3.2.45 + '@vue/typescript-plugin@2.1.6': + resolution: {integrity: sha512-FGwinnIuwZPELbRPZmtA+G4YyLT+lxjGSZQpNvgrzvy3MZBJZzm4UU87DIA7Lb2xbbYpTMAM6P6TAWwioCNZIg==} '@vueuse/core@9.13.0': resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} - version: 9.13.0 '@vueuse/metadata@9.13.0': resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} '@vueuse/shared@9.13.0': resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} - version: 9.13.0 + + '@zeit/schemas@2.36.0': + resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -718,6 +1738,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.13.0: resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} engines: {node: '>=0.4.0'} @@ -727,13 +1752,30 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + ajax-request@1.2.3: + resolution: {integrity: sha512-1o4a9TxDmET7NmU8eIeIsV8t1SD7dooKT7wVFgoKDJC++zljg0vLhcPsoBA3Za2bD5A5LJJBMlGoglsTHa517w==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -742,19 +1784,35 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - anymatch@https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} - version: 3.1.3 + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} deprecated: This package is no longer supported. + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -768,9 +1826,8 @@ packages: array-normalize@1.1.4: resolution: {integrity: sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==} - array-timsort@https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==, tarball: https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz} - version: 1.0.3 + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} @@ -785,6 +1842,13 @@ packages: resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} engines: {node: '>=4'} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -792,16 +1856,39 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} - version: 1.0.2 + base64-img@1.0.4: + resolution: {integrity: sha512-5RVat9C4bkht6kf4nrQy5gDhiLPs6Iq2sptiR8C6DV0yQ+oeo+oydDFEUgbBAW2yTwQNkthtOlAPG50gjUHaTA==} - binary-extensions@https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} - version: 2.2.0 + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} binary-search-bounds@2.0.5: @@ -810,21 +1897,27 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boxen@7.0.0: + resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} + engines: {node: '>=14.16'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} - version: 2.0.1 + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - braces@https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} - version: 3.0.2 - engines: {node: '>=8'} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} buble@0.19.8: resolution: {integrity: sha512-IoGZzrUTY5fKXVkgGHw3QeXFMUNBFv+9l8a4QJKG1JhG3nCMHTdEX1DCOg8568E2Q9qvAQIiSokv6Jsgx8p2cA==} @@ -834,14 +1927,67 @@ packages: resolution: {integrity: sha512-vp3NHmaQVoKaKWvi15FTMinPNjfp+47+/kFJ9ifezdMF/CBLArCxDVUh+FQE3qRxCRj1qyjJqilTBHHqlM8MaQ==} engines: {node: '>=4.0.0'} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + caniuse-lite@1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + + chalk-template@0.4.0: + resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + engines: {node: '>=12'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-parser@2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} @@ -855,29 +2001,51 @@ packages: chart.js: '>=2.8.0' date-fns: '>=2.0.0' + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + chokidar@4.0.1: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} - chokidar@https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} - version: 3.5.3 - engines: {node: '>= 8.10.0'} - chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + clamp@1.0.1: resolution: {integrity: sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==} + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + clipboard@2.0.11: resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==} + clipboardy@3.0.0: + resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} @@ -888,6 +2056,9 @@ packages: '@codemirror/state': ^6.2.1 '@codemirror/view': ^6.17.1 + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -913,6 +2084,10 @@ packages: resolution: {integrity: sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA==} engines: {node: '>= 0.6.x'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -921,9 +2096,8 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-json@https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==, tarball: https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz} - version: 4.2.3 + comment-json@4.2.5: + resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} engines: {node: '>= 6'} compressible@2.0.18: @@ -934,12 +2108,18 @@ packages: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - consola@https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, tarball: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz} - version: 2.15.3 + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} console-clear@1.1.1: resolution: {integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==} @@ -948,88 +2128,29 @@ packages: console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + core-js@3.38.1: resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} - core-util-is@https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} - version: 1.0.3 - - crawlab-ui@0.7.0-rc3: - resolution: {integrity: sha512-WF7DLjrXa0J3uY/u7iTtZyqbhCIHZaW2K5dWHMj28GCaT69uvPRR32AfZPWag5sarqXdOmKNSOt5NidAPKqKpQ==} - peerDependencies: - '@element-plus/icons-vue': ^2.3.1 - '@fortawesome/fontawesome-common-types': ^6.5.2 - '@fortawesome/fontawesome-svg-core': ^6.5.2 - '@fortawesome/free-brands-svg-icons': ^6.5.2 - '@fortawesome/free-regular-svg-icons': ^6.5.2 - '@fortawesome/free-solid-svg-icons': ^6.5.2 - '@fortawesome/vue-fontawesome': ^3.0.8 - '@lexical/code': ^0.16.1 - '@lexical/history': ^0.16.1 - '@lexical/html': ^0.16.1 - '@lexical/link': ^0.16.1 - '@lexical/list': ^0.16.1 - '@lexical/markdown': ^0.16.1 - '@lexical/rich-text': ^0.16.1 - '@lexical/selection': ^0.16.1 - '@lexical/table': ^0.16.1 - '@lexical/text': ^0.16.1 - '@lexical/utils': ^0.16.1 - '@popperjs/core': ^2.11.8 - '@types/getos': ^3.0.4 - '@types/humanize-duration': ^3.27.4 - '@types/javascript-time-ago': ^2.0.8 - '@types/lodash': ^4.17.6 - '@types/md5': ^2.3.5 - '@types/pinyin': ^2.10.2 - '@types/showdown': ^2.0.6 - '@types/three': ^0.166.0 - '@types/url-join': ^4.0.3 - async-validator: ^4.2.5 - atom-material-icons: ^3.0.0 - axios: ^1.7.2 - chart.js: ^4.4.3 - chartjs-adapter-date-fns: ^3.0.0 - clipboard: ^2.0.11 - core-js: ^3.37.1 - crawlab-vue3-dropzone: 3.0.3 - cron-parser: ^4.9.0 - cronstrue: ^2.50.0 - dayjs: ^1.11.11 - element-plus: ^2.7.6 - font-awesome: ^4.7.0 - humanize-duration: ^3.32.1 - javascript-time-ago: ^2.5.10 - lexical: ^0.16.1 - lodash: ^4.17.21 - md5: ^2.3.0 - mitt: ^3.0.1 - monaco-editor: ^0.50.0 - normalize.css: ^8.0.1 - os-name: ^5.0.1 - pinyin: ^2.10.2 - point-cluster: ^3.1.8 - prismjs: ^1.29.0 - showdown: ^2.1.0 - three: ^0.166.1 - tiny-invariant: ^1.3.3 - url-join: ^4.0.1 - url-regex: ^5.0.0 - vite-svg-loader: ^5.1.0 - vue: ^3.4 - vue-chartjs: ^5.3.1 - vue-clipboard3: ^2.0.0 - vue-i18n: 9.13.1 - vue-router: ^4.4.0 - vuex: ^4.1.0 + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} crawlab-vue3-dropzone@3.0.3: resolution: {integrity: sha512-s/GHSTteFqJcMk14Xkp1imwEyrOCa+uwwH1eCsTAxVzaYocpiDpbDjQ3u3vrMyws9InsqqgtmAJhy2vGHEsk/Q==} - version: 3.0.3 peerDependencies: vue: '>=3.2.45' + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} @@ -1041,6 +2162,11 @@ packages: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1063,6 +2189,11 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -1076,9 +2207,8 @@ packages: dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - de-indent@https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, tarball: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz} - version: 1.0.2 + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -1097,6 +2227,26 @@ packages: supports-color: optional: true + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -1123,10 +2273,20 @@ packages: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1144,149 +2304,66 @@ packages: resolution: {integrity: sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==} engines: {node: '>= 0.8.0'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.45: + resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==} + element-plus@2.8.5: resolution: {integrity: sha512-Px+kPbRTVvn5oa5+9saa7QEOnUweKXm0JVI7yJHzKF/doQGixwcFMsQEF2+3Fy62EA/7dRRKVuhsNGGZYNk3cw==} - version: 2.8.5 peerDependencies: vue: ^3.2.0 + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - esbuild-android-64@0.15.16: - resolution: {integrity: sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - esbuild-android-arm64@0.15.16: - resolution: {integrity: sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} - esbuild-darwin-64@0.15.16: - resolution: {integrity: sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - esbuild-darwin-arm64@0.15.16: - resolution: {integrity: sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - esbuild-freebsd-64@0.15.16: - resolution: {integrity: sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] + hasBin: true - esbuild-freebsd-arm64@0.15.16: - resolution: {integrity: sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - esbuild-linux-32@0.15.16: - resolution: {integrity: sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - esbuild-linux-64@0.15.16: - resolution: {integrity: sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - esbuild-linux-arm64@0.15.16: - resolution: {integrity: sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - esbuild-linux-arm@0.15.16: - resolution: {integrity: sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - esbuild-linux-mips64le@0.15.16: - resolution: {integrity: sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - esbuild-linux-ppc64le@0.15.16: - resolution: {integrity: sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - esbuild-linux-riscv64@0.15.16: - resolution: {integrity: sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - esbuild-linux-s390x@0.15.16: - resolution: {integrity: sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - esbuild-netbsd-64@0.15.16: - resolution: {integrity: sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - esbuild-openbsd-64@0.15.16: - resolution: {integrity: sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - esbuild-sunos-64@0.15.16: - resolution: {integrity: sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - esbuild-windows-32@0.15.16: - resolution: {integrity: sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - esbuild-windows-64@0.15.16: - resolution: {integrity: sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - esbuild-windows-arm64@0.15.16: - resolution: {integrity: sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - esbuild@https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz: - resolution: {integrity: sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz} - version: 0.15.16 - engines: {node: '>=12'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} hasBin: true escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -1294,14 +2371,16 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + esno@4.8.0: + resolution: {integrity: sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==} hasBin: true - esprima@https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} - version: 4.0.1 + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true @@ -1311,43 +2390,56 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - estree-walker@https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} - version: 2.0.2 - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} - version: 3.2.12 + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} - fastq@https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz: - resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz} - version: 1.14.0 + fastq@1.14.0: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + file-match@1.0.2: + resolution: {integrity: sha512-g9p6bZV3HlSUM35QPvFWiP/PckDVe5jLPDhx6PfMuy06o+htesJTyDu7zRdXnOm3BY8pXmxb+QY5qIcsoWMGNg==} + file-selector@0.2.4: resolution: {integrity: sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA==} engines: {node: '>= 10'} + file-system@2.2.2: + resolution: {integrity: sha512-YgbXEVCu21CfmoeJ1rFLVLPGhW9o7iCzVFqk7ydy2TxF7rXH2YB68CFgDXLOvTD2pMLtg8paVqurzVjxGRdYmw==} + fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - fill-range@https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} - version: 7.0.1 + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} flatten-vertex-data@1.0.2: @@ -1366,10 +2458,21 @@ packages: resolution: {integrity: sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==} engines: {node: '>=0.10.3'} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -1382,19 +2485,38 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} - version: 1.1.1 + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} deprecated: This package is no longer supported. + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-port@3.2.0: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} @@ -1403,40 +2525,91 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - glob-parent@https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} - version: 5.1.2 + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + good-listener@1.2.2: resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - has-own-prop@https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==, tarball: https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz} - version: 2.0.0 + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has@https://registry.npmmirror.com/has/-/has-1.0.3.tgz: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} - version: 1.0.3 + has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} - he@https://registry.npmmirror.com/he/-/he-1.2.0.tgz: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} - version: 1.2.0 + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -1454,6 +2627,19 @@ packages: immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + increase-memory-limit@1.0.7: + resolution: {integrity: sha512-ozyn+HHAPD9VxMT1U50A7G8XXlktUWhnnEDYSeDYnQjKsNrBWHqq6XfEA0uhMdDPD+q/7rXWlzF1CbXX/c1LiQ==} + hasBin: true + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -1461,65 +2647,76 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} - is-binary-path@https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} - version: 2.1.0 + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - is-core-module@https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz} - version: 2.11.0 + is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + is-expression@4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-extglob@https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} - version: 2.1.1 - engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-glob@https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} - version: 4.0.3 - engines: {node: '>=0.10.0'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-number@https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} - version: 7.0.0 - engines: {node: '>=0.12.0'} - is-obj@1.0.1: resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} + is-port-reachable@4.0.0: + resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-reference@3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -1531,13 +2728,176 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + javascript-time-ago@2.5.11: resolution: {integrity: sha512-Zeyf5R7oM1fSMW9zsU3YgAYwE0bimEeF54Udn2ixGd8PUwu+z1Yc5t4Y8YScJDMHD6uCx6giLt3VJR5K4CMwbg==} + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + jmespath@0.16.0: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -1550,9 +2910,13 @@ packages: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + json-editor-vue@0.17.2: resolution: {integrity: sha512-P38IvEwQJe4IHFpZe1YG2CWOK6pCjeHmPu2tLs01IiV0kz8QBoHYC7N5ZORlGTL4tQFVOosmnI1gjXztywHtig==} - version: 0.17.2 peerDependencies: '@vue/composition-api': '>=1' vue: 2||3 @@ -1560,12 +2924,29 @@ packages: '@vue/composition-api': optional: true + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} json-source-map@0.6.1: resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonpath-plus@10.0.1: resolution: {integrity: sha512-30DeH2QD4nL1IpDLPIFz09G5XyLvh+oNMUI2Zxf4tbrlsVHs0e3VPnwpOnSTFb4yM0dfQK2WGKLsSaAS8V62rw==} engines: {node: '>=18.0.0'} @@ -1578,20 +2959,46 @@ packages: keypress@0.1.0: resolution: {integrity: sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==} + klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + lexical@0.16.1: resolution: {integrity: sha512-+R05d3+N945OY8pTUjTqQrWoApjC+ctzvjnmNETtx9WmVAaiW0tQVG+AYLt5pDGY8dQXtd4RPorvnxBTECt9SA==} + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + local-access@1.1.0: resolution: {integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==} engines: {node: '>=6'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} @@ -1614,6 +3021,12 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -1629,21 +3042,20 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} - engines: {node: '>=12'} - magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - magic-string@https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} - version: 0.25.9 - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + matchit@1.1.0: resolution: {integrity: sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==} engines: {node: '>=6'} @@ -1667,9 +3079,8 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} - version: 1.4.1 + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} meshoptimizer@0.18.1: @@ -1679,15 +3090,18 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} - micromatch@https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} - version: 4.0.5 - engines: {node: '>=8.6'} + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -1699,10 +3113,9 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz: - resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz} - version: 5.1.1 - engines: {node: '>=10'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} @@ -1711,6 +3124,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -1723,6 +3140,9 @@ packages: engines: {node: '>=10'} hasBin: true + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + monaco-editor@0.50.0: resolution: {integrity: sha512-8CclLCmrRRh+sul7C08BmPBP3P8wVWfBHomsTcndxg5NRCEPfu/mc2AGU8k37ajjDVXcXFc12ORAMUkmk+lkFA==} @@ -1740,24 +3160,23 @@ packages: ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - muggle-string@https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz: - resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==, tarball: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz} - version: 0.1.0 + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} - version: 3.3.4 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + 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'} @@ -1777,6 +3196,12 @@ packages: encoding: optional: true + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + nodejieba@2.5.2: resolution: {integrity: sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==} engines: {node: '>= 10.20.0'} @@ -1786,9 +3211,12 @@ packages: engines: {node: '>=6'} hasBin: true - normalize-path@https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} - version: 3.0.0 + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} normalize-wheel-es@1.2.0: @@ -1812,6 +3240,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + on-headers@1.0.2: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} @@ -1836,20 +3268,62 @@ packages: resolution: {integrity: sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + parse-rect@1.2.0: resolution: {integrity: sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-parse@https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} - version: 1.0.7 + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@3.3.0: + resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -1860,62 +3334,153 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picocolors@https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} - version: 1.0.0 - picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} - version: 2.3.1 - engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} pinyin@2.11.2: resolution: {integrity: sha512-tAWDBcowj09j/vLUjty98nVqrbTVNhutf1VcyID4p0sxTFPzRyXw7n7Ic0HQwBdWFIWrrDP8bYiT64gaT6h3gA==} hasBin: true + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + pnpm@9.12.2: + resolution: {integrity: sha512-InIbOhH4FmGuHsaM4ae4eUJaHKW5kcl1sHSsIgsYfOVscI/l22n0yWLJiUUu7nbIKHf07oD0dM69Ye4TRhtiKA==} + engines: {node: '>=18.12'} + hasBin: true + point-cluster@3.1.8: resolution: {integrity: sha512-7klIr45dpMeZuqjIK9+qBg3m2IhyZJNJkdqjJFw0Olq75FM8ojrTMjClVUrMjNYRVqtwztxCHH71Fyjhg+YwyQ==} polka@0.5.2: resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==} + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - postcss@https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz: - resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz} - version: 8.4.19 - engines: {node: ^10 || ^12 || >=14} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - queue-microtask@https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} - version: 1.2.3 + pug-error@2.1.0: + resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} + + pug-lexer@5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + + pug-parser@6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + rd@2.0.1: + resolution: {integrity: sha512-/XdKU4UazUZTXFmI0dpABt8jSXPWcEyaGdk340KdHnsEOdkTctlX23aAK7ChQDn39YGNlAJr1M5uvaKt4QnpNw==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} readable-stream@3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + readdirp@4.0.2: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} - readdirp@https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} - version: 3.6.0 - engines: {node: '>=8.10.0'} - regenerate-unicode-properties@9.0.0: resolution: {integrity: sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==} engines: {node: '>=4'} @@ -1927,6 +3492,13 @@ packages: resolution: {integrity: sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==} engines: {node: '>=4'} + registry-auth-token@3.3.2: + resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} + + registry-url@3.1.0: + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} + engines: {node: '>=0.10.0'} + regjsgen@0.5.2: resolution: {integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==} @@ -1937,11 +3509,13 @@ packages: relative-time-format@1.1.6: resolution: {integrity: sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==} - repeat-string@https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, tarball: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz} - version: 1.6.1 + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -1950,14 +3524,31 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve@https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} - version: 1.22.1 + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true - reusify@https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} - version: 1.0.4 + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rimraf@3.0.2: @@ -1965,35 +3556,28 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-external-globals@0.8.0: - resolution: {integrity: sha512-c65c7hPMCE//cLzC4dLVE25XkuHsBqSkZp+/5pvtZ1MFwqgQLRRkIfuCvI3PnI7Yj8HoXqYtdsRN9gYF5a4tVQ==} + rollup-plugin-external-globals@0.10.0: + resolution: {integrity: sha512-RXlupZrmn97AaaS5dWnktkjM+Iy+od0E+8L0mUkMIs3iuoUXNJebueQocQKV7Ircd54fSGGmkBaXwNzY05J1yQ==} peerDependencies: - rollup: ^2.25.0 || ^3.3.0 + rollup: ^2.25.0 || ^3.3.0 || ^4.1.4 - rollup-plugin-visualizer@5.9.2: - resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} + rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true peerDependencies: - rollup: 2.x || 3.x + rollup: 2.x || 3.x || 4.x peerDependenciesMeta: rollup: optional: true - rollup@3.26.2: - resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} - version: 2.79.1 - engines: {node: '>=10.0.0'} - hasBin: true - - run-parallel@https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} - version: 1.2.0 + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -2024,14 +3608,35 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + semver@7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serve-handler@6.1.6: + resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} + + serve@14.2.4: + resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==} + engines: {node: '>= 14'} + hasBin: true + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2047,6 +3652,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + sirv-cli@1.0.14: resolution: {integrity: sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==} engines: {node: '>= 10'} @@ -2056,6 +3665,13 @@ packages: resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} engines: {node: '>= 10'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -2064,35 +3680,40 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-js@https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} - version: 1.0.2 + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - source-map@https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} - version: 0.6.1 - engines: {node: '>=0.10.0'} - sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - sourcemap-codec@https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} - version: 1.4.8 - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -2100,35 +3721,82 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} - supports-preserve-symlinks-flag@https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} - version: 1.0.0 + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} svelte@4.2.19: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + svgo@3.3.2: resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + engines: {node: '>=14.0.0'} + hasBin: true + tar@6.1.12: resolution: {integrity: sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==} engines: {node: '>=10'} + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + three@0.166.1: resolution: {integrity: sha512-LtuafkKHHzm61AQA1be2MAYIw1IjmhOUxhBa0prrLpEMWbV7ijvxCRHjSgHPGp2493wLBzwKV46tA9nivLEgKg==} @@ -2146,23 +3814,19 @@ packages: resolution: {integrity: sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==} hasBin: true + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - to-fast-properties@https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} - version: 2.0.0 - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - to-regex-range@https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} - version: 5.0.1 - engines: {node: '>=8.0'} + token-stream@1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} totalist@1.1.0: resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} @@ -2175,15 +3839,77 @@ packages: resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==} engines: {node: '>=6'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz: - resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz} - version: 4.9.3 - engines: {node: '>=4.2.0'} + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} + engines: {node: '>=18.0.0'} hasBin: true + turbo-darwin-64@2.2.3: + resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.2.3: + resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.2.3: + resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.2.3: + resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.2.3: + resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.2.3: + resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==} + cpu: [arm64] + os: [win32] + + turbo@2.2.3: + resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} + hasBin: true + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -2200,6 +3926,22 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-check@1.5.4: + resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@4.0.1: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} @@ -2210,10 +3952,17 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + utils-extend@1.0.8: + resolution: {integrity: sha512-+VzQieEAijyCFGqnGAWIy7Em1dFGdgf1w+orKwmTWHyaGL19aw9Oq5e5ZZaxgcS777AkPYEsbgWqpz5E6KniPg==} + uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + vanilla-jsoneditor@1.0.8: resolution: {integrity: sha512-5tKODR6J3IbGoMeBv4DEEU/Dlam4bPunOarIJKfrd5xs4bUife59Lp8Psjf86Y8OAM9mvxkrwR275XsBnvtO9A==} @@ -2224,36 +3973,35 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vite-aliases@https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz: - resolution: {integrity: sha512-MiqZx5NJQDn/I7gYzovop8GzlEDYCxR3i3JCCNap5OWEfBmo4b+jIfpmal22IoBREgx1TtkmwRkHJCBUhnL6jA==, tarball: https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz} - version: 0.9.7 - engines: {node: '>=16.6.0', npm: '>=7.0.0'} - - vite-plugin-dynamic-import@https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz: - resolution: {integrity: sha512-R6spqDhDm8VxaUNyEkybh9PM262ReO8WXJ6rjtyJ/H8Y4b+pq2uM9Xz5DMu7N7OxUGlqo9HSzT3VjhpbySXrng==, tarball: https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz} - version: 1.2.4 - - vite-plugin-externalize-deps@0.7.0: - resolution: {integrity: sha512-do2gPrR79Tm8UKcqsw3RTAtN4YO8GkVRBckWdJWINZ3Qdp3KN9S1oyUZxKszTB/iyg4zdOUweLOeBI8t86QVow==} - version: 0.7.0 + vite-aliases@0.11.7: + resolution: {integrity: sha512-2hbJKs9QazE2V9+tNHg5hdLQHDnrsysjoGse66iG4A7eM8FuAXaz5dkocWQ79oFLq5QG0h4sFxnCI8QQV1zOtQ==} + engines: {node: '>=16.6.0'} peerDependencies: - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 + vite: 5.x + + vite-plugin-dynamic-import@1.6.0: + resolution: {integrity: sha512-TM0sz70wfzTIo9YCxVFwS8OA9lNREsh+0vMHGSkWDTZ7bgd1Yjs5RV8EgB634l/91IsXJReg0xtmuQqP0mf+rg==} + + vite-plugin-externalize-deps@0.8.0: + resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 vite-svg-loader@5.1.0: resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==} - version: 5.1.0 peerDependencies: vue: '>=3.2.13' - vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz: - resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==, tarball: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz} - version: 3.2.4 - engines: {node: ^14.18.0 || >=16.0.0} + vite@5.4.10: + resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' + lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -2262,8 +4010,12 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -2271,9 +4023,102 @@ packages: terser: optional: true + volar-service-css@0.0.62: + resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.62: + resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.62: + resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-json@0.0.62: + resolution: {integrity: sha512-Ot+jP+/LzKcaGF7nzrn+gwpzAleb4ej5buO05M8KxfwfODte7o1blARKRoJ3Nv7ls0DBM38Dd5vjzvA9c/9Jtg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-pug-beautify@0.0.62: + resolution: {integrity: sha512-dAFNuNEwTnnVthYoNJhoStwhf/PojzglwCrdhOb2nBegTG3xXMWRFmQzb0JfIlt2wq2wfUq5j+JJswgSD3KluQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-pug@0.0.62: + resolution: {integrity: sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==} + + volar-service-typescript-twoslash-queries@0.0.62: + resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.62: + resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} + + vscode-json-languageservice@5.4.1: + resolution: {integrity: sha512-5czFGNyVPxz3ZJYl8R3a3SuIj5gjhmGF4Wv05MRPvD4DEnHK6b8km4VbNMJNHBlTCh7A0aHzUbPVzo+0C18mCA==} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-chartjs@5.3.1: resolution: {integrity: sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==} - version: 5.3.1 peerDependencies: chart.js: ^4.1.1 vue: ^3.0.0-0 || ^2.7.0 @@ -2283,7 +4128,6 @@ packages: vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - version: 0.14.10 engines: {node: '>=12'} hasBin: true peerDependencies: @@ -2295,31 +4139,23 @@ packages: vue-i18n@9.13.1: resolution: {integrity: sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==} - version: 9.13.1 engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 vue-router@4.4.0: resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} - version: 4.4.0 peerDependencies: vue: ^3.2.0 - vue-template-compiler@https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz: - resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==, tarball: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz} - version: 2.7.14 - - vue-tsc@https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz: - resolution: {integrity: sha512-lj+6dEroPsE4wmQOPtjCzAf8x363Km5/tuEvMEoQaoRnzs9myBM46FNvCGIIPStYUGuaqF1W1bORmP2KDQEORA==, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz} - version: 1.0.11 + vue-tsc@2.1.6: + resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==} hasBin: true peerDependencies: - typescript: '*' + typescript: '>=5.0.0' vue@3.5.12: resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} - version: 3.5.12 peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2328,13 +4164,15 @@ packages: vuex@4.1.0: resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==} - version: 4.1.0 peerDependencies: vue: ^3.2.0 w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -2349,6 +4187,10 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + windows-release@5.0.1: resolution: {integrity: sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2357,16 +4199,32 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -2375,8 +4233,14 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + snapshots: + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -2384,21 +4248,261 @@ snapshots: '@arr/every@1.0.1': {} + '@babel/code-frame@7.25.9': + dependencies: + '@babel/highlight': 7.25.9 + picocolors: 1.1.1 + + '@babel/compat-data@7.25.9': {} + + '@babel/core@7.25.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.9 + '@babel/generator': 7.25.9 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.25.9(@babel/core@7.25.9) + '@babel/helpers': 7.25.9 + '@babel/parser': 7.25.9 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.9 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.9': + dependencies: + '@babel/types': 7.25.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.25.9 + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.25.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.25.9 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-simple-access': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.25.9 + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-replace-supers@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-string-parser@https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz': {} + '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-identifier@https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz': {} + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.25.9': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.25.9 + + '@babel/highlight@7.25.9': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 '@babel/parser@7.25.8': dependencies: '@babel/types': 7.25.8 - '@babel/parser@https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz': + '@babel/parser@7.25.9': dependencies: - '@babel/types': https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz + '@babel/types': 7.25.9 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-attributes@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.25.9)': + dependencies: + '@babel/core': 7.25.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.9) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.25.9) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.25.9 + '@babel/parser': 7.25.9 + '@babel/types': 7.25.9 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.25.9 + '@babel/generator': 7.25.9 + '@babel/parser': 7.25.9 + '@babel/template': 7.25.9 + '@babel/types': 7.25.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/types@7.25.8': dependencies: @@ -2406,11 +4510,12 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@babel/types@https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz': + '@babel/types@7.25.9': dependencies: - '@babel/helper-string-parser': https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz - '@babel/helper-validator-identifier': https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz - to-fast-properties: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bcoe/v8-coverage@0.2.3': {} '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3)': dependencies: @@ -2462,14 +4567,172 @@ snapshots: '@ctrl/tinycolor@3.4.1': {} - '@element-plus/icons-vue@2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + '@element-plus/icons-vue@2.3.1(vue@3.5.12(typescript@5.6.3))': dependencies: - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) - '@esbuild/android-arm@0.15.16': + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/linux-loong64@0.15.16': + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': optional: true '@floating-ui/core@1.6.8': @@ -2501,10 +4764,10 @@ snapshots: dependencies: '@fortawesome/fontawesome-common-types': 6.6.0 - '@fortawesome/vue-fontawesome@3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + '@fortawesome/vue-fontawesome@3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@5.6.3))': dependencies: '@fortawesome/fontawesome-svg-core': 6.6.0 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) '@intlify/core-base@9.13.1': dependencies: @@ -2518,6 +4781,189 @@ snapshots: '@intlify/shared@9.13.1': {} + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.17.0) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.17.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.17.0 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.25.9 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.17.0 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@johnsoncodehk/pug-beautify@0.2.2': {} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -2528,8 +4974,6 @@ snapshots: '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} - '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': @@ -2653,17 +5097,17 @@ snapshots: - supports-color optional: true - '@nodelib/fs.scandir@https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz': + '@nodelib/fs.scandir@2.1.5': dependencies: - '@nodelib/fs.stat': https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz - run-parallel: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - '@nodelib/fs.stat@https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz': {} + '@nodelib/fs.stat@2.0.5': {} - '@nodelib/fs.walk@https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz': + '@nodelib/fs.walk@1.2.8': dependencies: - '@nodelib/fs.scandir': https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz - fastq: https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.14.0 '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -2721,6 +5165,9 @@ snapshots: '@parcel/watcher-win32-ia32': 2.4.1 '@parcel/watcher-win32-x64': 2.4.1 + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@0.5.0': {} '@polka/url@1.0.0-next.21': {} @@ -2733,13 +5180,71 @@ snapshots: '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@rollup/pluginutils@5.0.2(rollup@3.26.2)': + '@rollup/pluginutils@5.1.3(rollup@4.24.0)': dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: - rollup: 3.26.2 + rollup: 4.24.0 + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 '@sphinxxxx/color-conversion@2.2.2': {} @@ -2749,16 +5254,56 @@ snapshots: '@tweenjs/tween.js@23.1.3': {} + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.25.8 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.25.8 + '@types/estree@1.0.0': {} '@types/estree@1.0.6': {} '@types/getos@3.0.4': {} + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 20.17.0 + '@types/humanize-duration@3.27.4': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/javascript-time-ago@2.0.8': {} + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + '@types/lodash-es@4.17.12': dependencies: '@types/lodash': 4.17.10 @@ -2767,12 +5312,20 @@ snapshots: '@types/md5@2.3.5': {} - '@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz': {} + '@types/node-os-utils@1.3.4': {} + + '@types/node@10.17.60': {} + + '@types/node@20.17.0': + dependencies: + undici-types: 6.19.8 '@types/pinyin@2.10.2': {} '@types/showdown@2.0.6': {} + '@types/stack-utils@2.0.3': {} + '@types/stats.js@0.17.3': {} '@types/three@0.166.0': @@ -2789,40 +5342,104 @@ snapshots: '@types/webxr@0.5.20': {} - '@vitejs/plugin-vue@https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1))(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': - dependencies: - vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + '@types/yargs-parser@21.0.3': {} - '@volar/language-core@https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz': + '@types/yargs@17.0.33': dependencies: - '@volar/source-map': https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz - '@vue/reactivity': https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz - muggle-string: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz + '@types/yargs-parser': 21.0.3 - '@volar/source-map@https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz': + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - muggle-string: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz + '@babel/core': 7.25.9 + '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.25.9) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.9) + vite: 5.4.10(@types/node@20.17.0)(sass@1.80.1) + vue: 3.5.12(typescript@5.6.3) + transitivePeerDependencies: + - supports-color - '@volar/typescript@https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz': + '@vitejs/plugin-vue@5.0.5(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - '@volar/language-core': https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz + vite: 5.4.10(@types/node@20.17.0)(sass@1.80.1) + vue: 3.5.12(typescript@5.6.3) - '@volar/vue-language-core@https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz': + '@volar/language-core@2.4.6': dependencies: - '@volar/language-core': https://registry.npmmirror.com/@volar/language-core/-/language-core-1.0.11.tgz - '@volar/source-map': https://registry.npmmirror.com/@volar/source-map/-/source-map-1.0.11.tgz - '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz - '@vue/compiler-sfc': https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz - '@vue/reactivity': https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - minimatch: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz - vue-template-compiler: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz + '@volar/source-map': 2.4.6 - '@volar/vue-typescript@https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz': + '@volar/language-server@2.4.6': dependencies: - '@volar/typescript': https://registry.npmmirror.com/@volar/typescript/-/typescript-1.0.11.tgz - '@volar/vue-language-core': https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz + '@volar/language-core': 2.4.6 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/source-map@2.4.6': {} + + '@volar/test-utils@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + '@volar/language-server': 2.4.6 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/typescript@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.18': {} + + '@vue/babel-helper-vue-transform-on@1.2.5': {} + + '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.25.9)': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.9) + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.25.8 + '@vue/babel-helper-vue-transform-on': 1.2.5 + '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.25.9) + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.25.9)': + dependencies: + '@babel/code-frame': 7.25.9 + '@babel/core': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/parser': 7.25.8 + '@vue/compiler-sfc': 3.5.12 + transitivePeerDependencies: + - supports-color '@vue/compiler-core@3.5.12': dependencies: @@ -2832,23 +5449,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz': - dependencies: - '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz - source-map: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz - '@vue/compiler-dom@3.5.12': dependencies: '@vue/compiler-core': 3.5.12 '@vue/shared': 3.5.12 - '@vue/compiler-dom@https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz': - dependencies: - '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - '@vue/compiler-sfc@3.5.12': dependencies: '@babel/parser': 7.25.8 @@ -2861,49 +5466,75 @@ snapshots: postcss: 8.4.47 source-map-js: 1.2.1 - '@vue/compiler-sfc@https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz': - dependencies: - '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz - '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz - '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz - '@vue/compiler-ssr': https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz - '@vue/reactivity-transform': https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz - magic-string: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz - postcss: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz - source-map: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz - '@vue/compiler-ssr@3.5.12': dependencies: '@vue/compiler-dom': 3.5.12 '@vue/shared': 3.5.12 - '@vue/compiler-ssr@https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz': + '@vue/compiler-vue2@2.7.16': dependencies: - '@vue/compiler-dom': https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz + de-indent: 1.0.2 + he: 1.2.0 '@vue/devtools-api@6.4.5': {} '@vue/devtools-api@6.6.4': {} - '@vue/reactivity-transform@https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz': + '@vue/language-core@2.1.6(typescript@5.6.3)': dependencies: - '@babel/parser': https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz - '@vue/compiler-core': https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - estree-walker: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz - magic-string: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz + '@volar/language-core': 2.4.6 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.12 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.6.3 + + '@vue/language-server@2.1.6(typescript@5.6.3)': + dependencies: + '@volar/language-core': 2.4.6 + '@volar/language-server': 2.4.6 + '@volar/test-utils': 2.4.6 + '@vue/language-core': 2.1.6(typescript@5.6.3) + '@vue/language-service': 2.1.6(typescript@5.6.3) + '@vue/typescript-plugin': 2.1.6(typescript@5.6.3) + vscode-languageserver-protocol: 3.17.5 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + + '@vue/language-service@2.1.6(typescript@5.6.3)': + dependencies: + '@volar/language-core': 2.4.6 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + '@vue/compiler-dom': 3.5.12 + '@vue/language-core': 2.1.6(typescript@5.6.3) + '@vue/shared': 3.5.12 + '@vue/typescript-plugin': 2.1.6(typescript@5.6.3) + computeds: 0.0.1 + path-browserify: 1.0.1 + volar-service-css: 0.0.62(@volar/language-service@2.4.6) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.6) + volar-service-html: 0.0.62(@volar/language-service@2.4.6) + volar-service-json: 0.0.62(@volar/language-service@2.4.6) + volar-service-pug: 0.0.62 + volar-service-pug-beautify: 0.0.62(@volar/language-service@2.4.6) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.6) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.6) + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript '@vue/reactivity@3.5.12': dependencies: '@vue/shared': 3.5.12 - '@vue/reactivity@https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz': - dependencies: - '@vue/shared': https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz - '@vue/runtime-core@3.5.12': dependencies: '@vue/reactivity': 3.5.12 @@ -2916,35 +5547,43 @@ snapshots: '@vue/shared': 3.5.12 csstype: 3.1.3 - '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': dependencies: '@vue/compiler-ssr': 3.5.12 '@vue/shared': 3.5.12 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) '@vue/shared@3.5.12': {} - '@vue/shared@https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz': {} + '@vue/typescript-plugin@2.1.6(typescript@5.6.3)': + dependencies: + '@volar/typescript': 2.4.6 + '@vue/language-core': 2.1.6(typescript@5.6.3) + '@vue/shared': 3.5.12 + transitivePeerDependencies: + - typescript - '@vueuse/core@9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + '@vueuse/core@9.13.0(vue@3.5.12(typescript@5.6.3))': dependencies: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@vueuse/shared': 9.13.0(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue '@vueuse/metadata@9.13.0': {} - '@vueuse/shared@9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz))': + '@vueuse/shared@9.13.0(vue@3.5.12(typescript@5.6.3))': dependencies: - vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue + '@zeit/schemas@2.36.0': {} + abbrev@1.1.1: optional: true @@ -2963,6 +5602,8 @@ snapshots: acorn@6.4.2: {} + acorn@7.4.1: {} + acorn@8.13.0: {} agent-base@6.0.2: @@ -2972,6 +5613,18 @@ snapshots: - supports-color optional: true + ajax-request@1.2.3: + dependencies: + file-system: 2.2.2 + utils-extend: 1.0.8 + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -2979,8 +5632,18 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -2989,20 +5652,30 @@ snapshots: dependencies: color-convert: 2.0.1 - anymatch@https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz: + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: dependencies: - normalize-path: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz - picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + normalize-path: 3.0.0 + picomatch: 2.3.1 aproba@2.0.0: optional: true + arch@2.2.0: {} + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.0 optional: true + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -3015,7 +5688,7 @@ snapshots: dependencies: array-bounds: 1.0.1 - array-timsort@https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz: {} + array-timsort@1.0.3: {} async-validator@4.2.5: {} @@ -3037,6 +5710,16 @@ snapshots: attr-accept@2.2.2: {} + autoprefixer@10.4.20(postcss@8.4.47): + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001669 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + axios@1.7.7: dependencies: follow-redirects: 1.15.9 @@ -3047,34 +5730,108 @@ snapshots: axobject-query@4.1.0: {} - balanced-match@1.0.2: - optional: true + babel-jest@29.7.0(@babel/core@7.25.9): + dependencies: + '@babel/core': 7.25.9 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.25.9) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color - balanced-match@https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz: {} + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color - binary-extensions@https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz: {} + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.25.8 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + + babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.9): + dependencies: + '@babel/core': 7.25.9 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.9) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.9) + '@babel/plugin-syntax-import-attributes': 7.25.9(@babel/core@7.25.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.9) + + babel-preset-jest@29.6.3(@babel/core@7.25.9): + dependencies: + '@babel/core': 7.25.9 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.9) + + balanced-match@1.0.2: {} + + base64-img@1.0.4: + dependencies: + ajax-request: 1.2.3 + file-system: 2.2.2 + + binary-extensions@2.2.0: {} binary-search-bounds@2.0.5: {} boolbase@1.0.0: {} + boxen@7.0.0: + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - optional: true - brace-expansion@https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz: + brace-expansion@2.0.1: dependencies: - balanced-match: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz + balanced-match: 1.0.2 braces@3.0.2: dependencies: fill-range: 7.0.1 - braces@https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz: + browserslist@4.24.2: dependencies: - fill-range: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.45 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 buble@0.19.8: dependencies: @@ -3091,14 +5848,55 @@ snapshots: dependencies: buble: 0.19.8 + buffer-from@1.1.2: {} + bytes@3.0.0: {} + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + camelcase@7.0.1: {} + + caniuse-lite@1.0.30001669: {} + + chalk-template@0.4.0: + dependencies: + chalk: 4.1.2 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.0.1: {} + + chalk@5.3.0: {} + + char-regex@1.0.2: {} + + character-parser@2.2.0: + dependencies: + is-regex: 1.1.4 + charenc@0.0.2: {} chart.js@4.4.5: @@ -3110,39 +5908,65 @@ snapshots: chart.js: 4.4.5 date-fns: 4.1.0 + chokidar@3.5.3: + 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 + + chokidar@3.6.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.3 + chokidar@4.0.1: dependencies: readdirp: 4.0.2 - chokidar@https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz: - dependencies: - anymatch: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz - braces: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz - glob-parent: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz - is-binary-path: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz - is-glob: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz - normalize-path: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz - readdirp: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz - optionalDependencies: - fsevents: 2.3.2 - chownr@2.0.0: optional: true + ci-info@3.9.0: {} + + cjs-module-lexer@1.4.1: {} + clamp@1.0.1: {} + cli-boxes@3.0.0: {} + clipboard@2.0.11: dependencies: good-listener: 1.2.2 select: 1.1.2 tiny-emitter: 2.1.0 + clipboardy@3.0.0: + dependencies: + arch: 2.2.0 + execa: 5.1.1 + is-wsl: 2.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + co@4.6.0: {} + code-red@1.0.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3157,6 +5981,8 @@ snapshots: '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 + collect-v8-coverage@1.0.2: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -3180,17 +6006,19 @@ snapshots: dependencies: keypress: 0.1.0 + commander@4.1.1: {} + commander@7.2.0: {} commander@9.5.0: {} - comment-json@https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz: + comment-json@4.2.5: dependencies: - array-timsort: https://registry.npmmirror.com/array-timsort/-/array-timsort-1.0.3.tgz - core-util-is: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz - esprima: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz - has-own-prop: https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz - repeat-string: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 compressible@2.0.18: dependencies: @@ -3208,98 +6036,47 @@ snapshots: transitivePeerDependencies: - supports-color - concat-map@0.0.1: - optional: true + computeds@0.0.1: {} - consola@https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz: {} + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.2.3: {} console-clear@1.1.1: {} console-control-strings@1.1.0: optional: true + content-disposition@0.5.2: {} + + convert-source-map@2.0.0: {} + core-js@3.38.1: {} - core-util-is@https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz: {} + core-util-is@1.0.3: {} - crawlab-ui@0.7.0-rc3(dlwfpvqjxhvrevoazxvsg7egqu): - dependencies: - '@element-plus/icons-vue': 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - '@fortawesome/fontawesome-common-types': 6.6.0 - '@fortawesome/fontawesome-svg-core': 6.6.0 - '@fortawesome/free-brands-svg-icons': 6.6.0 - '@fortawesome/free-regular-svg-icons': 6.6.0 - '@fortawesome/free-solid-svg-icons': 6.6.0 - '@fortawesome/vue-fontawesome': 3.0.8(@fortawesome/fontawesome-svg-core@6.6.0)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - '@lexical/code': 0.16.1 - '@lexical/history': 0.16.1 - '@lexical/html': 0.16.1 - '@lexical/link': 0.16.1 - '@lexical/list': 0.16.1 - '@lexical/markdown': 0.16.1 - '@lexical/rich-text': 0.16.1 - '@lexical/selection': 0.16.1 - '@lexical/table': 0.16.1 - '@lexical/text': 0.16.1 - '@lexical/utils': 0.16.1 - '@popperjs/core': 2.11.8 - '@types/getos': 3.0.4 - '@types/humanize-duration': 3.27.4 - '@types/javascript-time-ago': 2.0.8 - '@types/lodash': 4.17.10 - '@types/md5': 2.3.5 - '@types/pinyin': 2.10.2 - '@types/showdown': 2.0.6 - '@types/three': 0.166.0 - '@types/url-join': 4.0.3 - async-validator: 4.2.5 - atom-material-icons: 3.0.0 - axios: 1.7.7 - chart.js: 4.4.5 - chartjs-adapter-date-fns: 3.0.0(chart.js@4.4.5)(date-fns@4.1.0) - clipboard: 2.0.11 - core-js: 3.38.1 - crawlab-vue3-dropzone: 3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - cron-parser: 4.9.0 - cronstrue: 2.50.0 - dayjs: 1.11.13 - element-plus: 2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - font-awesome: 4.7.0 - humanize-duration: 3.32.1 - javascript-time-ago: 2.5.11 - json-editor-vue: 0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - lexical: 0.16.1 - lodash: 4.17.21 - md5: 2.3.0 - mitt: 3.0.1 - monaco-editor: 0.50.0 - normalize.css: 8.0.1 - os-name: 5.0.1 - pinyin: 2.11.2 - point-cluster: 3.1.8 - prismjs: 1.29.0 - showdown: 2.1.0 - three: 0.166.1 - tiny-invariant: 1.3.3 - url-join: 4.0.1 - url-regex: 5.0.0 - uuid: 10.0.0 - vite-svg-loader: 5.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) - vue-chartjs: 5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - vue-clipboard3: 2.0.0 - vue-i18n: 9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - vue-router: 4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - vuex: 4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) - transitivePeerDependencies: - - '@lezer/common' - - '@vue/composition-api' - - crawlab-vue3-dropzone@3.0.3(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + crawlab-vue3-dropzone@3.0.3(vue@3.5.12(typescript@5.6.3)): dependencies: attr-accept: 2.2.2 file-selector: 0.2.4 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) + + create-jest@29.7.0(@types/node@20.17.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.17.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node crelt@1.0.6: {} @@ -3309,6 +6086,10 @@ snapshots: cronstrue@2.50.0: {} + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.3 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -3337,6 +6118,8 @@ snapshots: css-what@6.1.0: {} + cssesc@3.0.0: {} + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -3347,7 +6130,7 @@ snapshots: dayjs@1.11.13: {} - de-indent@https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz: {} + de-indent@1.0.2: {} debug@2.6.9: dependencies: @@ -3356,7 +6139,18 @@ snapshots: debug@4.3.4: dependencies: ms: 2.1.2 - optional: true + + dedent@1.5.3: {} + + deep-extend@0.6.0: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 define-lazy-prop@2.0.0: {} @@ -3374,8 +6168,14 @@ snapshots: detect-libc@2.0.1: optional: true + detect-newline@3.1.0: {} + + didyoumean@1.2.2: {} + diff-sequences@29.6.3: {} + dlv@1.1.3: {} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -3396,15 +6196,19 @@ snapshots: dtype@2.0.0: {} - element-plus@2.8.5(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.45: {} + + element-plus@2.8.5(vue@3.5.12(typescript@5.6.3)): dependencies: '@ctrl/tinycolor': 3.4.1 - '@element-plus/icons-vue': 2.3.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@element-plus/icons-vue': 2.3.1(vue@3.5.12(typescript@5.6.3)) '@floating-ui/dom': 1.6.11 '@popperjs/core': '@sxzz/popperjs-es@2.11.7' '@types/lodash': 4.17.10 '@types/lodash-es': 4.17.12 - '@vueuse/core': 9.13.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@vueuse/core': 9.13.0(vue@3.5.12(typescript@5.6.3)) async-validator: 4.2.5 dayjs: 1.11.13 escape-html: 1.0.3 @@ -3413,108 +6217,103 @@ snapshots: lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) memoize-one: 6.0.0 normalize-wheel-es: 1.2.0 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - '@vue/composition-api' + emittery@0.13.1: {} + + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + entities@4.5.0: {} - esbuild-android-64@0.15.16: - optional: true + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 - esbuild-android-arm64@0.15.16: - optional: true + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 - esbuild-darwin-64@0.15.16: - optional: true + es-errors@1.3.0: {} - esbuild-darwin-arm64@0.15.16: - optional: true + es-module-lexer@1.5.4: {} - esbuild-freebsd-64@0.15.16: - optional: true - - esbuild-freebsd-arm64@0.15.16: - optional: true - - esbuild-linux-32@0.15.16: - optional: true - - esbuild-linux-64@0.15.16: - optional: true - - esbuild-linux-arm64@0.15.16: - optional: true - - esbuild-linux-arm@0.15.16: - optional: true - - esbuild-linux-mips64le@0.15.16: - optional: true - - esbuild-linux-ppc64le@0.15.16: - optional: true - - esbuild-linux-riscv64@0.15.16: - optional: true - - esbuild-linux-s390x@0.15.16: - optional: true - - esbuild-netbsd-64@0.15.16: - optional: true - - esbuild-openbsd-64@0.15.16: - optional: true - - esbuild-sunos-64@0.15.16: - optional: true - - esbuild-windows-32@0.15.16: - optional: true - - esbuild-windows-64@0.15.16: - optional: true - - esbuild-windows-arm64@0.15.16: - optional: true - - esbuild@https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz: + esbuild@0.21.5: optionalDependencies: - '@esbuild/android-arm': 0.15.16 - '@esbuild/linux-loong64': 0.15.16 - esbuild-android-64: 0.15.16 - esbuild-android-arm64: 0.15.16 - esbuild-darwin-64: 0.15.16 - esbuild-darwin-arm64: 0.15.16 - esbuild-freebsd-64: 0.15.16 - esbuild-freebsd-arm64: 0.15.16 - esbuild-linux-32: 0.15.16 - esbuild-linux-64: 0.15.16 - esbuild-linux-arm: 0.15.16 - esbuild-linux-arm64: 0.15.16 - esbuild-linux-mips64le: 0.15.16 - esbuild-linux-ppc64le: 0.15.16 - esbuild-linux-riscv64: 0.15.16 - esbuild-linux-s390x: 0.15.16 - esbuild-netbsd-64: 0.15.16 - esbuild-openbsd-64: 0.15.16 - esbuild-sunos-64: 0.15.16 - esbuild-windows-32: 0.15.16 - esbuild-windows-64: 0.15.16 - esbuild-windows-arm64: 0.15.16 + '@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 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escalade@3.1.1: {} + escalade@3.2.0: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} - esprima@4.0.1: {} + escape-string-regexp@2.0.0: {} - esprima@https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz: {} + esno@4.8.0: + dependencies: + tsx: 4.19.1 + + esprima@4.0.1: {} estree-walker@2.0.2: {} @@ -3522,8 +6321,6 @@ snapshots: dependencies: '@types/estree': 1.0.0 - estree-walker@https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz: {} - execa@5.1.1: dependencies: cross-spawn: 7.0.3 @@ -3536,35 +6333,61 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + fast-deep-equal@3.1.3: {} - fast-glob@https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz: + fast-glob@3.3.2: dependencies: - '@nodelib/fs.stat': https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz - '@nodelib/fs.walk': https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz - glob-parent: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz - merge2: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz - micromatch: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fast-json-stable-stringify@2.1.0: {} fast-uri@3.0.3: {} - fastq@https://registry.npmmirror.com/fastq/-/fastq-1.14.0.tgz: + fastq@1.14.0: dependencies: - reusify: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz + reusify: 1.0.4 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 fflate@0.8.2: {} + file-match@1.0.2: + dependencies: + utils-extend: 1.0.8 + file-selector@0.2.4: dependencies: tslib: 2.4.1 + file-system@2.2.2: + dependencies: + file-match: 1.0.2 + utils-extend: 1.0.8 + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - fill-range@https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz: + find-up@4.1.0: dependencies: - to-regex-range: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz + locate-path: 5.0.0 + path-exists: 4.0.0 flatten-vertex-data@1.0.2: dependencies: @@ -3574,24 +6397,41 @@ snapshots: font-awesome@4.7.0: {} + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + fraction.js@4.3.7: {} + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 optional: true - fs.realpath@1.0.0: - optional: true + fs.realpath@1.0.0: {} fsevents@2.3.2: optional: true - function-bind@https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz: {} + fsevents@2.3.3: + optional: true + + function-bind@1.1.1: {} + + function-bind@1.1.2: {} gauge@3.0.2: dependencies: @@ -3606,15 +6446,44 @@ snapshots: wide-align: 1.1.5 optional: true + gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-package-type@0.1.0: {} + get-port@3.2.0: {} get-stream@6.0.1: {} - glob-parent@https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz: + get-tsconfig@4.8.1: dependencies: - is-glob: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 glob@7.2.3: dependencies: @@ -3624,24 +6493,55 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - optional: true + + globals@11.12.0: {} + + globals@15.11.0: {} good-listener@1.2.2: dependencies: delegate: 3.2.0 + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + has-flag@3.0.0: {} - has-own-prop@https://registry.npmmirror.com/has-own-prop/-/has-own-prop-2.0.0.tgz: {} + has-flag@4.0.0: {} + + has-own-prop@2.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 has-unicode@2.0.1: optional: true - has@https://registry.npmmirror.com/has/-/has-1.0.3.tgz: + has@1.0.3: dependencies: - function-bind: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz + function-bind: 1.1.1 - he@https://registry.npmmirror.com/he/-/he-1.2.0.tgz: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + html-escaper@2.0.2: {} + + html-tags@3.3.1: {} https-proxy-agent@5.0.1: dependencies: @@ -3659,53 +6559,80 @@ snapshots: immutable@4.3.7: {} + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + increase-memory-limit@1.0.7: + dependencies: + glob: 7.2.3 + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - optional: true - inherits@2.0.4: - optional: true + inherits@2.0.4: {} + + ini@1.3.8: {} ip-regex@4.3.0: {} - is-binary-path@https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz: + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: dependencies: - binary-extensions: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz + binary-extensions: 2.2.0 is-buffer@1.1.6: {} - is-core-module@https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz: + is-core-module@2.11.0: dependencies: - has: https://registry.npmmirror.com/has/-/has-1.0.3.tgz + has: 1.0.3 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 is-docker@2.2.1: {} + is-expression@4.0.0: + dependencies: + acorn: 7.4.1 + object-assign: 4.1.1 + is-extglob@2.1.1: {} - is-extglob@https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz: {} - is-fullwidth-code-point@3.0.0: {} + is-generator-fn@2.1.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-glob@https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz: - dependencies: - is-extglob: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz - is-number@7.0.0: {} - is-number@https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz: {} - is-obj@1.0.1: {} + is-port-reachable@4.0.0: {} + is-reference@3.0.1: dependencies: '@types/estree': 1.0.0 + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.6 + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + is-stream@2.0.1: {} is-wsl@2.2.0: @@ -3714,12 +6641,371 @@ snapshots: isexe@2.0.0: {} + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.25.9 + '@babel/parser': 7.25.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.25.9 + '@babel/parser': 7.25.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + javascript-time-ago@2.5.11: dependencies: relative-time-format: 1.1.6 + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@20.17.0): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.17.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.17.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@20.17.0): + dependencies: + '@babel/core': 7.25.9 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.9) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.17.0 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.17.0 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.25.9 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.1 + resolve.exports: 2.0.2 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + chalk: 4.1.2 + cjs-module-lexer: 1.4.1 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.25.9 + '@babel/generator': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.9) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.25.9) + '@babel/types': 7.25.8 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.9) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@29.7.0: + dependencies: + '@types/node': 20.17.0 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@20.17.0): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.17.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jiti@1.21.6: {} + jmespath@0.16.0: {} + js-tokens@4.0.0: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -3729,18 +7015,34 @@ snapshots: jsesc@0.5.0: {} - json-editor-vue@0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + jsesc@3.0.2: {} + + json-editor-vue@0.17.2(@lezer/common@1.2.3)(vue@3.5.12(typescript@5.6.3)): dependencies: vanilla-jsoneditor: 1.0.8(@lezer/common@1.2.3) - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) - vue-demi: 0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + vue: 3.5.12(typescript@5.6.3) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@lezer/common' + json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@1.0.0: {} json-source-map@0.6.1: {} + json5@2.2.3: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsonpath-plus@10.0.1: dependencies: '@jsep-plugin/assignment': 1.2.1(jsep@1.3.9) @@ -3751,14 +7053,35 @@ snapshots: keypress@0.1.0: {} + klaw-sync@6.0.0: + dependencies: + graceful-fs: 4.2.11 + kleur@3.0.3: {} + leven@3.1.0: {} + lexical@0.16.1: {} + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + local-access@1.1.0: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.2 + pkg-types: 1.2.1 + locate-character@3.0.0: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + lodash-es@4.17.21: {} lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): @@ -3783,6 +7106,12 @@ snapshots: lodash@4.17.21: {} + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -3796,23 +7125,23 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.1: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz: - dependencies: - sourcemap-codec: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz - make-dir@3.1.0: dependencies: semver: 6.3.0 optional: true + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + matchit@1.1.0: dependencies: '@arr/every': 1.0.1 @@ -3833,7 +7162,7 @@ snapshots: merge-stream@2.0.0: {} - merge2@https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz: {} + merge2@1.4.1: {} meshoptimizer@0.18.1: {} @@ -3842,13 +7171,14 @@ snapshots: braces: 3.0.2 picomatch: 2.3.1 - micromatch@https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz: - dependencies: - braces: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz - picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + mime-db@1.33.0: {} mime-db@1.52.0: {} + mime-types@2.1.18: + dependencies: + mime-db: 1.33.0 + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -3858,11 +7188,10 @@ snapshots: minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - optional: true - minimatch@https://registry.npmmirror.com/minimatch/-/minimatch-5.1.1.tgz: + minimatch@9.0.5: dependencies: - brace-expansion: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz + brace-expansion: 2.0.1 minimist@1.2.7: {} @@ -3871,6 +7200,8 @@ snapshots: yallist: 4.0.0 optional: true + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -3882,6 +7213,13 @@ snapshots: mkdirp@1.0.4: optional: true + mlly@1.7.2: + dependencies: + acorn: 8.13.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + monaco-editor@0.50.0: {} mri@1.2.0: {} @@ -3890,17 +7228,22 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: - optional: true + ms@2.1.2: {} - muggle-string@https://registry.npmmirror.com/muggle-string/-/muggle-string-0.1.0.tgz: {} + muggle-string@0.4.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 nanoid@3.3.7: {} - nanoid@https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz: {} - natural-compare-lite@1.4.0: {} + natural-compare@1.4.0: {} + negotiator@0.6.3: {} node-addon-api@3.2.1: @@ -3913,6 +7256,10 @@ snapshots: whatwg-url: 5.0.0 optional: true + node-int64@0.4.0: {} + + node-releases@2.0.18: {} + nodejieba@2.5.2: dependencies: '@mapbox/node-pre-gyp': 1.0.10 @@ -3927,7 +7274,9 @@ snapshots: abbrev: 1.1.1 optional: true - normalize-path@https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz: {} + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} normalize-wheel-es@1.2.0: {} @@ -3951,12 +7300,13 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + on-headers@1.0.2: {} once@1.4.0: dependencies: wrappy: 1.0.2 - optional: true onetime@5.1.2: dependencies: @@ -3975,16 +7325,53 @@ snapshots: macos-release: 3.1.0 windows-release: 5.0.1 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.9 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + parse-rect@1.2.0: dependencies: pick-by-alias: 1.2.0 - path-is-absolute@1.0.1: - optional: true + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-is-inside@1.0.2: {} path-key@3.1.1: {} - path-parse@https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz: {} + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@3.3.0: {} + + pathe@1.1.2: {} periscopic@3.1.0: dependencies: @@ -3996,11 +7383,11 @@ snapshots: picocolors@1.1.1: {} - picocolors@https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz: {} - picomatch@2.3.1: {} - picomatch@https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz: {} + picomatch@4.0.2: {} + + pify@2.3.0: {} pinyin@2.11.2: dependencies: @@ -4012,6 +7399,20 @@ snapshots: - encoding - supports-color + pirates@4.0.6: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + + pnpm@9.12.2: {} + point-cluster@3.1.8: dependencies: array-bounds: 1.0.1 @@ -4032,23 +7433,97 @@ snapshots: '@polka/url': 0.5.0 trouter: 2.0.1 + postcss-import@15.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.47): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.47 + + postcss-load-config@4.0.2(postcss@8.4.47): + dependencies: + lilconfig: 3.1.2 + yaml: 2.6.0 + optionalDependencies: + postcss: 8.4.47 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz: + prettier@3.3.3: {} + + pretty-format@29.7.0: dependencies: - nanoid: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz - picocolors: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz - source-map-js: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 prismjs@1.29.0: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + proxy-from-env@1.1.0: {} - queue-microtask@https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz: {} + pug-error@2.1.0: {} + + pug-lexer@5.0.1: + dependencies: + character-parser: 2.2.0 + is-expression: 4.0.0 + pug-error: 2.1.0 + + pug-parser@6.0.0: + dependencies: + pug-error: 2.1.0 + token-stream: 1.0.0 + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + queue-microtask@1.2.3: {} + + range-parser@1.2.0: {} + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.7 + strip-json-comments: 2.0.1 + + rd@2.0.1: + dependencies: + '@types/node': 10.17.60 + + react-is@18.3.1: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 readable-stream@3.6.0: dependencies: @@ -4057,11 +7532,11 @@ snapshots: util-deprecate: 1.0.2 optional: true - readdirp@4.0.2: {} - - readdirp@https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz: + readdirp@3.6.0: dependencies: - picomatch: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz + picomatch: 2.3.1 + + readdirp@4.0.2: {} regenerate-unicode-properties@9.0.0: dependencies: @@ -4078,6 +7553,15 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 + registry-auth-token@3.3.2: + dependencies: + rc: 1.2.8 + safe-buffer: 5.2.1 + + registry-url@3.1.0: + dependencies: + rc: 1.2.8 + regjsgen@0.5.2: {} regjsparser@0.7.0: @@ -4086,53 +7570,85 @@ snapshots: relative-time-format@1.1.6: {} - repeat-string@https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz: {} + repeat-string@1.6.1: {} + + request-light@0.7.0: {} require-directory@2.1.1: {} require-from-string@2.0.2: {} - resolve@https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz: + resolve-cwd@3.0.0: dependencies: - is-core-module: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz - path-parse: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz - supports-preserve-symlinks-flag: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz + resolve-from: 5.0.0 - reusify@https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz: {} + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve.exports@2.0.2: {} + + resolve@1.22.1: + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} rimraf@3.0.2: dependencies: glob: 7.2.3 optional: true - rollup-plugin-external-globals@0.8.0(rollup@3.26.2): + rollup-plugin-external-globals@0.10.0(rollup@4.24.0): dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.26.2) + '@rollup/pluginutils': 5.1.3(rollup@4.24.0) estree-walker: 3.0.3 - is-reference: 3.0.1 - magic-string: 0.30.1 - rollup: 3.26.2 + is-reference: 3.0.2 + magic-string: 0.30.12 + rollup: 4.24.0 - rollup-plugin-visualizer@5.9.2(rollup@3.26.2): + rollup-plugin-visualizer@5.12.0(rollup@4.24.0): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 3.26.2 + rollup: 4.24.0 - rollup@3.26.2: - optionalDependencies: - fsevents: 2.3.2 - - rollup@https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz: - optionalDependencies: - fsevents: 2.3.2 - - run-parallel@https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz: + rollup@4.24.0: dependencies: - queue-microtask: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 sade@1.8.1: dependencies: @@ -4140,8 +7656,7 @@ snapshots: safe-buffer@5.1.2: {} - safe-buffer@5.2.1: - optional: true + safe-buffer@5.2.1: {} sass@1.80.1: dependencies: @@ -4156,17 +7671,55 @@ snapshots: semiver@1.1.0: {} - semver@6.3.0: - optional: true + semver@6.3.0: {} + + semver@6.3.1: {} semver@7.3.8: dependencies: lru-cache: 6.0.0 optional: true + semver@7.6.3: {} + + serve-handler@6.1.6: + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + mime-types: 2.1.18 + minimatch: 3.1.2 + path-is-inside: 1.0.2 + path-to-regexp: 3.3.0 + range-parser: 1.2.0 + + serve@14.2.4: + dependencies: + '@zeit/schemas': 2.36.0 + ajv: 8.12.0 + arg: 5.0.2 + boxen: 7.0.0 + chalk: 5.0.1 + chalk-template: 0.4.0 + clipboardy: 3.0.0 + compression: 1.7.4 + is-port-reachable: 4.0.0 + serve-handler: 6.1.6 + update-check: 1.5.4 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: optional: true + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -4179,6 +7732,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + sirv-cli@1.0.14: dependencies: console-clear: 1.1.1 @@ -4196,28 +7751,48 @@ snapshots: mrmime: 1.0.1 totalist: 1.1.0 + sisteransi@1.0.5: {} + + slash@3.0.0: {} + source-map-js@1.0.2: {} source-map-js@1.2.1: {} - source-map-js@https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz: {} + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} source-map@0.7.4: {} - source-map@https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz: {} - sourcemap-codec@1.4.8: {} - sourcemap-codec@https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz: {} - sprintf-js@1.0.3: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -4227,15 +7802,43 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@4.0.0: {} + strip-final-newline@2.0.0: {} + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + style-mod@4.1.2: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - supports-preserve-symlinks-flag@https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz: {} + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} svelte@4.2.19: dependencies: @@ -4254,6 +7857,8 @@ snapshots: magic-string: 0.30.12 periscopic: 3.1.0 + svg-tags@1.0.0: {} + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 @@ -4264,6 +7869,33 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + tailwindcss@3.4.14: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + tar@6.1.12: dependencies: chownr: 2.0.0 @@ -4274,6 +7906,20 @@ snapshots: yallist: 4.0.0 optional: true + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + three@0.166.1: {} tiny-emitter@2.1.0: {} @@ -4284,17 +7930,15 @@ snapshots: tlds@1.255.0: {} - to-fast-properties@2.0.0: {} + tmpl@1.0.5: {} - to-fast-properties@https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz: {} + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - to-regex-range@https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz: - dependencies: - is-number: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz + token-stream@1.0.0: {} totalist@1.1.0: {} @@ -4305,9 +7949,59 @@ snapshots: dependencies: matchit: 1.1.0 + ts-interface-checker@0.1.13: {} + tslib@2.4.1: {} - typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz: {} + tsx@4.19.1: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + + turbo-darwin-64@2.2.3: + optional: true + + turbo-darwin-arm64@2.2.3: + optional: true + + turbo-linux-64@2.2.3: + optional: true + + turbo-linux-arm64@2.2.3: + optional: true + + turbo-windows-64@2.2.3: + optional: true + + turbo-windows-arm64@2.2.3: + optional: true + + turbo@2.2.3: + optionalDependencies: + turbo-darwin-64: 2.2.3 + turbo-darwin-arm64: 2.2.3 + turbo-linux-64: 2.2.3 + turbo-linux-arm64: 2.2.3 + turbo-windows-64: 2.2.3 + turbo-windows-arm64: 2.2.3 + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-fest@2.19.0: {} + + typescript-auto-import-cache@0.3.3: + dependencies: + semver: 7.6.3 + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + undici-types@6.19.8: {} unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -4320,6 +8014,23 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + universalify@2.0.1: {} + + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + update-check@1.5.4: + dependencies: + registry-auth-token: 3.3.2 + registry-url: 3.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-join@4.0.1: {} url-regex@5.0.0: @@ -4327,11 +8038,18 @@ snapshots: ip-regex: 4.3.0 tlds: 1.255.0 - util-deprecate@1.0.2: - optional: true + util-deprecate@1.0.2: {} + + utils-extend@1.0.8: {} uuid@10.0.0: {} + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + vanilla-jsoneditor@1.0.8(@lezer/common@1.2.3): dependencies: '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) @@ -4370,98 +8088,202 @@ snapshots: vary@1.1.2: {} - vite-aliases@https://registry.npmmirror.com/vite-aliases/-/vite-aliases-0.9.7.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1): + vite-aliases@0.11.7(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1)): dependencies: - chokidar: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz - comment-json: https://registry.npmmirror.com/comment-json/-/comment-json-4.2.3.tgz - consola: https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz - fast-glob: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz - vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) - transitivePeerDependencies: - - '@types/node' - - less - - sass - - stylus - - sugarss - - terser + chokidar: 3.6.0 + comment-json: 4.2.5 + consola: 3.2.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + vite: 5.4.10(@types/node@20.17.0)(sass@1.80.1) - vite-plugin-dynamic-import@https://registry.npmmirror.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.2.4.tgz: + vite-plugin-dynamic-import@1.6.0: dependencies: - fast-glob: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz + acorn: 8.13.0 + es-module-lexer: 1.5.4 + fast-glob: 3.3.2 + magic-string: 0.30.12 - vite-plugin-externalize-deps@0.7.0(vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.10(@types/node@20.17.0)(sass@1.80.1)): dependencies: - vite: https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1) + vite: 5.4.10(@types/node@20.17.0)(sass@1.80.1) - vite-svg-loader@5.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + vite-svg-loader@5.1.0(vue@3.5.12(typescript@5.6.3)): dependencies: svgo: 3.3.2 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) - vite@https://registry.npmmirror.com/vite/-/vite-3.2.4.tgz(@types/node@https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz)(sass@1.80.1): + vite@5.4.10(@types/node@20.17.0)(sass@1.80.1): dependencies: - esbuild: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.16.tgz - postcss: https://registry.npmmirror.com/postcss/-/postcss-8.4.19.tgz - resolve: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz - rollup: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 optionalDependencies: - '@types/node': https://registry.npmmirror.com/@types/node/-/node-18.11.10.tgz - fsevents: 2.3.2 + '@types/node': 20.17.0 + fsevents: 2.3.3 sass: 1.80.1 - vue-chartjs@5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + volar-service-css@0.0.62(@volar/language-service@2.4.6): + dependencies: + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-emmet@0.0.62(@volar/language-service@2.4.6): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-html@0.0.62(@volar/language-service@2.4.6): + dependencies: + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-json@0.0.62(@volar/language-service@2.4.6): + dependencies: + vscode-json-languageservice: 5.4.1 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-pug-beautify@0.0.62(@volar/language-service@2.4.6): + dependencies: + '@johnsoncodehk/pug-beautify': 0.2.2 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-pug@0.0.62: + dependencies: + '@volar/language-service': 2.4.6 + muggle-string: 0.4.1 + pug-lexer: 5.0.1 + pug-parser: 6.0.0 + volar-service-html: 0.0.62(@volar/language-service@2.4.6) + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.6): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-typescript@0.0.62(@volar/language-service@2.4.6): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + vscode-css-languageservice@6.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@5.4.1: + dependencies: + '@vscode/l10n': 0.0.18 + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + vue-chartjs@5.3.1(chart.js@4.4.5)(vue@3.5.12(typescript@5.6.3)): dependencies: chart.js: 4.4.5 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) vue-clipboard3@2.0.0: dependencies: clipboard: 2.0.11 - vue-demi@0.14.10(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + vue-demi@0.14.10(vue@3.5.12(typescript@5.6.3)): dependencies: - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) - vue-i18n@9.13.1(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + vue-i18n@9.13.1(vue@3.5.12(typescript@5.6.3)): dependencies: '@intlify/core-base': 9.13.1 '@intlify/shared': 9.13.1 '@vue/devtools-api': 6.6.4 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) - vue-router@4.4.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + vue-router@4.4.0(vue@3.5.12(typescript@5.6.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) - vue-template-compiler@https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz: + vue-tsc@2.1.6(typescript@5.6.3): dependencies: - de-indent: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz - he: https://registry.npmmirror.com/he/-/he-1.2.0.tgz + '@volar/typescript': 2.4.6 + '@vue/language-core': 2.1.6(typescript@5.6.3) + semver: 7.6.3 + typescript: 5.6.3 - vue-tsc@https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.0.11.tgz(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz): - dependencies: - '@volar/vue-language-core': https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.0.11.tgz - '@volar/vue-typescript': https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.0.11.tgz - typescript: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz - - vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz): + vue@3.5.12(typescript@5.6.3): dependencies: '@vue/compiler-dom': 3.5.12 '@vue/compiler-sfc': 3.5.12 '@vue/runtime-dom': 3.5.12 - '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)) + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) '@vue/shared': 3.5.12 optionalDependencies: - typescript: https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz + typescript: 5.6.3 - vuex@4.1.0(vue@3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz)): + vuex@4.1.0(vue@3.5.12(typescript@5.6.3)): dependencies: '@vue/devtools-api': 6.4.5 - vue: 3.5.12(typescript@https://registry.npmmirror.com/typescript/-/typescript-4.9.3.tgz) + vue: 3.5.12(typescript@5.6.3) w3c-keyname@2.2.8: {} + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + webidl-conversions@3.0.1: optional: true @@ -4480,6 +8302,10 @@ snapshots: string-width: 4.2.3 optional: true + widest-line@4.0.1: + dependencies: + string-width: 5.1.2 + windows-release@5.0.1: dependencies: execa: 5.1.1 @@ -4490,14 +8316,28 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrappy@1.0.2: - optional: true + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 y18n@5.0.8: {} + yallist@3.1.1: {} + yallist@4.0.0: optional: true + yaml@2.6.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -4509,3 +8349,5 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml new file mode 100644 index 00000000..c53e5397 --- /dev/null +++ b/frontend/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'apps/*' + - 'packages/*' \ No newline at end of file diff --git a/frontend/tsconfig.base.json b/frontend/tsconfig.base.json new file mode 100644 index 00000000..447d12b3 --- /dev/null +++ b/frontend/tsconfig.base.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "jsxFactory": "h", + "jsxFragmentFactory": "Fragment", + "types": [ + "vite/client" + ], + "importHelpers": true, + "moduleResolution": "node", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ], + "typeRoots": [ + "src/interfaces" + ] + }, + "include": [ + "src/shims-vue.d.ts", + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "__test__/**/*.spec.ts" + ], + "exclude": [ + "node_modules", + "src/**/*.js" + ] +} diff --git a/frontend/turbo.json b/frontend/turbo.json new file mode 100644 index 00000000..45d17693 --- /dev/null +++ b/frontend/turbo.json @@ -0,0 +1,21 @@ +{ + "tasks": { + "build": { + "dependsOn": [ + "^build" + ], + "outputs": [ + "dist/**" + ] + }, + "crawlab-pro#build": { + "dependsOn": [ + "crawlab-ui#build" + ] + }, + "dev": { + "cache": false + }, + "test": {} + } +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts deleted file mode 100644 index f789644c..00000000 --- a/frontend/vite.config.ts +++ /dev/null @@ -1,68 +0,0 @@ -import {resolve} from 'path'; -import {defineConfig, splitVendorChunkPlugin} from 'vite'; -import vue from '@vitejs/plugin-vue'; -import dynamicImport from 'vite-plugin-dynamic-import'; -import {visualizer} from 'rollup-plugin-visualizer'; -import externalGlobals from 'rollup-plugin-external-globals'; -import {externalizeDeps} from 'vite-plugin-externalize-deps'; - -export default defineConfig({ - build: { - rollupOptions: { - output: { - manualChunks: (id) => { - if (id.includes('node_modules')) { - if (id.includes('@fortawesome')) return '@fortawesome'; - if (id.includes('element-plus')) return 'element-plus'; - if (id.includes('zrender')) return 'zrender'; - if (id.includes('echarts')) return 'echarts'; - if (id.includes('codemirror')) return 'codemirror'; - if (id.includes('atom-material-icons')) return 'atom-material-icons'; - if (id.includes('crawlab-ui')) return 'crawlab-ui';; - return 'vendor.[hash]'; - } - } - }, - external: [ - // 'codemirror', - // 'echarts', - ], - plugins: [ - // @ts-ignore - // externalGlobals({ - // // codemirror: 'CodeMirror', - // echarts: 'echarts', - // }) - ], - } - }, - resolve: { - dedupe: ['vue', 'element-plus', 'codemirror'], - alias: [ - {find: '@', replacement: resolve(__dirname, 'src')}, - ], - extensions: [ - '.js', - '.ts', - '.jsx', - '.tsx', - '.json', - '.vue', - '.scss', - ] - }, - plugins: [ - vue(), - dynamicImport(), - // splitVendorChunkPlugin(), - // externalizeDeps(), - // @ts-ignore - visualizer({ - open: true, - // open: false, - }), - ], - server: { - cors: true, - }, -}); diff --git a/frontend/vue.config.js b/frontend/vue.config.js deleted file mode 100644 index 7914e23a..00000000 --- a/frontend/vue.config.js +++ /dev/null @@ -1,68 +0,0 @@ -const path = require("path") -const CopyWebpackPlugin = require('copy-webpack-plugin') -const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin - -const alias = { - 'crawlab-ui$': 'crawlab-ui/dist/crawlab-ui.umd.min.js', - 'element-plus$': 'element-plus/dist/index.full.min.js', - 'echarts$': 'echarts/dist/echarts.min.js', - 'codemirror$': 'codemirror/lib/codemirror.js', -} - -const optimization = { - splitChunks: { - chunks: 'initial', - minSize: 20000, - minChunks: 1, - maxAsyncRequests: 3, - cacheGroups: { - defaultVendors: { - test: /[\\/]node_modules[\\/]/, - priority: -10, - reuseExistingChunk: true, - }, - default: { - minChunks: 2, - priority: -20, - reuseExistingChunk: true, - }, - }, - }, -} - -const config = { - pages: { - index: { - entry: 'src/main.ts', - template: 'public/index.html', - filename: 'index.html', - title: 'Crawlab | Distributed Web Crawler Platform' - } - }, - outputDir: './dist', - configureWebpack: { - optimization, - resolve: { - alias, - }, - plugins: [] - } -} - -if (['development', 'local'].includes(process.env.NODE_ENV)) { - // do nothing -} else if (['production', 'docker'].includes(process.env.NODE_ENV)) { - config.configureWebpack.plugins.push(new CopyWebpackPlugin({ - patterns: [ - { - from: path.resolve(__dirname, 'public/js'), - } - ] - })) -} else if (['analyze'].includes(process.env.NODE_ENV)) { - config.configureWebpack.plugins.push(new BundleAnalyzerPlugin({ - analyzePort: 8890, - })) -} - -module.exports = config