Boots the full WASM kernel (js_of_ocaml mode) + 24 .sxbc modules into a happy-dom DOM environment. Provides helpers for SX eval, DOM queries, island hydration, and click simulation. Smoke test covers: kernel eval, DOM manipulation via SX, component rendering, signals (reset!/swap!/computed), effects, and island hydration with button rendering — 19/19 pass in ~2.5s. Known limitation: reactive text nodes inside islands don't re-render after click (signal updates but cek-reactive-text doesn't flush). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
157 lines
5.0 KiB
JSON
157 lines
5.0 KiB
JSON
{
|
|
"name": "rose-ash",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"dependencies": {
|
|
"playwright": "^1.58.2"
|
|
},
|
|
"devDependencies": {
|
|
"happy-dom": "^20.8.9"
|
|
}
|
|
},
|
|
"node_modules/@types/node": {
|
|
"version": "25.5.0",
|
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
|
|
"integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"undici-types": "~7.18.0"
|
|
}
|
|
},
|
|
"node_modules/@types/whatwg-mimetype": {
|
|
"version": "3.0.2",
|
|
"resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz",
|
|
"integrity": "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@types/ws": {
|
|
"version": "8.18.1",
|
|
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
|
|
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@types/node": "*"
|
|
}
|
|
},
|
|
"node_modules/entities": {
|
|
"version": "7.0.1",
|
|
"resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
|
|
"integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
|
|
"dev": true,
|
|
"license": "BSD-2-Clause",
|
|
"engines": {
|
|
"node": ">=0.12"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/fsevents": {
|
|
"version": "2.3.2",
|
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
}
|
|
},
|
|
"node_modules/happy-dom": {
|
|
"version": "20.8.9",
|
|
"resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.8.9.tgz",
|
|
"integrity": "sha512-Tz23LR9T9jOGVZm2x1EPdXqwA37G/owYMxRwU0E4miurAtFsPMQ1d2Jc2okUaSjZqAFz2oEn3FLXC5a0a+siyA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@types/node": ">=20.0.0",
|
|
"@types/whatwg-mimetype": "^3.0.2",
|
|
"@types/ws": "^8.18.1",
|
|
"entities": "^7.0.1",
|
|
"whatwg-mimetype": "^3.0.0",
|
|
"ws": "^8.18.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
}
|
|
},
|
|
"node_modules/playwright": {
|
|
"version": "1.58.2",
|
|
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz",
|
|
"integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"playwright-core": "1.58.2"
|
|
},
|
|
"bin": {
|
|
"playwright": "cli.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"optionalDependencies": {
|
|
"fsevents": "2.3.2"
|
|
}
|
|
},
|
|
"node_modules/playwright-core": {
|
|
"version": "1.58.2",
|
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz",
|
|
"integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==",
|
|
"license": "Apache-2.0",
|
|
"bin": {
|
|
"playwright-core": "cli.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/undici-types": {
|
|
"version": "7.18.2",
|
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
|
|
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/whatwg-mimetype": {
|
|
"version": "3.0.0",
|
|
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
|
|
"integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=12"
|
|
}
|
|
},
|
|
"node_modules/ws": {
|
|
"version": "8.20.0",
|
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
|
|
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
|
|
"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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|