- tools/check.mjs: проверка синтаксиса JS из <script> в index.html через node --check (перевод номера строки в координаты index.html), exit-коды 0/1. - tests/: каркас headless-суиты на puppeteer-core (ok/waitState/waitCond/sleep, viewport 390x844@2, контроль pageerror/console.error, ИТОГ N/N и exit code). - index.html: минимальный скелет (canvas/DPR/resize, state=MENU, SAVE_KEY, 60x60) без игровой логики — она в фазе 3. - Прогоны: check: OK; npm test — ИТОГ 12/12, exit 0. - Ревью-гейт 2 (Oracle): PASS; minor/nit перенесены в фазу 3.
332 lines
11 KiB
JSON
332 lines
11 KiB
JSON
{
|
|
"name": "life",
|
|
"version": "1.0.0",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "life",
|
|
"version": "1.0.0",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"puppeteer-core": "^25.9.0"
|
|
}
|
|
},
|
|
"node_modules/@puppeteer/browsers": {
|
|
"version": "3.2.4",
|
|
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.4.tgz",
|
|
"integrity": "sha512-okJ6yQMc0SBexOKxMi966omwAV1uAPwgF/YMZdb04gZQPXVjWHl9bmXjZYtIcsN1+PN3Bz4iFfGK3g+c6lZJ0Q==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"modern-tar": "^0.8.5",
|
|
"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/ansi-regex": {
|
|
"version": "6.4.0",
|
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz",
|
|
"integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==",
|
|
"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==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=12"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/chromium-bidi": {
|
|
"version": "157.0.8090-0",
|
|
"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-157.0.8090-0.tgz",
|
|
"integrity": "sha512-KJw7IQgqXwxpJgJlEIPg5mr2ZoqA+jkTRtc5EABI7sUJ3bu3cpI7NuEBoj4Gn1AsF78CaT9So5WQWspK3/wYag==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"mitt": "^3.0.1",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"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==",
|
|
"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==",
|
|
"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/devtools-protocol": {
|
|
"version": "0.0.1696802",
|
|
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1696802.tgz",
|
|
"integrity": "sha512-FO5/SENfvc2K8wRnWQflKcwuoTH4dBkXCWTQ9ebIWtuX8JM5+ZvCotaEmkfh21pO7TvIKGTM3hG4xFiq9WTwmg==",
|
|
"license": "BSD-3-Clause"
|
|
},
|
|
"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==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/escalade": {
|
|
"version": "3.2.0",
|
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
|
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=6"
|
|
}
|
|
},
|
|
"node_modules/get-caller-file": {
|
|
"version": "2.0.5",
|
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
|
"license": "ISC",
|
|
"engines": {
|
|
"node": "6.* || 8.* || >= 10.*"
|
|
}
|
|
},
|
|
"node_modules/get-east-asian-width": {
|
|
"version": "1.7.0",
|
|
"resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",
|
|
"integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
}
|
|
},
|
|
"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==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/modern-tar": {
|
|
"version": "0.8.5",
|
|
"resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.5.tgz",
|
|
"integrity": "sha512-snEhs+6G5Tjd4I7tLCDOaoln2RgE0bD19RzEKgvgK2hZ5VKy3MpLhLTZ2fWpXSTg4K2cyPwp+VHATFJhxfnOeA==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
}
|
|
},
|
|
"node_modules/puppeteer-core": {
|
|
"version": "25.13.0",
|
|
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.13.0.tgz",
|
|
"integrity": "sha512-cyBS0OEx3e9NS53B5F6+UazXtR7f9Tw0cR1/FbPW59/hV6JPZbkIiMnxK2543IkFp3rsGlLn1iPDLF77TJsJsA==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@puppeteer/browsers": "3.2.4",
|
|
"chromium-bidi": "157.0.8090-0",
|
|
"devtools-protocol": "0.0.1696802",
|
|
"typed-query-selector": "^2.12.3",
|
|
"webdriver-bidi-protocol": "1.0.1",
|
|
"ws": "^8.21.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.12.0"
|
|
}
|
|
},
|
|
"node_modules/string-width": {
|
|
"version": "8.3.0",
|
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",
|
|
"integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==",
|
|
"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==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"ansi-regex": "^6.2.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=12"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/typed-query-selector": {
|
|
"version": "2.12.3",
|
|
"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.3.tgz",
|
|
"integrity": "sha512-/dtuMZyutHLlrxWhhC1uib00ELUr2dZ8C9B8YzZYsJmeE3V56OxRblrSM2UaF142pcMtak7ehZ6+poWGeehNIg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/webdriver-bidi-protocol": {
|
|
"version": "1.0.1",
|
|
"resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-1.0.1.tgz",
|
|
"integrity": "sha512-WXWs/aXF2a6Al1Z2/V/7Gp2oPZOAAmHjJOTmv4KCXRJ122IMj3tSSMc6a4q3K4QOmhQbse/Ahr+oTVJOU2dUiw==",
|
|
"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==",
|
|
"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==",
|
|
"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.22.0",
|
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz",
|
|
"integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==",
|
|
"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==",
|
|
"license": "ISC",
|
|
"engines": {
|
|
"node": ">=10"
|
|
}
|
|
},
|
|
"node_modules/yargs": {
|
|
"version": "18.2.0",
|
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz",
|
|
"integrity": "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==",
|
|
"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==",
|
|
"license": "ISC",
|
|
"engines": {
|
|
"node": "^20.19.0 || ^22.12.0 || >=23"
|
|
}
|
|
},
|
|
"node_modules/zod": {
|
|
"version": "4.6.5",
|
|
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz",
|
|
"integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==",
|
|
"license": "MIT",
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/colinhacks"
|
|
}
|
|
}
|
|
}
|
|
}
|