diff --git a/导出设计标准规范.md b/Document/导出设计标准规范.md similarity index 100% rename from 导出设计标准规范.md rename to Document/导出设计标准规范.md diff --git a/开发计划.md b/Document/开发计划.md similarity index 100% rename from 开发计划.md rename to Document/开发计划.md diff --git a/粒子系统开发阶段一.md b/Document/粒子系统开发阶段一.md similarity index 100% rename from 粒子系统开发阶段一.md rename to Document/粒子系统开发阶段一.md diff --git a/网页粒子系统阶段七.md b/Document/网页粒子系统阶段七.md similarity index 100% rename from 网页粒子系统阶段七.md rename to Document/网页粒子系统阶段七.md diff --git a/网页粒子系统阶段三.md b/Document/网页粒子系统阶段三.md similarity index 100% rename from 网页粒子系统阶段三.md rename to Document/网页粒子系统阶段三.md diff --git a/网页粒子系统阶段九.md b/Document/网页粒子系统阶段九.md similarity index 100% rename from 网页粒子系统阶段九.md rename to Document/网页粒子系统阶段九.md diff --git a/网页粒子系统阶段二.md b/Document/网页粒子系统阶段二.md similarity index 100% rename from 网页粒子系统阶段二.md rename to Document/网页粒子系统阶段二.md diff --git a/网页粒子系统阶段五.md b/Document/网页粒子系统阶段五.md similarity index 100% rename from 网页粒子系统阶段五.md rename to Document/网页粒子系统阶段五.md diff --git a/网页粒子系统阶段八.md b/Document/网页粒子系统阶段八.md similarity index 100% rename from 网页粒子系统阶段八.md rename to Document/网页粒子系统阶段八.md diff --git a/网页粒子系统阶段六.md b/Document/网页粒子系统阶段六.md similarity index 100% rename from 网页粒子系统阶段六.md rename to Document/网页粒子系统阶段六.md diff --git a/网页粒子系统阶段十.md b/Document/网页粒子系统阶段十.md similarity index 100% rename from 网页粒子系统阶段十.md rename to Document/网页粒子系统阶段十.md diff --git a/网页粒子系统阶段十一.md b/Document/网页粒子系统阶段十一.md similarity index 100% rename from 网页粒子系统阶段十一.md rename to Document/网页粒子系统阶段十一.md diff --git a/网页粒子系统阶段四.md b/Document/网页粒子系统阶段四.md similarity index 100% rename from 网页粒子系统阶段四.md rename to Document/网页粒子系统阶段四.md diff --git a/重构设计.md b/Document/重构设计.md similarity index 100% rename from 重构设计.md rename to Document/重构设计.md diff --git a/headless-empty.mjs b/headless-empty.mjs deleted file mode 100644 index d19534c..0000000 --- a/headless-empty.mjs +++ /dev/null @@ -1,58 +0,0 @@ -import puppeteer from 'puppeteer-core' -const CHROME = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -const URL = 'http://localhost:5173/' -const b = await puppeteer.launch({ - executablePath: CHROME, headless: 'new', - args: ['--no-sandbox','--use-gl=swiftshader','--enable-unsafe-swiftshader','--window-size=1400,900'], -}) -try { - const p = await b.newPage() - await p.setViewport({ width: 1400, height: 900 }) - const errs = [] - p.on('pageerror', (e) => errs.push('PAGEERROR: ' + e.message)) - - await p.goto(URL, { waitUntil: 'networkidle2', timeout: 30000 }) - await new Promise((r) => setTimeout(r, 2500)) - - // 1) 初期应为空态 - const init = await p.evaluate(() => { - const empty = document.querySelector('.empty') - const animSelect = document.querySelector('.topbar select') - const sysNames = [...document.querySelectorAll('.sys-name')].map(e => e.textContent) - return { - emptyShown: !!empty, - emptyTitle: empty?.querySelector('.empty-title')?.textContent || null, - hasAnimSelect: !!animSelect, - systemCount: sysNames.length, - loadBtn: [...document.querySelectorAll('.topbar button')].map(e=>e.textContent).join('|'), - } - }) - - // 2) 点击"加载示例骨骼" - await p.evaluate(() => { - const btn = [...document.querySelectorAll('.topbar button')].find((b) => b.textContent.includes('加载示例骨骼')) - if (btn) btn.click() - }) - await new Promise((r) => setTimeout(r, 3000)) - - const after = await p.evaluate(() => { - const animSelect = document.querySelector('.topbar select') - const opts = animSelect ? [...animSelect.querySelectorAll('option')].map(o => o.textContent) : [] - return { - emptyShown: !!document.querySelector('.empty'), - animOptionCount: opts.length, - firstOpts: opts.slice(0, 6), - sysCount: [...document.querySelectorAll('.sys-name')].length, - hud: document.querySelector('.hud')?.innerText?.replace(/\s+/g,' ').trim() || null, - boneSelect: document.querySelector('.group select')?.textContent?.split('\n').map(s=>s.trim()).filter(Boolean).slice(0,8) || [], - } - }) - - await p.screenshot({ path: '/tmp/empty-after-load.png' }) - console.log('=== 初始(应空态) ===') - console.log(JSON.stringify(init, null, 2)) - console.log('=== 加载骨骼后 ===') - console.log(JSON.stringify(after, null, 2)) - console.log('=== 错误 ===') - console.log(errs.join('\n') || '(无)') -} finally { await b.close() } diff --git a/headless-new.mjs b/headless-new.mjs deleted file mode 100644 index ff2a02f..0000000 --- a/headless-new.mjs +++ /dev/null @@ -1,30 +0,0 @@ -import puppeteer from 'puppeteer-core' -const CHROME='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -const b=await puppeteer.launch({executablePath:CHROME,headless:'new',args:['--no-sandbox','--use-gl=swiftshader','--enable-unsafe-swiftshader','--window-size=1400,900']}) -try{ - const p=await b.newPage() - await p.setViewport({width:1400,height:900}) - const errs=[] - p.on('pageerror',e=>errs.push('PAGEERR: '+e.message)) - await p.goto('http://localhost:5173/',{waitUntil:'networkidle2',timeout:30000}) - await new Promise(r=>setTimeout(r,2500)) - const r=await p.evaluate(()=>({ - groupTitles: [...document.querySelectorAll('.group-head')].map(e=>e.textContent.trim()), - hasDirectionModule: [...document.querySelectorAll('.group-head')].some(e=>e.textContent.includes('方向')), - shapeHasAngle: (()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射器形状'));const t=g?.querySelector('.group-body')?.textContent||'';return t.includes('角度°')&&t.includes('扩散°')})(), - emitHasBur: (()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射模式'));const t=g?.querySelector('.group-body')?.textContent||'';return t.includes('爆发')&&t.includes('持续')})(), - })) - // 点一下"发射器形状"折叠 - await p.evaluate(()=>{const h=[...document.querySelectorAll('.group-head')].find(e=>e.textContent.includes('发射器形状'));h?.click()}) - await new Promise(r=>setTimeout(r,300)) - const collapsed=await p.evaluate(()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射器形状'));return {caret:g?.querySelector('.caret')?.textContent, visible: g? g.querySelector('.group-body')?.offsetParent ? true : false : '?'}}) - await p.screenshot({path:'/tmp/panel-new.png'}) - console.log('=== 分组标题 ===') - console.log(JSON.stringify(r.groupTitles,null,2)) - console.log('方向独立模块?', r.hasDirectionModule) - console.log('形状组含角度/扩散?', r.shapeHasAngle) - console.log('发射模式组含持续/爆发?', r.emitHasBur) - console.log('折叠后:', JSON.stringify(collapsed)) - console.log('=== 错误 ===') - console.log(errs.join('\n')||'(无)') -}finally{await b.close()} diff --git a/headless-ns.mjs b/headless-ns.mjs deleted file mode 100644 index 4b7231c..0000000 --- a/headless-ns.mjs +++ /dev/null @@ -1,39 +0,0 @@ -import puppeteer from 'puppeteer-core' -const CHROME='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -const b=await puppeteer.launch({executablePath:CHROME,headless:'new',args:['--no-sandbox','--use-gl=swiftshader','--enable-unsafe-swiftshader','--window-size=1400,900']}) -try{ - const p=await b.newPage() - await p.setViewport({width:1400,height:900}) - const errs=[] - p.on('pageerror',e=>errs.push('PAGEERR: '+e.message)) - await p.goto('http://localhost:5173/',{waitUntil:'networkidle2',timeout:30000}) - await new Promise(r=>setTimeout(r,2500)) - const r=await p.evaluate(()=>({ - groupTitles:[...document.querySelectorAll('.group-head')].map(e=>e.textContent.trim()), - nsCount:document.querySelectorAll('.ns').length, - nsRange:document.querySelectorAll('.ns-range').length, - nsNum:document.querySelectorAll('.ns-num').length, - // 第一个数值滑块标签+当前值 - firstNs:(()=>{const e=document.querySelector('.ns');return e?{label:e.querySelector('.ns-label')?.textContent,num:e.querySelector('.ns-num')?.value}:null})(), - })) - // 改一个数值框:把"速率/秒"的数字框改值 - const before=await p.evaluate(()=>document.querySelector('.hud')?.innerText) - const changed=await p.evaluate(()=>{ - // 找到 label=速率/秒 的 .ns-num - const ns=[...document.querySelectorAll('.ns')].find(n=>n.querySelector('.ns-label')?.textContent.includes('速率')) - const num=ns?.querySelector('.ns-num') - if(num){ const old=num.value; num.value='150'; num.dispatchEvent(new Event('input',{bubbles:true})); return {changed:true,old,new:num.value} } - return {changed:false} - }) - await new Promise(r=>setTimeout(r,2500)) - const after=await p.evaluate(()=>document.querySelector('.hud')?.innerText) - const rateVal=await p.evaluate(()=>{const ns=[...document.querySelectorAll('.ns')].find(n=>n.querySelector('.ns-label')?.textContent.includes('速率'));return ns?.querySelector('.ns-num')?.value}) - await p.screenshot({path:'/tmp/panel-numslider.png'}) - console.log('=== 分组 ==='); console.log(JSON.stringify(r.groupTitles)) - console.log('NumSlider: 控件=',r.nsCount,'滑块=',r.nsRange,'数字框=',r.nsNum) - console.log('首控件=', JSON.stringify(r.firstNs)) - console.log('改速率:', JSON.stringify(changed), '改后数字框值=', rateVal) - console.log('HUD before:', before?.replace(/\s+/g,' ').trim()) - console.log('HUD after :', after?.replace(/\s+/g,' ').trim()) - console.log('=== 错误 ==='); console.log(errs.join('\n')||'(无)') -}finally{await b.close()} diff --git a/package-lock.json b/package-lock.json index e880855..0ec683c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "devDependencies": { "@types/node": "^20.19.43", "@vitejs/plugin-vue": "^5.2.1", - "puppeteer-core": "^25.9.0", "typescript": "^5.7.2", "vite": "^6.0.5", "vue-tsc": "^2.2.0" @@ -926,35 +925,6 @@ "url": "^0.11.0" } }, - "node_modules/@puppeteer/browsers": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.1.tgz", - "integrity": "sha512-KDz+3qDRdBAlRlMjmKyj6dEs33YHTk/xRHEENSXq6TNnhgoU15ruSHtEBeVF6OZ9tBDY55Se4P0nFMNsipzU9A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "modern-tar": "^0.8.0", - "yargs": "^18.0.0" - }, - "bin": { - "browsers": "lib/main-cli.js" - }, - "engines": { - "node": ">=22.12.0" - }, - "peerDependencies": { - "proxy-agent": ">=8.0.1", - "yauzl": "^2.10.0 || ^3.4.0" - }, - "peerDependenciesMeta": { - "proxy-agent": { - "optional": true - }, - "yauzl": { - "optional": true - } - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.63.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.0.tgz", @@ -1587,32 +1557,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ansi-regex": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", - "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1669,56 +1613,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chromium-bidi": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-17.0.2.tgz", - "integrity": "sha512-5v9GQFhTktFvotn/OFNJBmKLKRAb6n9r0bVCwf7sHgWc3/JryK0bj1nn93L3pHFrfgcsu6Be6EWsDi+1XHTGDg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "engines": { - "node": ">=20.19.0 <22.0.0 || >=22.12.0" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/cliui": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", - "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -1732,13 +1626,6 @@ "dev": true, "license": "MIT" }, - "node_modules/devtools-protocol": { - "version": "0.0.1666840", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1666840.tgz", - "integrity": "sha512-gCcO42XCHKEs7Ag0S7aGYsnJ7hlgrO3qderYqeiY0Eqk+0GFfuvT13IA0hHreJTa2KCdDVyGMeOhdMNmrrTjVg==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1759,13 +1646,6 @@ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", "license": "ISC" }, - "node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, "node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", @@ -1850,16 +1730,6 @@ "@esbuild/win32-x64": "0.25.12" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1914,29 +1784,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", - "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -2067,23 +1914,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, - "node_modules/modern-tar": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.4.tgz", - "integrity": "sha512-gN54ddmyzEg10orwZ2u4OOv+bjpMWdIl5jIkodK97bMq8QBSL5c0D7YX0lT1Ooz+99S7+PvFbnxzdjgHo1r41g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -2261,24 +2091,6 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "license": "MIT" }, - "node_modules/puppeteer-core": { - "version": "25.9.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.9.0.tgz", - "integrity": "sha512-U61rCwSMha62CA/Opy6tCx2Fx+ck7ouiKnbpEApzSoLYMoEu9F71nuFpHL55vmIt33/GYm6eKZVhH2ev0nAIeg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "3.2.1", - "chromium-bidi": "17.0.2", - "devtools-protocol": "0.0.1666840", - "typed-query-selector": "^2.12.2", - "webdriver-bidi-protocol": "0.4.2", - "ws": "^8.21.3" - }, - "engines": { - "node": ">=22.12.0" - } - }, "node_modules/qs": { "version": "6.15.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", @@ -2422,39 +2234,6 @@ "node": ">=0.10.0" } }, - "node_modules/string-width": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", - "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", @@ -2472,13 +2251,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/typed-query-selector": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz", - "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==", - "dev": true, - "license": "MIT" - }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -2633,119 +2405,6 @@ "typescript": ">=5.0.0" } }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.2.tgz", - "integrity": "sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ws": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", - "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.1.0.tgz", - "integrity": "sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^9.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "string-width": "^8.2.1", - "y18n": "^5.0.5", - "yargs-parser": "^22.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=23" - } - }, - "node_modules/yargs-parser": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", - "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=23" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "vendor/spine/spine-core": { "name": "@esotericsoftware/spine-core", "version": "4.2.119", diff --git a/package.json b/package.json index ba99161..a927db5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "devDependencies": { "@types/node": "^20.19.43", "@vitejs/plugin-vue": "^5.2.1", - "puppeteer-core": "^25.9.0", "typescript": "^5.7.2", "vite": "^6.0.5", "vue-tsc": "^2.2.0"