{"_id":"@1game/test","_rev":"24-e6fbaaad961dd67b2f7b11279f99b0f0","name":"@1game/test","dist-tags":{"latest":"1.21.0"},"versions":{"1.10.1":{"name":"@1game/test","version":"1.10.1","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.10.1","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"b804470cb8a386aba685c02cf84bd98b3555aaf9","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.10.1.tgz","fileCount":75,"integrity":"sha512-HZZJZPoKsIrGTUqru9BUXRh2nNigc5QAXoYQs0xNKux/GY4+D450UxrwHhn6UkGSlOtBf0ACirTJ+iCMw/80zw==","signatures":[{"sig":"MEUCIQDS/A1A4c1DSuYVuti8h3ACscQsRBl5FIbo7kxqnutgjgIgBxszpVitiZqHKSSQJB+H2oE0NqSsEZL2ax/8u14zBOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107727},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.10.1"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.10.1_1784653777470_0.5402758177111302","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@1game/test","version":"1.11.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.11.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"ead23ef92226de73c8e45d9626532e396614d780","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.11.0.tgz","fileCount":75,"integrity":"sha512-6xtcYiqtJMstHs0i3v29DH3j0105OOYuBSwj+B5Nov4JYW5kLV3j4jrPNfSnU6hZ/ho89ihzOIkosNDe1jAlaQ==","signatures":[{"sig":"MEYCIQCNd1PeSKHYcWcwhperKix1gp2unJE1GUuvBHyHoPeONgIhAImxw/HYCHTuyaNZQIGUSzY4DEmN/i2ZVAe+3yjuRadr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.11.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.11.0_1784915998989_0.9461078530986766","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@1game/test","version":"1.12.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.12.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"45d11ca1c0219597a5d2d95cf6f81915799c47d4","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.12.0.tgz","fileCount":75,"integrity":"sha512-QkdWjdpeoxXRjyUDUd1/nyfI1YBAaZR1HziUNZ+djjbWeFbtNkvYOyqfYUg2z8hH2y7Y53EWo6F9C5f6kTqOIw==","signatures":[{"sig":"MEYCIQC5o+ckNvzoK2cBFQ8CmGZ2zidizIxrnQ7PDa/pdOcuxAIhAKnuRb/alo+MJiiZI8UpOfS/4HPLSJ9nZZ6CYKypoeSD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.12.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.12.0_1784992290343_0.721199536190352","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@1game/test","version":"1.12.1","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.12.1","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"77d30a54419d7b6c959e405b584fc64dd5c5661e","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.12.1.tgz","fileCount":75,"integrity":"sha512-/HZkVo4HfD+qz1RIfpSlMFKud8IPdga2lP3HqtscnLEKA//QuG4R2Uwiikl6ggsF93baOKk2K8gdSx1HwsyeAA==","signatures":[{"sig":"MEQCIAFzJd5cZHdu+QEuIP/cMx9kLQ1V0vXIl4QHxDLev0jUAiAuyj83cimX5U6d1GExwbSeqGVj1WdekPL6BovmnuY81g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.12.1"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.12.1_1785092856738_0.9503205008273585","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@1game/test","version":"1.13.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.13.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"5204a5eb14a2abb597fad030eb25add9aab6cad4","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.13.0.tgz","fileCount":75,"integrity":"sha512-jRdyLtZUQvKbpI2Ki2FxSzmb/0VloY1wyeCEhJozjrQYz/k4plaR0pJluVs3qY4/8S46fFCkUW+iYUvx66EM7w==","signatures":[{"sig":"MEQCIDM48dH5gPQNoyq5fxBoyxxFK/svQAEL5VfVR60YoGvZAiAKc8XngrPdj+qdM8VHlA/9MbWT/9OfeRgZSFp38+E0Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.13.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.13.0_1785158819452_0.3436880789796053","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@1game/test","version":"1.14.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.14.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"4e636e8e4a82347acf3e44581650218ae604dc3f","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.14.0.tgz","fileCount":75,"integrity":"sha512-WbRstlrlrlLV7NYCtD8ZelA5Fphqvd3qywj3tZVaFdZJky0zHziLUMfGKAg5LeLKV1sHQjOQfXsQ7gCpNYucqA==","signatures":[{"sig":"MEUCIDJnEqDlG6DVNf5IovXz92rBKVh08Onv1b1g1762X2abAiEA2E1HMSIzCWtVqIv+QuL6Ltr44CZsojQNUMJ+C5Mtn0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.14.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.14.0_1785645176261_0.1420753865905855","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@1game/test","version":"1.14.1","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.14.1","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"711cc0fe17435b09601d7e04ccad6523f923096d","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.14.1.tgz","fileCount":75,"integrity":"sha512-Do5NC61M6GS9LpDcAukveu74FTz7G97x9kJdLZEvPYqoqrZKyy1HYsBhVakvdp0TICtelncOnlfQXMDB7WXdfQ==","signatures":[{"sig":"MEUCIHDJ8hWAsThT2mTd51eBPD+ea51Q2kvewhxOR8xJDMrCAiEAv/hs+M8kpofB29nwUCeCkwBGiS0DRCM5q5qfDYAb1fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.14.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.14.1"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.14.1_1785691304694_0.95913830421849","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@1game/test","version":"1.15.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.15.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"b5ea47d680733dc02673083428de7eff0c147a0d","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.15.0.tgz","fileCount":75,"integrity":"sha512-IpTi4+uQtqso4Wk1K+kImyNsHtFo6xFwPrCgETX4Xur0sS/jE4Lvu3xt0r5nSXrQ+hhjnyLk/Bi31SgUvptKKQ==","signatures":[{"sig":"MEYCIQDQPwWm6iQj7HB/basj5AS2beZc9wGbEusQtz0Tn+QXgAIhAPOCB4GgWBv32j6fCHldq4ptFvfiPQbPPFjaJLRvbTVY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.15.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.15.0_1785865792216_0.8920485281983028","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@1game/test","version":"1.15.1","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.15.1","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"8d655fe7f7c83f2148023cc8538f249b12f76db3","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.15.1.tgz","fileCount":75,"integrity":"sha512-fN0y1FMY/qBg8nSI4UtO9e/3QhNGDyZrsMmlvs94Qrty8u7e/3DiOm808b3Gq3ncdmj2a7/Eh6XdL/KFR8tP4w==","signatures":[{"sig":"MEUCIQCMXKjnoVvDAVti9TLZZOHzcxxDyXM+aDApFpA8ZenUkwIgFA5sB22xd4M80STz/KJyKNAQhuVF0NZKNHdrlEZQ7wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.15.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.15.1"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.15.1_1785866355644_0.7829998697179965","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@1game/test","version":"1.16.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.16.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"70460ea4f6c7a31bdec1b6fabf3b6fdedab0cf86","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.16.0.tgz","fileCount":75,"integrity":"sha512-cgURww9H/2AomE4sK/3OA87t3MRcm8qGwnVHj5YqGlEMn5NFc+qTn72ANiH2YKIJHaVa5kl6jtZWqGSMgl+CxA==","signatures":[{"sig":"MEUCIQCnKbpgc/v6qdhWxfFtHaR6AM8J4PzEvDgPvwUAP6IEcQIgbiZ1lgPYxu5g3qorMWGfP4MftHn1bJV4qaU3tsYh7Qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.16.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.16.0_1786025556044_0.14267462753559634","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@1game/test","version":"1.17.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.17.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"572a54a72b0476ad9c5a5e47060af45e072a0d72","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.17.0.tgz","fileCount":75,"integrity":"sha512-3h4fCrKhs2rK3mPvjvl+27KLVOlWuLhDn43KAQpMRuiEu4Eb+dG96reF+53T3BvZingvNYb6bYLt1H46nI4E7g==","signatures":[{"sig":"MEQCICqBw8ql6yU6jiCfiimKwMYcwuJWbp+KKBGFJXzGztE2AiB6fB38GBVI5baoywJAYMWxB9Ne7hHpz74ohcczOC8Qjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.17.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.17.0_1786464870277_0.5321308880951534","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"@1game/test","version":"1.17.1","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.17.1","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"921cddf6d757df43fd421183beb5e4692ce7c153","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.17.1.tgz","fileCount":75,"integrity":"sha512-xNjhqU/AamxRGzY2sGjBvuVzYyLIz60hiFEHNaw9jbZ5rcfyfD0XjTCmrIcMM4vRoplsahYpZawqpgm5ElTfIA==","signatures":[{"sig":"MEUCIE9CYDY/lvpAAdC3pQZIvgJtxT2I06sFuzON29lkgPKVAiEA9QZKKn/WFYhxzUQjXcRrk0dbh470u7gjfAj9pbBX+eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.17.1"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.17.1_1786465279890_0.890967405272808","host":"s3://npm-registry-packages-npm-production"}},"1.17.2":{"name":"@1game/test","version":"1.17.2","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.17.2","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"5bb79491532cf0eea2e9f5dfd961a4143baf13e0","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.17.2.tgz","fileCount":75,"integrity":"sha512-kmROfq17TZch9unDDbwNsHz8HcwtwdvmBQRqLdfUj5U8JnmjqEEMmtKLdywoquR6wAerWDD1KDQfjw4hqnvMQQ==","signatures":[{"sig":"MEUCIBapVMAtMFg5fbpM/1kOb/2TgHQqbmz0brVyz2xDx09lAiEA8GfJxJWOPD+V00TpogfG8lPcsenG7734/4N8uggQ8CM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.17.2"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.17.2_1786500666878_0.23818072024295134","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@1game/test","version":"1.18.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.18.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"6993eb7d3de0357d49affad74e1d489a74f2143a","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.18.0.tgz","fileCount":75,"integrity":"sha512-89YCuJJri5srxkTfXyOv/WC2WsIMaQKx3FHAr7y3fW+2bG7a1s1VR0DI8nAzHHQWP9smI/ERlWkvvFzo/wwLzA==","signatures":[{"sig":"MEYCIQCiaFwomp9A1bA/4rjU0SL7rjVEJ8Twwy+3DrCxqbti+gIhAOiLPNCxlTd2yQqB3L6b4NPK0GVOhU8ukNkwHEtLN5j5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.18.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.18.0_1786988123903_0.9118132620602994","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@1game/test","version":"1.19.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.19.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"a4cc8f19fd5c3e8331e4ee58c3a18ae68a0768b8","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.19.0.tgz","fileCount":75,"integrity":"sha512-z33D/y8EUBAOu8jiITxF+lbrGbaXWw1a7LkfJFbnvVXN90UVCefAEQruf3Yuj5czbXUu08AX16T1rGxUoaIhxw==","signatures":[{"sig":"MEUCIAPvsbJMqTPfGBgzegF/lLHT3tY8U4RgwF9kn9WwdJueAiEAqbbU6EHEUWp51LWtNTVTFx3KsgNbF3Ww2m+d6tJfVyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115272},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit && pnpm run test:e2e","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:e2e":"playwright test -c playwright.config.ts","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Playwright-aligned logic-only E2E helpers for 1Game gameplay (gamePlayer.createGame + GameLocator)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^1.6.1","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@playwright/test":"^1.58.1","@1game/engine-bundle":"1.19.0"},"peerDependencies":{"@playwright/test":"^1.58.1"},"_npmOperationalInternal":{"tmp":"tmp/test_1.19.0_1787246473032_0.39649562539768435","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@1game/test","version":"1.20.0","author":"linlinfaxin@163.com","license":"MIT","_id":"@1game/test@1.20.0","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"dist":{"shasum":"e8d93aac8bcac9c723294e891ff594323395a1b9","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.20.0.tgz","fileCount":99,"integrity":"sha512-gLvEdad8pnwv+ygOvHtSinN7qVWpDkEaWyW5vL4WsfnDW72ADqqKkOYxMF2cxoBSvlJa9vxi5PF4MQXgY3MDQQ==","signatures":[{"sig":"MEUCIQCuByPVj5pbzhokfJhvVMZudberVqiqlnn505MLBpZh8QIgIiq+ElLzgO+lf7dmAFTHh+YGYyzBEZvFIy7NWQ14cmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194214},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./ui":{"types":"./lib/ui.d.ts","import":"./lib/ui.js","default":"./lib/ui.js"},"./config":{"types":"./lib/config.d.ts","import":"./lib/config.js","default":"./lib/config.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && pnpm run test:unit","build":"pnpm run clean && tsc -p tsconfig.json","clean":"rimraf lib","test:unit":"vitest run -c vitest.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","prepublish":"pnpm run build","test:watch":"vitest -c vitest.config.ts"},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"description":"Vitest gameplay helpers for 1Game (gamePlayer.createGame + GameLocator + 1gamerecord artifacts)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@1game/cli-1gameplay":"1.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","vitest":"^4.1.11","solid-js":"^1.9.0","typescript":"^5.9.3","@types/node":"^25.2.1","@1game/engine-bundle":"1.20.0"},"peerDependencies":{"vitest":"^4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/test_1.20.0_1787844443511_0.8173143512556948","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@1game/test","description":"Vitest gameplay helpers for 1Game (gamePlayer.createGame + GameLocator + 1gamerecord artifacts)","version":"1.21.0","license":"MIT","author":"linlinfaxin@163.com","publishConfig":{"access":"public"},"type":"module","private":false,"main":"./lib/index.js","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./session":{"types":"./lib/session/index.d.ts","import":"./lib/session/index.js","default":"./lib/session/index.js"},"./config":{"types":"./lib/config.d.ts","import":"./lib/config.js","default":"./lib/config.js"},"./ui":{"types":"./lib/ui.d.ts","import":"./lib/ui.js","default":"./lib/ui.js"},"./package.json":"./package.json"},"dependencies":{"@1game/cli-1gameplay":"1.21.0"},"peerDependencies":{"vitest":"^4.1.11"},"devDependencies":{"@types/node":"^25.2.1","rimraf":"^6.1.2","solid-js":"^1.9.0","typescript":"^5.9.3","vitest":"^4.1.11","@1game/engine-bundle":"1.21.0"},"scripts":{"clean":"rimraf lib","prepublish":"pnpm run build","build":"pnpm run clean && tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"pnpm run build && pnpm run test:unit","test:unit":"vitest run -c vitest.config.ts","test:watch":"vitest -c vitest.config.ts"},"_nodeVersion":"22.14.0","_id":"@1game/test@1.21.0","dist":{"integrity":"sha512-io7TWbm04NXngkmc4Dad+64o0JNA7Zj90eQTEicI3LQl5O09tXYmPioJ5SNU67kSzErE8dworUba/nW8DKmBfw==","shasum":"249a8b468f7bb42b986f92cbe8920b5898ed2710","tarball":"https://registry.npmjs.org/@1game/test/-/test-1.21.0.tgz","fileCount":99,"unpackedSize":194214,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDRi75zw0XmCeob2X4ZTwtGKHSga3a6noibsvSx3R2iQAiEA8WHGYF4SdsHWKtz7I2R7VnxRSjkD+GotKC/Mq0OfdcI="}]},"_npmUser":{"name":"linfaxin","email":"linlinfaxin@163.com"},"directories":{},"maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/test_1.21.0_1788340359493_0.6664515550154504"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-11T10:17:59.116Z","modified":"2026-09-02T09:12:39.859Z","1.9.0":"2026-07-11T10:13:57.753Z","1.9.1":"2026-07-11T10:17:59.339Z","1.10.0":"2026-07-19T17:18:27.473Z","1.10.1":"2026-07-21T17:09:37.587Z","1.11.0":"2026-07-24T17:59:59.205Z","1.12.0":"2026-07-25T15:11:30.479Z","1.12.1":"2026-07-26T19:07:36.893Z","1.13.0":"2026-07-27T13:26:59.662Z","1.14.0":"2026-08-02T04:32:56.416Z","1.14.1":"2026-08-02T17:21:44.921Z","1.15.0":"2026-08-04T17:49:52.368Z","1.15.1":"2026-08-04T17:59:15.780Z","1.16.0":"2026-08-06T14:12:36.228Z","1.17.0":"2026-08-11T16:14:30.407Z","1.17.1":"2026-08-11T16:21:20.043Z","1.17.2":"2026-08-12T02:11:07.021Z","1.18.0":"2026-08-17T17:35:24.093Z","1.19.0":"2026-08-20T17:21:13.265Z","1.20.0":"2026-08-27T15:27:23.667Z","1.21.0":"2026-09-02T09:12:39.646Z"},"author":"linlinfaxin@163.com","license":"MIT","description":"Vitest gameplay helpers for 1Game (gamePlayer.createGame + GameLocator + 1gamerecord artifacts)","maintainers":[{"name":"linfaxin","email":"linlinfaxin@163.com"}],"readme":"# `@1game/test`\n\nVitest **logic-only** gameplay helpers for 1Game — `gamePlayer.createGame` / `Game` / locators, with the test process captured as a `.1gamerecord` (frame comments + optional scene pins). Replay via `1gameplay bundle-player-html` or `1game test ui`.\n\nPeer: `vitest` (^4.1.11).\n\n## Install\n\n```bash\npnpm add -D @1game/test vitest\n```\n\nScaffold:\n\n```bash\n1game init my-game --with-e2e     # empty dir → then: pnpm install && pnpm test:gameplay\n1game test init                   # existing project (add --force to overwrite)\n```\n\n## Quick start\n\n```ts\nimport { test, expect } from '@1game/test';\n\ntest('store advances', async ({ gamePlayer }) => {\n  const game = await gamePlayer.createGame('./src/game.tsx');\n  await expect(game).toMatchStore({ count: 0 });\n  await game.tick(10);\n  const plus = game.locator({ text: '+1' });\n  await expect(plus).toBeVisible();\n  await plus.click();\n  await expect(game).toMatchStore({ count: 1 });\n});\n```\n\n`vitest.config.ts`:\n\n```ts\nimport { define1gameConfig } from '@1game/test/config';\n\nexport default define1gameConfig({\n  record: { outDir: 'test-results/records', keep: 'always' },\n});\n```\n\nAfter `pnpm test:gameplay`:\n\n```bash\n1game test ui\n# serves http://127.0.0.1:<port>/ until Ctrl+C (Chrome can iframe the replay). --no-open only writes files.\n```\n\n## Public API\n\nMain export (`@1game/test`): `test` / `expect` / `it` (same fixture), `createGamePlayer`, `Game`, `GamePlayer`.\n\nConfig: `@1game/test/config` — `define1gameConfig`.\n\nSession (no vitest): `@1game/test/session`.\n\nUI helpers: `@1game/test/ui` — used by `1game test ui`.\n\n### Fixture `gamePlayer`\n\n| Method                         | Description                                        |\n| ------------------------------ | -------------------------------------------------- |\n| `createGame(entry, opts?)`     | Build archive from entry                           |\n| `openGame(archivePath, opts?)` | Open an existing `.1gamerecord`                    |\n| `teardown(task)`               | Flush comments, copy kept archives, always dispose |\n\n### `Game` locators\n\nRender-tree locators (not CSS). Must match **exactly one** node.\n\n| Method                              | Description                                                     |\n| ----------------------------------- | --------------------------------------------------------------- |\n| `locator({ text \\| name \\| uid })`  | Unique match; `getByText` / `getByName` / `getByUid` are sugars |\n| `tick` / `input.click` / `keypress` | Also write `ACTION` frame comments                              |\n\n### `expect` (auto `frame_comments`)\n\n`expect(game)` / `expect(locator)` from `@1game/test` always enqueue a comment (`authorId: 1game-test`). Plain `expect(1).toBe(1)` does not.\n\n| Matcher                                                   | Anchor                         |\n| --------------------------------------------------------- | ------------------------------ |\n| `toMatchStore(partial)`                                   | none                           |\n| `toHitAt(x, y, expected?)`                                | click point                    |\n| `toBeVisible` / `toHaveText` / `toHaveName` (unique node) | node bbox center `scene_point` |\n| `toBeHidden` (no node)                                    | none                           |\n\nActions also comment: `tick`, `locator.click`, `input.click` / `keypress`. Locator click uses the same scene pin.\n\n## Record artifacts\n\nDefault `keep: 'always'`. Each vitest run writes `test-results/records/<runId>/` plus a `LATEST` pointer. `index.json` lists tests for `1game test ui`. `on-failure` / `never` remain available.\n\n| Env                        | Role                                                           |\n| -------------------------- | -------------------------------------------------------------- |\n| `ONEGAME_TEST_WORKERS`     | Vitest `maxWorkers` (default 1)                                |\n| `ONEGAME_TEST_RECORD_DIR`  | Artifact directory (run folder when using `define1gameConfig`) |\n| `ONEGAME_TEST_RECORD_KEEP` | `always` / `on-failure` / `never`                              |\n| `CI`                       | `retry: 1` via `define1gameConfig`                             |\n\n## Requirements\n\n- Game must use `enableHistory: true` and `renderGame(..., { bindStore: storeHistory })`.\n- Locators must match **exactly one** node.\n","readmeFilename":""}