{"_id":"happy2","_rev":"275-b3ab33642b37c716902ffee2ee131aee","name":"happy2","dist-tags":{"latest":"0.0.46","canary":"0.0.45-canary.30862100314.1"},"versions":{"0.0.5":{"name":"happy2","version":"0.0.5","_id":"happy2@0.0.5","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e9f066a214fa0376dca23e691640ecf025265c57","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.5.tgz","fileCount":373,"integrity":"sha512-WpzpV8URnbd7wGE9qbBxWv7kffcmbgRslV+uYuiseIT0e8RIiGWhkWZCSaJfTDwLM0E9ou9DLlkPpUqOYavr5Q==","signatures":[{"sig":"MEQCIA9gBo+Z9i1mXM7UWjS+DVibOq7xaEuO5AAY0UnKjXI2AiAc6v+0OZNJ/0IZaHNcxxLXMkekbW01/HRljGMqDWrFsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6329186},"main":"./packages/happy2-server/dist/index.js","type":"module","_from":"file:happy2-0.0.5.tgz","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check scripts tsconfig.json && pnpm -r --if-present format:check"},"_npmUser":{"name":"steve.kite","email":"steve@korshakov.com"},"_resolved":"/private/var/folders/39/zqvnt_z11n9b3wfz_gl56sfw0000gn/T/d753356b184d15557e703e35bb3a59af/happy2-0.0.5.tgz","_integrity":"sha512-WpzpV8URnbd7wGE9qbBxWv7kffcmbgRslV+uYuiseIT0e8RIiGWhkWZCSaJfTDwLM0E9ou9DLlkPpUqOYavr5Q==","_npmVersion":"11.11.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"25.8.0","dependencies":{"jose":"^6.1.3","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.17","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@types/node":"^26.1.1","concurrently":"^10.0.3"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.5_1784182330017_0.385484053995121","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"happy2","version":"0.0.9","_id":"happy2@0.0.9","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fb46e7749658c2c2d1290ac25d4eb8a602c14ea9","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.9.tgz","fileCount":2438,"integrity":"sha512-MJqgdAHYeFaZBNk6S4X/SO3d6mPF0cGF779uw9X2nPDfGR/1g5GA82TaDGbRTWsjtqDVXfI3I0eBdVSUZmxyjw==","signatures":[{"sig":"MEUCIFEaKQp+jB0SFK30+KqPw76hDF2xxWgX04Upp5tV35kVAiEA7OlsV/yNiD7unnBFwoBUi9qo99Lj9OEWVt5HstpWkqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8217405},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"45b65d35e7767d1e5ff4e3a689d9809035afacbd","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.17","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.9_1784413945893_0.4659799264555333","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"happy2","version":"0.0.11","_id":"happy2@0.0.11","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9011d322dfe930841c8b99d7c2a96bcce8eb4914","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.11.tgz","fileCount":2607,"integrity":"sha512-kQlTYbK3s9IV27t2MMRiUFZGkpoGH1BBsMnMtI/hmEVa/QFquAEPB9OSbycVAKH7dErHjZxLn8ObOFZzqunB2w==","signatures":[{"sig":"MEUCID3h+DKxRD+/xiboAYKVh6fjqVUAKi0IskVnvcptVMeQAiEAvHDUBzvVUwXVQt8xHVhCzDqqHVciWoa8EBLMi6O+CF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9658971},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6d19dda34a484d19ebb16b6304d3cfafdac071e0","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.24","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.11_1784421565427_0.07779461408597332","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"happy2","version":"0.0.12","_id":"happy2@0.0.12","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d04ef712cfb4b202661dbe255d4d08518c4e1569","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.12.tgz","fileCount":2652,"integrity":"sha512-HpO1/KOOjZExWM8luhfe8MSXM7i09YEvpRuIqguawtu+EuYfqd2bS6jA0nk/ocHEBtS9v1uB1Fz+BZXVo30NAA==","signatures":[{"sig":"MEUCIQDOCwm8wpqDFHcgcmhB1AQH4RgDwTTTw+wd4ybFA5AyywIgA5dhFiYCOSqSwt7DpW6Gc7ZV6hTp8HTBXZOGxrw0awg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9819624},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b15575a3e9cfb76525c293f2de04e6ff744dd4c5","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.24","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.12_1784428766232_0.876170219826865","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"happy2","version":"0.0.13","_id":"happy2@0.0.13","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"01b5f3583e38f37df0a74304d6764a2e514b6346","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.13.tgz","fileCount":2781,"integrity":"sha512-fuVkUqiXxIWk6qR/YXT6WeUodDO70xHYRucIh9h07NgwVg7N/qHOe4Wk201m/PH87+6NSyFAyiavOFt90QteOg==","signatures":[{"sig":"MEQCIB2NgtGrcE7HeXs5uYlUWgqjFFUoCdO3FSMjEISSZtmZAiBY5y6+wSMPm0YS0huID4GBtG2uA42nS4cFDLZKrqfNVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12043879},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ac40c90b1726aca5582dbc269b851733f7c7e26b","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.13_1784437891159_0.795494374212872","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"happy2","version":"0.0.14","_id":"happy2@0.0.14","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2e56acb7b890fbcc1a178455ef8fb72c7d298b08","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.14.tgz","fileCount":2903,"integrity":"sha512-Pm6HSd26FIrN4N6q0mR6ykr//S2vFTiVVyC4BVbAjwKHgWsbJ+uPHG7UMPKdROYlWFl2MrxGmgBOU4ggBtv8yw==","signatures":[{"sig":"MEUCIQDRM7qKitp8vEHx3TJ8+4hmtIPGB/uqWqJ00eOh6o7AmAIge+eSXn/QW+9FANTxP5hgRrJcUhGI7+BosnKwI5CW990=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14495983},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"cd181a5e4bd1939db91d2eca74a70d1ad747ec45","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.14_1784439700459_0.16662847526925328","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"happy2","version":"0.0.15","_id":"happy2@0.0.15","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"71c8b68b020cc5e2067e2bcd047eb75eb2c68052","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.15.tgz","fileCount":2942,"integrity":"sha512-+ASvnylvygA/2/L5tvEUQFXJzyPIIvYGQnSrvehr2UkQvtuBK+Z5kEeLW4raMsTUi5nql3uQMbkWcXxy08XdcA==","signatures":[{"sig":"MEQCIAH2/OxKhrprXfwdUb3u3NFJwFlZwyWmg/bYWjiCN9flAiBfFvuQV5UePvNro6TFES36YY5RG6RIq8VrmeWlaZ0QFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16172845},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fcfd6a5769bde62ec871f0006c5a0e11bc97fd3f","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.15_1784447024044_0.24339715596561118","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"happy2","version":"0.0.16","_id":"happy2@0.0.16","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c772938dcaecf6511ff36a39df3d6d5ac64b83ce","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.16.tgz","fileCount":2942,"integrity":"sha512-Rh6A3/burWzVw0NU+hxt+EQeyi2evIV8bnCd6T1qSjmyTBRG6M2xUn5pqUpElP3YLIqLEd72Mse6FULZQxKUzQ==","signatures":[{"sig":"MEQCIEzZ+dRTFtUyJ35dYRLKvh/DNF9SrMTZyiayZPXKJT/0AiBCpjLetNQGX5iujjYKkfWs1CwhUTtlX9Rdeo9+nEwGjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16211025},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c7a3233f27f7f89419df0c9e9f9b8211a36a9b67","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.16_1784450507274_0.700550486049266","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"happy2","version":"0.0.17","_id":"happy2@0.0.17","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"afc1be338f546a5246574ef4e5b193f6b81e8d75","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.17.tgz","fileCount":2965,"integrity":"sha512-m/qh9NT/AV0FU0PvJj0KoXeJUvWFYp+rufaHSGNskLR1/hP/5UHE8cFzAkF73hiZ9bmREnWHuckiNBBExeHvQQ==","signatures":[{"sig":"MEYCIQDMgPJv0RLdMG1s43P6k2YZunfmbAb1F1atiCX2lNUk1wIhAJmlO1IVrNcYxCDSUQ9hjRfwPBkluS1VQN4W252JmZH5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16271275},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"397037f5d505104da8459e0c6d2e1d19b03af4e4","scripts":{"dev":"node scripts/dev.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.17_1784493162938_0.42346530846229835","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"happy2","version":"0.0.18","_id":"happy2@0.0.18","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"58a54f68421b5fba9b739a0ebbb9e69f1bbd612f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18.tgz","fileCount":2965,"integrity":"sha512-qplu9809kE9GVXm3r2ySeApLGQoQ92ObSziEOjgLBAYz39fa5umytxR8/yhlFowTO2AlZ3I7WT1PGgOvOylH2Q==","signatures":[{"sig":"MEUCIB3Q3391Fhy6hCHWIFPJmbgCgEQH52aldOq0yM4BKnktAiEAqC3mUrKFfsT2YywiNbnzhOjyJz137soQ4h+4JBZpjdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16281967},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"adacf906b6b111acfbf79b31d11660ed4dc114af","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.25","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18_1784500257479_0.38180605429605374","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29709053085.2":{"name":"happy2","version":"0.0.18-canary.29709053085.2","_id":"happy2@0.0.18-canary.29709053085.2","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"46b86b76633c7c9fdcc7c4c0017e6f96e34b221a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29709053085.2.tgz","fileCount":2970,"integrity":"sha512-FbkUc094QtPr0/aZfmV+SbONyi/zZOuSdzfZwuKN1RRI13+92aTafm0Sxhvt8ajrM8lmuUr4BHBAQUgKongNKQ==","signatures":[{"sig":"MEUCIQDke3O+9ATc76lB2ZdpjCFo6lAppFJbF09VkTMPEX60JwIgfBEYThhbrq5jFhX3nfdECwqiHV1Z9Qskg5l4jg0mkJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29709053085.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16896071},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"12fa94986d4b33f72380a8d97203f291310b8d04","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29709053085.2_1784506281964_0.212192812135084","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29709250098.1":{"name":"happy2","version":"0.0.18-canary.29709250098.1","_id":"happy2@0.0.18-canary.29709250098.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2d33103ae7150a71d9f941e6690f78d6da543049","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29709250098.1.tgz","fileCount":2970,"integrity":"sha512-unb/EjF2V48ZRsA4wRPS7p+zIkd0nH20pZaV67kzQBM63NJWhNzRswdAItb3wtIJ+P4bTpj/7b/u0AXASHZ7LQ==","signatures":[{"sig":"MEYCIQC0RdIk4r5kVz8QqgMf4DQeNy5pcaIC6DRJBeVEW+zTyQIhAPywDi7dgxq9IVrDMydzFSiDXkqv3dmzbOLgIjxcZQXe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29709250098.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16896071},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1c6e08a6676c28ea034e56915637aa9b7151efb4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29709250098.1_1784506620956_0.36888440190863503","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29710514629.1":{"name":"happy2","version":"0.0.18-canary.29710514629.1","_id":"happy2@0.0.18-canary.29710514629.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6d3864a7672a3e7916296bf2f309a63197ee7505","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29710514629.1.tgz","fileCount":2970,"integrity":"sha512-kaaOc3nz5Hs0aeqLIUsgUwJa1KXnithsJqdTru6qj/GAtVk5wj9uu8LtdFbR8Me2nAnSqf8asduJSo+/i0fd0g==","signatures":[{"sig":"MEQCIBKMAcK33kZXQXiLmHK5ud1SW8mX2Ie/cYC8pjyfc7ECAiAH2d+VREvyBjUiimR8PgQvrQwtaYAH8AoAiKe631ZWOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29710514629.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16898646},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7798f03a1cb9d19258ffa5cf334f002278c226ac","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29710514629.1_1784509842511_0.5935993207341201","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29710893671.1":{"name":"happy2","version":"0.0.18-canary.29710893671.1","_id":"happy2@0.0.18-canary.29710893671.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4d20b473534342b0c48a7c2f9f13279ec826f4d8","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29710893671.1.tgz","fileCount":2975,"integrity":"sha512-wGwlv7Ysy9e15pdQTCpj3SRoQKGK1AQLcqBfItuxuF7a5VJ7O+EBn4tVw5bT2JFlZuF//wa60g9Qt5J987MNqg==","signatures":[{"sig":"MEQCICaKfpuOB6YY4GY2hVEagD5SLnbp+OH1Ti+yw5LwvJp2AiAKf76TDeQFMW/66yRPqmv8M+OLKTdxzcllECZs91ECxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29710893671.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16921234},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"cb106f261185d768768d0e12e1dd30f95504e56a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29710893671.1_1784510774077_0.3604022892419554","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29711361073.1":{"name":"happy2","version":"0.0.18-canary.29711361073.1","_id":"happy2@0.0.18-canary.29711361073.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fad916c4daf91413b25282a797c7a74ef7798e8e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29711361073.1.tgz","fileCount":2975,"integrity":"sha512-y0zVNiWD88AxPpf671cR7DHB4gzaO+eJYf2jiGZHOLj3heV0o5sgUsBdqHl5i4kssh/yGzRK27l3vPrnMN1NJA==","signatures":[{"sig":"MEYCIQCwfpg9EgJGtmWDwV0HavVViJ96ypEan2m2+mPlJZKVZQIhAKoSaSPXatz76wH8MBGWYT1rmQOnl1FM0b22KZXBE0sY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29711361073.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16990877},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3e95c28504aded8e752d0e5c4853926e572e5e5c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29711361073.1_1784511938371_0.09472082807103033","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29712386729.1":{"name":"happy2","version":"0.0.18-canary.29712386729.1","_id":"happy2@0.0.18-canary.29712386729.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2a05eb4f5af10c3a473a7532a10a71e260ec0c86","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29712386729.1.tgz","fileCount":2979,"integrity":"sha512-nL2KnRLEVSJj5zg5LHoNojaUlkihjZyXnib8icGVQIInX/nGtceMs7dfwSuc3GecFo2qaSTDUpeTWn9O2EGN/Q==","signatures":[{"sig":"MEUCIQCvyu4p3nwT5fjrWlaHlFDgMDY8gn1Vles1zy6fsTdWrQIgdQ0W6FKwLOpaF++o9QrkMYeruAXZaEfffWI1CDoHsFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29712386729.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16997074},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"59192e0ebb9d8d633dc231677a762e33153ec611","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29712386729.1_1784514060960_0.9167634929045487","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29712658356.1":{"name":"happy2","version":"0.0.18-canary.29712658356.1","_id":"happy2@0.0.18-canary.29712658356.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cdcd503a9f632d3bf4419dda47878455102b664b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29712658356.1.tgz","fileCount":2979,"integrity":"sha512-buU8iRILqaGFoJeyN+0vBBwgKH1ztXfmyzlVw6+m6kRlMXUU322weFXpVek8rmnsY1PLTvyouhg2SNgSODy5xQ==","signatures":[{"sig":"MEYCIQDtvOISfO0TPwY66qxHoSmNFo46kxNj+vvFno6QuToazQIhAJ3XVFgTq4Gody1jhzZf3IaOk8RGb22/roxzTAiz4o0u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29712658356.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17005181},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c68e357841fc1eeae53f38d6c0378925ad97b4f7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29712658356.1_1784514599575_0.16811685254525832","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29713682969.1":{"name":"happy2","version":"0.0.18-canary.29713682969.1","_id":"happy2@0.0.18-canary.29713682969.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"63145d2364f17e5cb233061de61f74d862ff0393","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29713682969.1.tgz","fileCount":2979,"integrity":"sha512-4l1b15VMZR1mnr8hdXWWBCc+Iz+EyQWAViOZm9yIIBmkWpOUiJVrUYJ5U06audNV9zyD72lkG0bDOhqxLqS5EA==","signatures":[{"sig":"MEQCIHw2MKEiMQHfA9QSJGBlefe3XyQNTRhOOKrjtPpZ6CM8AiAR5+wPgzhyByymSv3sbeve2gwVNsmKjTq/+rct2iij3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29713682969.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17005747},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"78b7fad6781e3af15b32561b9e2e72f00e104f39","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29713682969.1_1784516510139_0.3540260625926033","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29714530558.1":{"name":"happy2","version":"0.0.18-canary.29714530558.1","_id":"happy2@0.0.18-canary.29714530558.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e2d71458f5da6f93e668f92fd7c57e4c6229095b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29714530558.1.tgz","fileCount":2984,"integrity":"sha512-j17EzxMrO8Uyk9+flG9Sx/QI5Px/bXpbQj8brXQlaMPOrsgxSCAjKxKS/E2a/5DbjDgYUDnj1Z53PoxwfzA9Pw==","signatures":[{"sig":"MEQCIDmMmkgCQ9uLA314gBHANpz0NUijLDhC0TRk0i8Rs5cNAiAaxaoPF+Db1pHPwbDqBgWIyRRNdIudMo4t3wi5RpuyMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29714530558.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17052735},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1ddf6181506d029b7e5edb435f0d850483fb252d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29714530558.1_1784517853303_0.6424976459853664","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29715865263.1":{"name":"happy2","version":"0.0.18-canary.29715865263.1","_id":"happy2@0.0.18-canary.29715865263.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b4a7ed8c627f6860a7a52681363198a257a8a5b4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29715865263.1.tgz","fileCount":2984,"integrity":"sha512-1oHoAZQv8UXOvqooIgaPFF1mux71txzUf2OT/MukznGJFtyOEjPhDHmat94Jx2hz0Hv5QvmcW5/tW+3QuEtzeg==","signatures":[{"sig":"MEUCIANxsAc560TVkAwDQ1H+XkRlWBy+ilhdpI9LjYxIB0u9AiEA1NxjbFXGu9F83rFjWuJxhVp8w9gz8nhRe+kDn3stlxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29715865263.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17056091},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"36f5f42f9db62ac9b12ddc0f1dcde8f462613ccb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29715865263.1_1784520095827_0.48441116700225617","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29724708832.1":{"name":"happy2","version":"0.0.18-canary.29724708832.1","_id":"happy2@0.0.18-canary.29724708832.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cfef5387ae56bc8e082e246951149225faee6f52","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29724708832.1.tgz","fileCount":3025,"integrity":"sha512-ailVlGKX7HqaZPYEebe1V9u/wwVug2iGGBpqvVefauy4TIhHlvtuaiVFZTeeh9iE9rPL5sdM3dK2Ghb1cxYihA==","signatures":[{"sig":"MEUCIHFtOvgj1KMXLltaYLybYITgHNXe0hsPfL1xDQX8H3YVAiEA4xgTll/xRZwhIyqfcqQX3M/2l8EKsIfn1tr8Qxao5TM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29724708832.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19106591},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"518026835c68c435648ed59d8900ed3c2aad28b6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29724708832.1_1784532559093_0.5707601580580832","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29734839863.1":{"name":"happy2","version":"0.0.18-canary.29734839863.1","_id":"happy2@0.0.18-canary.29734839863.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fd2dc5bcf4f958a6c99f70af7671ec588d523214","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29734839863.1.tgz","fileCount":3121,"integrity":"sha512-kB1esBdayW5i0Adb/42EVF1H2PyC+7uXZV2GJXVChcv5IKZhMSZTH7GOgYZmQVC2d1PSoz4MzX2xsjH4vcQyTA==","signatures":[{"sig":"MEYCIQChMMA1DO5L0RUS7at79pb+VDdDgSLnBmdiW7ZgLsfJLgIhAJB00oHt3EtdqUJ7neLzGA0j3bgf964CuratZt0Urw/R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29734839863.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21057301},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2a66cafdc36921512a5a82e031a8098361bfe0f6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29734839863.1_1784543018932_0.041186119234501106","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29736043702.1":{"name":"happy2","version":"0.0.18-canary.29736043702.1","_id":"happy2@0.0.18-canary.29736043702.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1d9efeb2bc8f0bd13140f88db9bdf725819615a9","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29736043702.1.tgz","fileCount":3231,"integrity":"sha512-qpFRbJVGy16Pyp3q0IJ6d+YpCFTC1hVXq4Wms6BFUJayL4524E2RPVTax2nNhFZOex7IyafXxLWVGDy02fuESA==","signatures":[{"sig":"MEUCIQCZZWarcL6iZ/bOjKenVZNpT883SuJhm27LJEl+5GDrjgIgBgDaOg6w9Q+Nk0PmXpifADO1I0hEA1HygHIaJqgbj+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29736043702.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29303651},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"af207d9b54bf46ef063c8b6b2f0d939b8b28f4a2","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29736043702.1_1784544306493_0.7268324468755665","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29736776103.1":{"name":"happy2","version":"0.0.18-canary.29736776103.1","_id":"happy2@0.0.18-canary.29736776103.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4af515ae2cbe70f0aa79eb563880210fe8f8ff86","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29736776103.1.tgz","fileCount":3231,"integrity":"sha512-pH/fJKgXJfvDZdCJzvQiJM+pBdU/A0RsSkLUVspzpfzX5Uvh3XCbRcfDoU7ah3wHPbaaGuPtzMU/9+S+uoEdcA==","signatures":[{"sig":"MEUCIG+oJhYZh2f6U8rWG0kRD9Xf1o/WDEHxGBagmOU/E/luAiEA/T/Zs10ijfrmMysEFnL43KJcvEqEnonUfzLvwJnMks0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29736776103.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29309847},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"88c8c417b7f14edf08140cc9a349d8e8a4465fe5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29736776103.1_1784545077764_0.40803245670317234","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29761230863.1":{"name":"happy2","version":"0.0.18-canary.29761230863.1","_id":"happy2@0.0.18-canary.29761230863.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"377e135e3b905d3cffebf6ad5fb4e05de45d946e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29761230863.1.tgz","fileCount":3284,"integrity":"sha512-MHaDqOpm8pYzDSMe433TyoPm6hABRDimq3nzfbXMNvOFlxphhBrqm9W4YQV9Bhe5cPIZ4hk0xvpN0ZSrxd3Izw==","signatures":[{"sig":"MEUCIQD616YIxqkrcasCYglwpNT/aGxRc7lWSjTTVPe/Lk0wPwIgNkIOr1zKKsUW4xeQqT2TkTgFzT76s6R9/XwLt04rWPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29761230863.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29482445},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6bc97ef61661597b52b5ae544d4bd6bbc3599f1a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29761230863.1_1784566271227_0.8484604112053078","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29769737151.1":{"name":"happy2","version":"0.0.18-canary.29769737151.1","_id":"happy2@0.0.18-canary.29769737151.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4f95d4cade6d1e65b0d11251caa501fc02a864b9","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29769737151.1.tgz","fileCount":3284,"integrity":"sha512-m664ku27yJVWULasgCKniyLyRm8zgeVbkV5FwEK4Xg8hgcw9BLHN45giBH5+v0Bme3FnoH5LDBRVnw/BZiz1Aw==","signatures":[{"sig":"MEUCIERkwjHYzhQlQK5atM/ieXJgZAXqfy1X77je5yUYPe6DAiEAypzStGZ4KRQ1ItbE/srd4b6fVUKW1UWvUPOmOTqmx2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29769737151.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29482563},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"39f2e8e6492b44d45bbce1945ec1aac1282c0f6e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29769737151.1_1784573740802_0.4722215357375874","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29770298238.1":{"name":"happy2","version":"0.0.18-canary.29770298238.1","_id":"happy2@0.0.18-canary.29770298238.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f926754ffcbd450fbf9366c82d8fa69ee2488be9","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29770298238.1.tgz","fileCount":3333,"integrity":"sha512-thRqiU2/ydZ7JEN2w/o1WfKIHCKqVfoDWgE70GPFERMxd6KyixvU7RksKt6wrrnDC+AusrK25krSnaUfmkvu1g==","signatures":[{"sig":"MEYCIQDCHeRe0TTAWxMs1swxNs/Xtyl9TfvJ2vokJRWA7EAylgIhAKl6eRErOHpO8lIW1UKbjlrEUnjFi9/01qeli+zDAE0n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29770298238.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29642270},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4f3e26a6ec9e1bae48feead77c0e7d8b5149b40f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29770298238.1_1784574219079_0.009544392644633248","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29776178672.1":{"name":"happy2","version":"0.0.18-canary.29776178672.1","_id":"happy2@0.0.18-canary.29776178672.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"001f1e49037d60e0bbc4724970405ec3a36203bd","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29776178672.1.tgz","fileCount":3342,"integrity":"sha512-onuwsMI4feNQql9KotEpXjd9qlFQoPS5DhjaaiKXP7Y7tph9ozesloAAYvQ7ful3w7p4iuLujztxeaWtulU0Vg==","signatures":[{"sig":"MEQCIGfTSuAhDB5Ybe7PctFnkt/arpX12fstwmp3PbJq7pSyAiBEhb84sehCMpqs3Mht1cdOdH5zxm3DNZlhznDyIQdtaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29776178672.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29655842},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a470a8f5152d9427a38c6cc350cef85b1e65af03","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29776178672.1_1784579311917_0.38891839835612396","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29781578875.1":{"name":"happy2","version":"0.0.18-canary.29781578875.1","_id":"happy2@0.0.18-canary.29781578875.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d128d8d09f535f9ddad3411922298f3f80a0159d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29781578875.1.tgz","fileCount":3342,"integrity":"sha512-nFKCbPg6XXAf0mA6LQ2Uo3KUU95ghOVNpx2PkhBpOX/KXQ3b6rbOY9PfvXLg93mkWoqphzUnMPnslWAKfrpvGA==","signatures":[{"sig":"MEQCIH+G5Z1LXVoGVx3RzqgFhzqbMXUs8zWVxIDRWFdPF/hvAiB6qmENj6R5dTS0iZTKL/5II9L9KRsoh7MgeihkaSzB6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29781578875.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29655988},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b5118a4130cb8068fbe8642654191759b4621ddd","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29781578875.1_1784584176646_0.06309624438050121","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29782890799.1":{"name":"happy2","version":"0.0.18-canary.29782890799.1","_id":"happy2@0.0.18-canary.29782890799.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"22a68376f6f68d023ac7f9578ff5d1e6e28cdec0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29782890799.1.tgz","fileCount":3350,"integrity":"sha512-o3zxM/xTBdPEANXUSdAtilxl9Yd4ck9DS3fEDqLoBRRJ1RJGnlCbTwXlKCDpdXBhKAZ1I9067rOfOYN4/Q6qrw==","signatures":[{"sig":"MEQCIDPrupmrx8V7Wo4X0dnzWoUljEw8FT0RchsqZhLrT9TcAiBfzBCOF17GiZTpOC/XzL8709RCS9kgzXI54sRDNvw6fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29782890799.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29675433},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"497c8aeb4b9836dde6fcf1044366c51442342368","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29782890799.1_1784585428169_0.8064904485448239","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29785091679.1":{"name":"happy2","version":"0.0.18-canary.29785091679.1","_id":"happy2@0.0.18-canary.29785091679.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c18a951020c8f0eaa7b511f9e435c2367f6f3d05","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29785091679.1.tgz","fileCount":3371,"integrity":"sha512-uhCaUtWNaQpJKxY14z3HeQ/a8dKFP7Sbm2dANdXIDtP4rdsKgNTYjHdecYvNxNDgVyYiCVjTUPciKucgugmJ5g==","signatures":[{"sig":"MEQCIFIlv28pzXhy+PCcylQkSWumrPLtsymN092urPqFYEHFAiBRUwlgOXmQhoynEUVByKVDKNb558TLG0fU/hk7U2AkmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29785091679.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29776481},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"8698d34de52e14b76ac3d1b00b08d3b2f4a7810f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29785091679.1_1784587720512_0.7770265359029758","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29785786838.1":{"name":"happy2","version":"0.0.18-canary.29785786838.1","_id":"happy2@0.0.18-canary.29785786838.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"01be60bd68028e0007939fa5c21b1810e155e41e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29785786838.1.tgz","fileCount":3371,"integrity":"sha512-AhEc46aKAup8QAXgBkUrMmx0QH3qpf9/ATTzjXgBCRV1xioXQfW7zQRIY0TioLZ2yAzDni075COumWq7aS52cQ==","signatures":[{"sig":"MEQCIG1l/MPK7pdcpx0GgzP1wyJOPGSsHBWZcgvgkvUwc5AsAiBsi5yJlmbsaFwGKaWOtIl5mO/mbp4xY9571znZKqmyeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29785786838.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29776697},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"8fdb65ca4b845d74fc8549aa0e326b5578e5b70c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29785786838.1_1784588496236_0.7815617593674431","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29787186668.1":{"name":"happy2","version":"0.0.18-canary.29787186668.1","_id":"happy2@0.0.18-canary.29787186668.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cbd1c7054e1af0a73bf0806c40dc398535807127","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29787186668.1.tgz","fileCount":3375,"integrity":"sha512-0zSY45z3lb+GZq4SknWViZ1cWOgtHqZuDJsOzgtIT2dIxKdwIY4rrqhIkJx/i06bePlkdNLVx14bOnMc9lwzLw==","signatures":[{"sig":"MEUCIQDgHUxDWMxwOM2x32u5Hb1JUZa2oC0zqyowDfiGPaz1ywIgPdj5w/jdHHAxNW4k1Nn8UAYt9a9ptTWM7cntavrzkvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29787186668.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29786028},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3a12455e6211ce54eef0297ad8b1fb1364de797f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29787186668.1_1784590056262_0.5452778581633941","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29788501664.1":{"name":"happy2","version":"0.0.18-canary.29788501664.1","_id":"happy2@0.0.18-canary.29788501664.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"256a94c41eab030d6c1870c7d5ee12728756d225","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29788501664.1.tgz","fileCount":3375,"integrity":"sha512-HHCs/w5l8DMWSAY7YSukbXcSxmunZzS27WXFn0ZSwc6bG6G5S/VtpjQrj2MWKXYtHCqQIRS+2kQtew61O02DrA==","signatures":[{"sig":"MEQCIHlREMl+tY6k5FX9bgZoTct1pkOocb0QVlGz/1GHO9UfAiB1DPFsJM1sC3BqvEIVECknJ72ieTGvb+c6K9olHmVuuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29788501664.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29780770},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"eebcadb279588edb14461e2a81a814cad7429fde","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29788501664.1_1784591540070_0.5022393954074673","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29788816601.1":{"name":"happy2","version":"0.0.18-canary.29788816601.1","_id":"happy2@0.0.18-canary.29788816601.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"34dbdac76e5509530e89d5337e36e3d1e660952b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29788816601.1.tgz","fileCount":3375,"integrity":"sha512-tqI6R0rdjPKiDLEczDb4KBsTgvWh2Ok26s6Sr1qrP5JKTkTdL0RR4e+mXWc7z87NiogL8+8WKRCAST8pWxPHgg==","signatures":[{"sig":"MEUCIG4KZdHoEEPQWqaMOOoaPldWu3+goOWzMH4K3IljU6KvAiEAnqa3rABXGdkWMcvpqVJcpKRowvI7pwMQpaeLJwd62wE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29788816601.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29801437},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d1f41821ac0f2a0635679f3cc70184615c802ed3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29788816601.1_1784591908331_0.5471407904273073","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29790922502.1":{"name":"happy2","version":"0.0.18-canary.29790922502.1","_id":"happy2@0.0.18-canary.29790922502.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4c3b304ee81052d103f03f0373614332e8b1032f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29790922502.1.tgz","fileCount":3375,"integrity":"sha512-xUMadBW452JYvLrExpd/488Hvu0SkT+8Xmf6S50KxrUQXbFF4xNKrKPRW/OiXA6Fj4mf+OYBgpP467K+AAazcQ==","signatures":[{"sig":"MEQCIDqoa50JT3VPapaDE/duZErrCbE/r5tTKbzNAFbJtznoAiAVIhxFVWkWtYAZB0d5UHQdccIxMVCt/HZ3HxRFYwce8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29790922502.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29819566},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7089e7c5a0fa6cf84a7e8eaa6743cb57e7462302","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29790922502.1_1784594463729_0.9886066413421315","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29791136564.1":{"name":"happy2","version":"0.0.18-canary.29791136564.1","_id":"happy2@0.0.18-canary.29791136564.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2a7e0c800c5672616b27bdf581ae6c64246bed25","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29791136564.1.tgz","fileCount":3382,"integrity":"sha512-Qn+EvUeyaIg0o/Hu2CTstzK3QbLfUy48xmkE+bPhDiLt/ymkVa5AgvCc6d6hKM0wyo41SAZdXFBP+4g0jPCbSA==","signatures":[{"sig":"MEQCIEhI4o1JmBLAS1HX/kHS60imDXxADHSoB/aTykE4L6KqAiBuHO5x/LMzAEhsFTA1bJ/ZUiWkywYxarMqx9lWW60+HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29791136564.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31258113},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"80a7f243ce3a818fa204e623d4db678e162d6604","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29791136564.1_1784594716545_0.5195382883000785","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29792423872.1":{"name":"happy2","version":"0.0.18-canary.29792423872.1","_id":"happy2@0.0.18-canary.29792423872.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"50d2809124dba83f77c38415191828fae233647b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29792423872.1.tgz","fileCount":3395,"integrity":"sha512-Cktm0pBQFg+268B5Jf+hykvEUGQVJnS0gldVguqFAeGUJHmTa/yVeDhkLc2d71WP17HN8yM67XeTSwkoiYbPkw==","signatures":[{"sig":"MEUCIQD4uu714WZQTxIYG123FwVjzBygDmvZk8k2f/w3NVgT9AIgSPYgsuXPHtUJhuYPMTTHaqa5m9ZYXdX0lpMD702VUoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29792423872.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39292807},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7f8581a6f633f88d39db6bda8ea36b50b61566e1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-documents --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29792423872.1_1784596342572_0.30473030210591734","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29792595887.1":{"name":"happy2","version":"0.0.18-canary.29792595887.1","_id":"happy2@0.0.18-canary.29792595887.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"41fd1185b4b197a6a3f4692ccd1e81b5316522f7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29792595887.1.tgz","fileCount":3396,"integrity":"sha512-DFbY+N6ddMoTJYE7ta+nFjP5nJwhKSN2v4kE5E5ouT18xmKu5RqkNE7w5XbevAqDrEm8WyiQ8NPIv0OsGTUmJQ==","signatures":[{"sig":"MEUCIGq6IbqogaQQhGIBLg5AV3yOiYvZg2wumgdx9gf/rj8pAiEA2cFyZJHVnU2Nyq1oVcalOG5xWyNhsLTko9qY2z6LrhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29792595887.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41049342},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"bba8a6f81eb4250c8152fc65fe52b3c11ffb90cc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-documents --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29792595887.1_1784596566259_0.7897975291914425","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29793042316.1":{"name":"happy2","version":"0.0.18-canary.29793042316.1","_id":"happy2@0.0.18-canary.29793042316.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f6a27e1c7c37c16e283c90fb7805a2e20c0743c5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29793042316.1.tgz","fileCount":3408,"integrity":"sha512-dyDa5ebgJS0oj/Z4QdNroG92l4zkF7vv4Grwjbu847rk5J/6vujJJdXnTjCIhnOtwFtFNN4d8/3v/PO5jf78EQ==","signatures":[{"sig":"MEYCIQCDZVehNoKa27x3HU7MuylsVgPR7KC5aCZkvHe10w1+aQIhAO0rLExbkQHc4VgWZSPNULUICGcR+5/VOmW2z5aOm5Cu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29793042316.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41061869},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a1c6c1ebc5d3a611b03a1d475926371991240cbc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-documents --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29793042316.1_1784597182921_0.6712695193837914","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29793508653.1":{"name":"happy2","version":"0.0.18-canary.29793508653.1","_id":"happy2@0.0.18-canary.29793508653.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"19cce7b9739a17f0609e25070ffb5a5e5aa8b9b4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29793508653.1.tgz","fileCount":3408,"integrity":"sha512-z5hEI/JgagQiB9VdbdO8beyFycFa987iG3ydjQNjM9l0nC/gZKCFIElhqOPC33ybxMQ7OuxHsxcBc7ntYFmNkg==","signatures":[{"sig":"MEUCICrVramY2xSj4eLwLi9Bdy+4Sgl9lkgPiKHttn4LCKS5AiEAvb30A3/i2mBtRwoTxzQtL5Sia3S3I83Hq9opWj7a01M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29793508653.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41062217},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"353f872cb965829ffb35c2f283db24553c26aadc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-documents --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.28","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29793508653.1_1784597793775_0.8471619370929797","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29793550133.1":{"name":"happy2","version":"0.0.18-canary.29793550133.1","_id":"happy2@0.0.18-canary.29793550133.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6553e1987055bfa069ba05862852bdab6fefb8d2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29793550133.1.tgz","fileCount":3416,"integrity":"sha512-7kN8qjsyb0kVhb+pGV8GPAOlD4t6ai82VrCJqN2qS4WgmBHJBuNYMzBCWSE6OMRzloEjU2uYPu/6kKlS1ij+cg==","signatures":[{"sig":"MEYCIQD6WO3KpoEsWcxzAbC+iOU6fYAjZD3yJ4Vb+eGPp3ejNgIhAPIfqxdC51PlWv3Cq5Kq3u9cw5rTxiFDAMSquYBmXE8F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29793550133.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41078424},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a8ec5570deb808a8b79d3cb1391250adf9dfcba6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter happy2-plugin-hello --filter happy2-plugin-chat-management --filter happy2-plugin-documents --filter happy2-plugin-environment-management --filter happy2-plugin-plugin-developer --filter happy2-plugin-movie-catalog --filter happy2-plugin-todos --filter happy2-plugin-port-sharing build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29793550133.1_1784597898277_0.38874928218674265","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29794771839.1":{"name":"happy2","version":"0.0.18-canary.29794771839.1","_id":"happy2@0.0.18-canary.29794771839.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d718e744007b6d560d055200b31ed759095f20ee","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29794771839.1.tgz","fileCount":3416,"integrity":"sha512-coY6qayGicuLJloVsAb8jAa4nA+6M+ss5nwPzy8cSrZaAIbWaHHrVW03ShfMXLamo6ctLKjNBV3wrNx5Lrupdw==","signatures":[{"sig":"MEUCIGQhzy9t6CdkylpsMFEfCmhpSHKcoviZeO2gXSsL7//LAiEAnRacGSZI8vJWfK5wRGvvlk9mUE3VpFdnr858lc0FEb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29794771839.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41076357},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5ce6322253f72daec0fb1a0f691060d486b8a666","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29794771839.1_1784599471383_0.21686520854513813","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29794859731.1":{"name":"happy2","version":"0.0.18-canary.29794859731.1","_id":"happy2@0.0.18-canary.29794859731.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fcdf9babced1deeb54a5719a8be8de6f6b95e887","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29794859731.1.tgz","fileCount":3437,"integrity":"sha512-Mseb/odmJ1ZzXDiicnepRhsoX33F+K6Db7GcR7r0ulWsaP1LWyEKp/ItY0yzrX2NfYZ9qkDZApAKtuE3CjSF1Q==","signatures":[{"sig":"MEUCIQClS1DZ+eJbSMZLTzALT8TJ2k7h1K605Q/nGUkEuXwJZgIgFKW153KY8whbDaDX5DcbDF/rJaIFAllU1f/6xknfym4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29794859731.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41124350},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9cca228bba2aa0319fe4d656cd878504e9061630","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29794859731.1_1784599576180_0.11786993591064787","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29796693670.1":{"name":"happy2","version":"0.0.18-canary.29796693670.1","_id":"happy2@0.0.18-canary.29796693670.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7c5a97037ac598f0b82e8dd00e5aa15727a66ec4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29796693670.1.tgz","fileCount":3445,"integrity":"sha512-3Y5fmTL9rh1xR/W+PEZOyuDDKlbM8Icc2LB0hh5SA6J6Dv+A2B+2rGnmTYqzdiizPRCMhOSxsFo0EczLgQxkCw==","signatures":[{"sig":"MEYCIQD8fxZBHRH3SKr9mbWsR6VHS27JVs/x+VHnmQd/xvIlGwIhAI2XiYE3itrn/mmoh+bgiSmBPiSh6gQynyVPj73JX8as","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29796693670.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41145127},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7dfde53e28a3b618cde3541478d7df122ebdfbbc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29796693670.1_1784602048433_0.24194495383807624","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29796699875.1":{"name":"happy2","version":"0.0.18-canary.29796699875.1","_id":"happy2@0.0.18-canary.29796699875.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1ee15d996b5ce6c3dab239976e0f6602777a3e77","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29796699875.1.tgz","fileCount":3445,"integrity":"sha512-7w4Jt5q0+ZtKOCRYFcIWzmMq8TSU2dNvECwBCyH3zlA8iC1X/Su7wNjQbYK2clfUyJkWx2rJx942iErhlQTYSQ==","signatures":[{"sig":"MEUCIQDgZteSxk2fI8fNALnvArdG3cMFRjm+hEaIt9vdt2gSOAIgNM7NWJUYy7eL3nxTRBrD29rkWhbeTQW1ac3PnzWhJmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29796699875.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41145251},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6316b6b4092bb398b3b63389257f61be17cc4cc0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29796699875.1_1784602121456_0.3171854891435706","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29797242305.1":{"name":"happy2","version":"0.0.18-canary.29797242305.1","_id":"happy2@0.0.18-canary.29797242305.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d9a192cdd93dd8c655e9e1964c783fd93d1a27bf","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29797242305.1.tgz","fileCount":3445,"integrity":"sha512-kXum1+x6z6ZnuPtOWx16rrHEvsVqdTloCmBfSVRTV1brpbIqV5F3xsTHOeTdzd8u+iCr15CsVs3Lhb1WwWctWg==","signatures":[{"sig":"MEYCIQCAifjpZKzLNl9eHzHf8J6lLcFhfJR+3BhppwhHseMIkgIhAKjqJNlX2W+oZIUCqJFhTfaqIavaGgKWlnIx3kPha3LQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29797242305.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41145309},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5e5c224c9529c4c7d9417e6b8193da8243ca64a5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29797242305.1_1784602785971_0.7615537190144384","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29797749612.1":{"name":"happy2","version":"0.0.18-canary.29797749612.1","_id":"happy2@0.0.18-canary.29797749612.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"355592903d370e695bd3b3ec5a5ae54662b72150","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29797749612.1.tgz","fileCount":3445,"integrity":"sha512-i1z4WSELzacmbWN67rV2/kCAzkhuxWPCBeE6JCbbQz71jTBDqyFa86zq2AsY2mmSJGF5a/jZ8uM7BZTCeAQqsw==","signatures":[{"sig":"MEYCIQCB84KZ5BbBv9F7fO5XbfE8SHuNXYLc/gGhNP3EqgdgTAIhAM2GzgvCLbD342A2pTj1U+9Y3l3uynR7f7r2rG6/5eu7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29797749612.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41147608},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a858595c5256e3175ecdcd42d887980ba8345a3d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29797749612.1_1784603447535_0.7734966151693252","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29798791594.1":{"name":"happy2","version":"0.0.18-canary.29798791594.1","_id":"happy2@0.0.18-canary.29798791594.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0839d821db9a83864325f6a556d06572861e6842","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29798791594.1.tgz","fileCount":3430,"integrity":"sha512-TSA3m+16DL64dOzpVvjK7NWzx/Z4iQMnT2kkXmzINHoY+03P23hvckU1laOmnrWJtuwhHW4BASwrxqoILxUGlw==","signatures":[{"sig":"MEUCIEQTTtZCpcsTa6J3WlSKGH5LIPGAL4zae6LYTdVpOoOtAiEAjPvSvGhiwrzvCiCWEgB6u+G2fAmrlYAFa07H5r3cprA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29798791594.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41062969},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"75705671f0343ff6a6b6cca07c7bae9e3f2d7afb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29798791594.1_1784604837072_0.016963239702400212","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29798978914.1":{"name":"happy2","version":"0.0.18-canary.29798978914.1","_id":"happy2@0.0.18-canary.29798978914.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4a494456921cd9a319f04774ca4684ac2e243b6d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29798978914.1.tgz","fileCount":3430,"integrity":"sha512-VutC9Cg+ccnUYPRk3cqmnAs1I3H+5Eb6i6PChh+9WFC4VRGcB400jY/y0lgYibvSjotw0hz6Fs+6J9lAoRzLzg==","signatures":[{"sig":"MEQCIEmJwyNLTiWTRz6m1qCN2+tk5ta+BiG4Z+2l990O66uZAiA6MTSZ6qn/xm38+Gk19bMGTGZzx7ragkGSKEbjf4k01g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29798978914.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41063121},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"0e4635938f5f6a6f65d5ef39471b8f6934d9f740","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29798978914.1_1784605090127_0.393890640486916","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29799364370.1":{"name":"happy2","version":"0.0.18-canary.29799364370.1","_id":"happy2@0.0.18-canary.29799364370.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f899f679cae8d1ee9c875b560f107426fe88e4c5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29799364370.1.tgz","fileCount":3431,"integrity":"sha512-AUPvfoxwMhDTxQcGDpeAwKpQDSKVFjgGLMbyu5/vBxEiAZunvJ3EYY8hxGyKrvdLozO6rq4qHm6AX+6uRpBoBA==","signatures":[{"sig":"MEYCIQDbCGT7CrWwOgL2BNtKd/TsxloF9xNDRrj9YRnxkao7ZQIhAIjcbL5msk2gwsl60l+IRxPsuyJOShuyhoQyt9Dluvw2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29799364370.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41072066},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d0b1fc69ed3b75a4b58aaa38859cb570ec5b9e53","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29799364370.1_1784605619099_0.3298648018368322","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29801810971.1":{"name":"happy2","version":"0.0.18-canary.29801810971.1","_id":"happy2@0.0.18-canary.29801810971.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"05c6e13c85b9486e8a251e7b9c5095e6f58cc686","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29801810971.1.tgz","fileCount":3447,"integrity":"sha512-gJPFScbk5V7VO5mmGJaa9R1FZGMYbB4aIc41jRmHlDOild1VReGpfz9KBNtYe7VNNgbqaRIoeGTIVPL/agZd3w==","signatures":[{"sig":"MEYCIQDzPHx2qpUxJ5QZN2azISIFfyifu8Nqi2AezsQxm5RueAIhAM/nvU8HBfH27M5Od/SiVo2RBh/vvNYSqLLQUQVx5D/2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29801810971.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41108514},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2fed37f07eb585212b3e01a7d0c0d60eabb8906b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29801810971.1_1784608822425_0.34126867614903267","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29802333053.1":{"name":"happy2","version":"0.0.18-canary.29802333053.1","_id":"happy2@0.0.18-canary.29802333053.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3d8c0d543cf93686ead907fdecd8b01bd391bbf6","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29802333053.1.tgz","fileCount":3449,"integrity":"sha512-ubAKxp1CXT7XdvO97WTjmCej+UqdBwdyRIPrIxmWL387zUpy2qP+Lj3SGTU+iHomOzIjKrXC+DLkyEu3vzBY6w==","signatures":[{"sig":"MEUCIE8kGJnSRnnvhwISMtzu7xNu+BSknEGFms9bWzlRcqDYAiEAzaORIaJ4u5DAKblVcw9iU0dbMb4uQxKzN/4OCY+HGQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29802333053.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41611349},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9c7ff406e997257c5e1230dcfbc9f884c99faf57","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29802333053.1_1784609538528_0.4555520489169773","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29807097849.1":{"name":"happy2","version":"0.0.18-canary.29807097849.1","_id":"happy2@0.0.18-canary.29807097849.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9bb0b678d103507beb1cacae119b7a449789cc10","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29807097849.1.tgz","fileCount":3449,"integrity":"sha512-vKLmEV1tHGIORGUhj8facQp4wVr7wIWOf3SJyesYXPnPl9C9k573KhTKS271Dc6mYemy3o9pnlPr2GaIBeMs0w==","signatures":[{"sig":"MEUCIHanff986EFOz+iyGAEUoXAQGDy1vrczqxaCBUExeMrOAiEAvQp4dy4W4cQRevBIZPlMa/lVXszbeeAKcYDdGOMzyJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29807097849.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41611811},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f752cb0607f66af28d8a65a2efd959fad61270a4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29807097849.1_1784615370048_0.8897310716556264","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29808329282.1":{"name":"happy2","version":"0.0.18-canary.29808329282.1","_id":"happy2@0.0.18-canary.29808329282.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"65276ce368ec35085b1ba05e1b45a212ea498ef6","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29808329282.1.tgz","fileCount":3453,"integrity":"sha512-1bLV5HO/mWSWa26pLjA0R1QSXA2xcUgLJi4dUynJwcreVeFzbUByZ4umDyaLN/qG4y23lxZsgIzEJ3+HhpFKYg==","signatures":[{"sig":"MEUCIAIiXustTo0gYFuERTRt++cwk5gjmRZcqwsuHouj+GolAiEAlCx8MiW1lsy5sUy0n8KevD2PAayJpH4eUlNpQEC2yVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29808329282.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41614769},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"35c6418e2b5eb814b8370a30d3c3c248f854d25a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29808329282.1_1784616753164_0.34884178431100255","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29809426345.1":{"name":"happy2","version":"0.0.18-canary.29809426345.1","_id":"happy2@0.0.18-canary.29809426345.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0f86ab230495cc1cff738e728cb2a9c87f83ec80","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29809426345.1.tgz","fileCount":3453,"integrity":"sha512-uO/4JwGrmJibyxJVXt9BFeWb6OHFByUDbaK1JeTFJRQl3qHf1ilq8Axpoe9JFVJNvSPvOW95LB33NNTJ4t0BIA==","signatures":[{"sig":"MEUCIQDLtJhkRnIM+Td7t3DmKBgl3hspHxZ6ymKDLFtkUSJGaAIgegvB/WSYPgU0sGPSZLOHLOeVuHRHQmvGzpFa61ZsrRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29809426345.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41614101},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7e71c6d1349fc6b6a1de73ac48d649efc6333d2f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29809426345.1_1784617872772_0.7874404272740383","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29810064686.1":{"name":"happy2","version":"0.0.18-canary.29810064686.1","_id":"happy2@0.0.18-canary.29810064686.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fc449d0413ba1d4c15116e349454f399c810e5ca","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29810064686.1.tgz","fileCount":3453,"integrity":"sha512-ixFycz4FB+zEIcLTI4kRBEpNX94TihZE9JI6kH81DMbXUuXGQLGBQ8HELXaYE1mInnrKbYnglyKrI53AM7nwig==","signatures":[{"sig":"MEQCIDb1DEG+steLARwWjiOaw7WNPCPA6Rv1Mq50UmOBuTy0AiB45ABp0SBpnhdALVdZU958xIeLj6gi3DwLfRkhYHEXeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29810064686.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41614988},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f48a903e38dcce5bb1eb3ad1b209a58d4365ea6e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29810064686.1_1784618512354_0.14805805544736428","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29812420708.1":{"name":"happy2","version":"0.0.18-canary.29812420708.1","_id":"happy2@0.0.18-canary.29812420708.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4bea3f524bac6af3dfc24a280021a99bf2ce54cb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29812420708.1.tgz","fileCount":3461,"integrity":"sha512-dI1MfcwPXPg/em3mV6/OJ6gVOnz4FjTdNyceAe1tiwtttSDCnDKXnDdwdFmnXAH4tKDZZ3ie1PBHdzfEUX2iFw==","signatures":[{"sig":"MEUCIE7TpqTNjgwfdOi8zBfYoirZKuhTl3nh8FzmmowxMHbwAiEAt5Co1t4Dd5GQSiM0fseIA1ePM7pQajaeHycTB2bIWAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29812420708.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41633794},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e575bafb05898aec516af2501f71226cf720e85e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.31","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29812420708.1_1784620769353_0.02523681155036095","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29813792585.1":{"name":"happy2","version":"0.0.18-canary.29813792585.1","_id":"happy2@0.0.18-canary.29813792585.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8c37dfb0cede9da5d2398a65af6cb34fe3feae85","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29813792585.1.tgz","fileCount":3461,"integrity":"sha512-Jyv8HnoaCI41U1srNk9fJJd4IwWfjHuZp2tyeDAJcMM0zivks2VVOhb2XP2L3crsOBSNiVWrRTP5U7eovW7Hcg==","signatures":[{"sig":"MEUCIQCUOqfDGe3cBUsQ9SK1Lp+rTUx2EaajTCDx12wBZN7S0AIgGBxbA82hozqge20PVOUwhnbVFNvq9DD/4BTwKVkPPgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29813792585.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41633794},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"96400974d3d8acc28dc00aac28a35d60b5fbba28","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29813792585.1_1784622029649_0.7272007353180983","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29816954564.1":{"name":"happy2","version":"0.0.18-canary.29816954564.1","_id":"happy2@0.0.18-canary.29816954564.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6bb410645945b80c046f661ff32d03f95af7fb3e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29816954564.1.tgz","fileCount":3466,"integrity":"sha512-Sw/OF8hCR9z1ocGwoR17cg60YS5lhGkpBH5LoDScaE5FRVNlCAQNdnDHsUo7Z2R0kDp/TWkaPuUTRyEoYB+06w==","signatures":[{"sig":"MEYCIQDiACn7bYW3zkbF/56LK8G+p4A2hDqsQn7ETruGrwOoCgIhAII2C4/drgCe9QP6G7nq694UMZa+aglFYcXKhOwTpOeD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29816954564.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41645270},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d3cd273dc7214ab7f6ef373f860927b874fed133","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29816954564.1_1784624897506_0.546252766749246","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29880906957.1":{"name":"happy2","version":"0.0.18-canary.29880906957.1","_id":"happy2@0.0.18-canary.29880906957.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5eaab7cd719088386d3db83e37eeeb8e4dc87900","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29880906957.1.tgz","fileCount":3466,"integrity":"sha512-e8cpPlcs1StO/ZmlxilSoHi2xuhnJ3Vbq3dO7IORSFb04CYXCX7pDKwv+M4eR3QXSJGo2NEkaUckFwUyciQJHA==","signatures":[{"sig":"MEYCIQDcUmnje4bK54GS2xSZe0vDSLysrswMhjg2H3vTiNBs5wIhAKkSzQjoEaRHnBdtUvHR28ARJ4QolvuWa8yFV1A/kIou","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29880906957.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41665027},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9bffd3a9586cf4a534083c07444f33bd0fd0c08c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29880906957.1_1784680919447_0.2783276476517069","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29887936130.1":{"name":"happy2","version":"0.0.18-canary.29887936130.1","_id":"happy2@0.0.18-canary.29887936130.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"10fd1a285b75425c8fd52604e06d536ca0ec9206","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29887936130.1.tgz","fileCount":3503,"integrity":"sha512-yp+ALpZWz8eA21fa5L4GkNpEkwOI3uCfjFqbJpB11IBgPa/ZeTIFRgz4m3qP1dQDQBTrIIVdwYEbstfaDEXKHw==","signatures":[{"sig":"MEQCIBw+xFfS3s4l4XEn5O257EWnyQ8l9CLyhhQB2+4tFQCeAiA+VWdMHkV8l1vSRXDyhcoz7LadGwktLBzKbIVXSDXVPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29887936130.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41737964},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b64b58e89516a9771b7d599d66376467afc394bd","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29887936130.1_1784690172850_0.4531889546624952","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29888035584.1":{"name":"happy2","version":"0.0.18-canary.29888035584.1","_id":"happy2@0.0.18-canary.29888035584.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ea7e3128ae93e24d2033a59127184726cc98fb9b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29888035584.1.tgz","fileCount":3503,"integrity":"sha512-F8rMgEPu6qWFR7P+RN5UUU9AJr7QER1F29eLyzgOFaxeN/5rAP/oBov9lpiF0V7Y2B0QTV2lTpaMSA1TVzbkwg==","signatures":[{"sig":"MEQCIBfcJBRS0+++IEcVGCZ9pLFTB6YJeU4Yteu1BeY7eUvnAiAXe2M4HCJROgdqPozcr7dEJIVOPwAI7NZHLOP0EztwVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29888035584.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41737991},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"80551ca8e136b0ffbbfdcc0503ba26d8164817cf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29888035584.1_1784690303691_0.5727528413345779","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29890596002.1":{"name":"happy2","version":"0.0.18-canary.29890596002.1","_id":"happy2@0.0.18-canary.29890596002.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f7f329bbdc658613942ed77e555c49acf42b8c6a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29890596002.1.tgz","fileCount":3513,"integrity":"sha512-SIfdF87gC7xhp8NjtTqQ0edCCcEJ0V13KGNVtnv+bJRmLTrV37JVt8epgaYBJsxa23paO13UtQO9ktGoXY1LRw==","signatures":[{"sig":"MEYCIQDS3h+z2I22r+vwt8rNK+WKVg0JyEZsmaNlmH2bCoSrjwIhAO1cmvg1eeI1cdO8uL9e7poHRUnLfVoiQ0h8Eni5VkzL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29890596002.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41802672},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ad889bf8cc01e1b053d52482c3160565f53ea063","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29890596002.1_1784693827904_0.19194296915033116","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29891325331.1":{"name":"happy2","version":"0.0.18-canary.29891325331.1","_id":"happy2@0.0.18-canary.29891325331.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3af0f53cfd80ddbc82505c14412258c37e58bb92","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29891325331.1.tgz","fileCount":3513,"integrity":"sha512-U4kcQsu7Yt4wJ3JERjagSoLXeMhUT2+PUdCIeIEf6IHWjTIav/oRy46b/WLWjPpDPfBv141gpvf7CWogJ8w77g==","signatures":[{"sig":"MEYCIQDqnsrOd6GV3n0K7ovxU7iYwjU99/wCRSKY0+rAxSnjcwIhAKvGhAW1SHSO52MV25BRPMad5dhh+BFcSKwekygebYXb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29891325331.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41803281},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"063f61e481201d83f0f26f95253ada90a9893e5a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29891325331.1_1784694835995_0.6011294658014508","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29891925342.1":{"name":"happy2","version":"0.0.18-canary.29891925342.1","_id":"happy2@0.0.18-canary.29891925342.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"447455782f07987b4aa0dc533888ae36942709bd","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29891925342.1.tgz","fileCount":3513,"integrity":"sha512-0N3/L7GjLsoAy8nQjWmT9GjBDAF7TVVj5+lVnK+9jSINs4ex6LjlEhYo6DKdYPyqoaAVAikSvYU9Ry1jFqMvfw==","signatures":[{"sig":"MEQCIHJ8qGyLzs5xSoeTORI0Ojh0wXD4NmnCGhpZ46YElSuUAiBtvCsQfWU2due7ikz5RF1GJ7n18Sa17bQetrp4VbYovw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29891925342.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41808409},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"be8a4de6a9e41107db9869f8e84a8649f2e63407","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29891925342.1_1784695650547_0.053842584688848616","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29892231031.1":{"name":"happy2","version":"0.0.18-canary.29892231031.1","_id":"happy2@0.0.18-canary.29892231031.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a8b6b48dfbdd28f0398e2aea07e9c2994841af8a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29892231031.1.tgz","fileCount":3513,"integrity":"sha512-BnDfbLO63+HRFteMvx2Z+I/xIAfFISy1/RfKKh7Tm7W7M/lon2em71dQIJhyy8Y2iJiHpmcdPehgK5biRlpDrQ==","signatures":[{"sig":"MEUCIQCvdwJOOhTYNVzao/f9SeiNFYYn9Kg5FSjNObhLVU/xngIgSZByA+a8cYqSFzD93Fy261CN6fKSoIoLG9EqZxLZhOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29892231031.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41810239},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2685c73f3599f36a006c0c291f103816b7dfb694","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29892231031.1_1784696089280_0.25045043498131436","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29893092868.1":{"name":"happy2","version":"0.0.18-canary.29893092868.1","_id":"happy2@0.0.18-canary.29893092868.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3c597c9db502fe0dd1ce1a75efce7dc8bd41f016","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29893092868.1.tgz","fileCount":3513,"integrity":"sha512-ttAlqBMgzz8nDsMg1xzUaN85ASSYSN3f/Bg9e7p4qL/fQDQ0r9MqcdNk3URuZQaArBNaM2yj17mUhsnNh1FEHQ==","signatures":[{"sig":"MEQCIC2ogcuOjswQhiWReE5DxbtWrIvbv2ZBVomPxgMlUgVPAiA8KuAhh0pJpbxndsUqEdwRW9GfGAq+FO+K2sl+C2rb7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29893092868.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41811613},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"538d24eecf742449a49e8de70883ecd689e522d7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29893092868.1_1784697196131_0.24905036346254983","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29893803061.1":{"name":"happy2","version":"0.0.18-canary.29893803061.1","_id":"happy2@0.0.18-canary.29893803061.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8f91d2531d497e8b718b6685e3a8c97c11245b66","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29893803061.1.tgz","fileCount":3513,"integrity":"sha512-HRJ2i/HvIJc94tVHRepIVcdjmEbxyuS2fO0FQf8b/f/zoMPRGpzFaVaO6l53PX/AT9vFcIoyFp9Bk4UBERKZ7w==","signatures":[{"sig":"MEUCIE+M44Dmp6OKcjOOD5iBgUKWqvB+tP2VriJoSR7VgcPDAiEAmo0uZ1GzNotait/DqunTFsJQ1oKypXQzU4j+q6/bS7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29893803061.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41811613},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a689f4bf494ae18c81370c1ceec2ed00caddddb6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29893803061.1_1784698111529_0.8499086397190632","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29894914590.1":{"name":"happy2","version":"0.0.18-canary.29894914590.1","_id":"happy2@0.0.18-canary.29894914590.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"507de9b82b5f6b93315844dfebf6bf003de56cea","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29894914590.1.tgz","fileCount":3513,"integrity":"sha512-FdOzgEqnVoY+E/d0DjMJSLw6BvbNzLMV9pjZAryy/nBBxQb7qMo9aNsOTGGQZaEGy5KdWT82b1VrbCSBU1SRAA==","signatures":[{"sig":"MEQCIA889aCe+NmP/Sh1Y6cT0q0YPB+yigJ8vnEmpXU6cRXuAiBqDZJifLKvs8VjbpO6ucrWZBSBK7r9kmXW9xtUhKeKxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29894914590.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41816781},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"448637a8aad0e9552eea3199323b6c13fc0cef1c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29894914590.1_1784699512455_0.6350788015218707","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29895813891.1":{"name":"happy2","version":"0.0.18-canary.29895813891.1","_id":"happy2@0.0.18-canary.29895813891.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"42aea4572a82434569cbee5c7402793ee9e5181e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29895813891.1.tgz","fileCount":3521,"integrity":"sha512-NTbnllGhnIGaCfffT66FTNltL1QnVX0+MUzI9NpvmYeCICWn5WouZGHlcJhqkXuQcPalcRXFG8ya2ZkSwsDTcA==","signatures":[{"sig":"MEQCIAdeA1/9w4A2U+luByTB6SYwkQDyCQOKx8Os0SfJPfdEAiALCN7iUCBGCWMOHZ5EEjFVXk9kKjWHk1tDcyJjgqCqGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29895813891.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41832022},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"960b9930bfc196f202297f446474b5de5f92e038","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29895813891.1_1784700590334_0.6980964189436047","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29902356370.1":{"name":"happy2","version":"0.0.18-canary.29902356370.1","_id":"happy2@0.0.18-canary.29902356370.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b2f8c28f4c4e3fb3206143f5d8ef87e244a74a6c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29902356370.1.tgz","fileCount":3570,"integrity":"sha512-m7iFbVOw1tIcDqZsFuX8IctQbyHHxutw6eN0cOAvhrZ4e5D08J6t7zGUsShSat/XRrGXjfdIVT773PUiR9bxCQ==","signatures":[{"sig":"MEQCID5xYSUNlo0PZJ8sR3dhV2rXxMr8iW4+tXe2peAe+QYxAiB4HgvvE8e67o+vPVIs3Jo5HFWhISfZQZII/oa6NKVWLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29902356370.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42037552},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ab1e862a5b44c664fbbf8ec8f94b5738a51c15cd","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29902356370.1_1784707364420_0.5977328955361667","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29905995890.1":{"name":"happy2","version":"0.0.18-canary.29905995890.1","_id":"happy2@0.0.18-canary.29905995890.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"aa328a14b65b408bc4208abb7ea572fe7f9fddb5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29905995890.1.tgz","fileCount":3570,"integrity":"sha512-jmR+opm8m7ZRMQ1rcgJhrs9/QBW4XY59zWlgElEkq5qsDbNSlrQp5Jkkrg2j3DqNCSUp35ZSiohjEdHBRlhGPw==","signatures":[{"sig":"MEUCIAqQe+PfS5G38mYkWtsFVGxP4COnSo2Z1jtkDgHupBo3AiEAqPBIIQFJiA1fIeJcE6QpGkthIicEnFYGvSi3AN0brjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29905995890.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42048560},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"85add47d30eeab5696182500a6018f5d62c43008","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29905995890.1_1784710747113_0.5038733731182949","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.29947268150.1":{"name":"happy2","version":"0.0.18-canary.29947268150.1","_id":"happy2@0.0.18-canary.29947268150.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c24d9c5a92abd35623d2ccbfcc8bf0db333e5621","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.29947268150.1.tgz","fileCount":3570,"integrity":"sha512-cGUi2wtHXzYPMZbFc1DzX9A2zicFoI7ESnXz9WlDF206W4BtyX0KsB6sBHzKHAGg8PKrGz0Z+KZtLNdHqMgBMw==","signatures":[{"sig":"MEYCIQC8I1AbGkL1dQResqo4sQhU1BGy+oNmTKXDGzX3J0nZbQIhANLP7Ko7bPMbW4sIWMCi+3hFA9ILRo7n+Xsk9vkteopg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.29947268150.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42051874},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"747f08ab9540e30cc0f026a1cf9f57fb508cd3dc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.29947268150.1_1784745388837_0.0750944470513446","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30068271714.1":{"name":"happy2","version":"0.0.18-canary.30068271714.1","_id":"happy2@0.0.18-canary.30068271714.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"157c034d92db7c7067a11e40c3632984187ccf05","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30068271714.1.tgz","fileCount":3570,"integrity":"sha512-AWziZEiSRoHXZavmud3S0E/Xw4NYfuYefli5hDuvCTm/UxYLIhXEsMd8MUxBGwq9KED9GQ8zmiINRArC8jxsPw==","signatures":[{"sig":"MEUCIQD2+BqGqCwCO7PAphV0qDulSqhfWBSVvZFQEYNEcG32cQIgby1X9vZcqTaXRGxKMak5/PK10TRSC29xaaGa11FJCio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30068271714.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42054924},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a28f45a4bad72fcc99ae87059e44bba1ca1082d3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30068271714.1_1784869361093_0.3185798725766189","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30068317653.1":{"name":"happy2","version":"0.0.18-canary.30068317653.1","_id":"happy2@0.0.18-canary.30068317653.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"504388b935e0e95370449a1f4cb81cdff93a7694","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30068317653.1.tgz","fileCount":3570,"integrity":"sha512-UWSgRDwATXcRDJ0nfOXPUtnTeTdMH3bXVS24YQJu18d+cC3ADNZGmQve5oQJYcMI/grMfRv0p8QDcoQI2zA8YA==","signatures":[{"sig":"MEYCIQD7wtrUz85O7mb2LC2m+iizbMU6XgdG9VW8LxQkKAh95gIhALz3i+D4pMSU5TdiEy1OCpVT+2zkEX6+e9iZlGMQe+vy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30068317653.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42054924},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"835235f86ca2df46a7406b842f7b2cdfce84627b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30068317653.1_1784869481652_0.8588949333006257","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30072645160.1":{"name":"happy2","version":"0.0.18-canary.30072645160.1","_id":"happy2@0.0.18-canary.30072645160.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e4c26221f7d02caf6094e6d6362445d2fab1f585","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30072645160.1.tgz","fileCount":3570,"integrity":"sha512-RnowUnTysgznupQ+pbLFAr64v0WuoNJr4AkC95lGm8piGMbY5GYl6I4auVvJRpR2QSN2MzK/weGFB6JpF+LQgQ==","signatures":[{"sig":"MEUCIQC/LqL+jyl/oL0etXk+hD8kCyM5hiQYCdrK0MgaeTRH4gIgb0MCxTT5BPFVpFpXwpm69QS3Et+3NjFgKORghQ1rhew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30072645160.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42054924},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2f5095e6716c7b0b9643730b1e91feb3e3ffadb1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30072645160.1_1784874955636_0.7293216166827672","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30084749072.1":{"name":"happy2","version":"0.0.18-canary.30084749072.1","_id":"happy2@0.0.18-canary.30084749072.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6cc65834dd462d7628aaf7fce4d372eadebce396","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30084749072.1.tgz","fileCount":3570,"integrity":"sha512-p35MRSkPrxO6eFAl7yAazTDCEi0Ux658ZMSOWaAOAwt6dJhJfP62/EGt+RrPMwDKSsQHbMnkrW4k6sWBZIme9w==","signatures":[{"sig":"MEUCICiHjaPGWpGJEsAs6xy4FDjnGDVZxcXut2NgJ91GiFB+AiEA6r8WJMS02punTbLKWbKMJERDNqeS+53gwjQ7qV0EQfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30084749072.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42056110},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b4b6da822d4846f62c88b79a1f7c28ef1ed3c1c7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30084749072.1_1784887441664_0.7365306175989788","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30145287107.1":{"name":"happy2","version":"0.0.18-canary.30145287107.1","_id":"happy2@0.0.18-canary.30145287107.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1103b74d03d774d13d3d2fcdccb0991773d5ec59","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30145287107.1.tgz","fileCount":3570,"integrity":"sha512-hQb1lvfEJOcVyKWstR9HIiAgX9uuh9TayoF7tEIonqY2EeXlkgQyrq6paJZdcKTVLWCA7jX+nOoYZZuSLdCv1g==","signatures":[{"sig":"MEQCICNCSyjjBs0r6EUNekZeJTEmEs3G6OJVS+UEqfZgvqqFAiAFStfxygS1I92fL5WHBkYyItE5fwbeCHpCi8WBcu/bsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30145287107.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42081542},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2a6c2c2d0f460ac768c28f8bb7e3fac59e521244","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30145287107.1_1784956334371_0.10583189048260566","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30145760558.1":{"name":"happy2","version":"0.0.18-canary.30145760558.1","_id":"happy2@0.0.18-canary.30145760558.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f7ef0abb7b7b960d1439b88c551854d4dc25548e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30145760558.1.tgz","fileCount":3570,"integrity":"sha512-9fLsOdtyvi6QdC1mXn5tAVQpNm8kY4ojNHUpvnm3hG3dP6TJxOa0R6XcptuPnvgER2ql+ed66F3/R4/Fhm5qaQ==","signatures":[{"sig":"MEUCIQD9PmuEyUQGGmxNX+TMOIA2mct/p19o6DLqK1SB2qHu+wIgM+p/uyCRHB7+TdsKeq2xh17h9nSwe2WrU5P141kO1WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30145760558.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42081578},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"49d1c53076d4ebd1d13e98f35a9d581b155b105d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30145760558.1_1784957295104_0.4427795864370694","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30149676136.1":{"name":"happy2","version":"0.0.18-canary.30149676136.1","_id":"happy2@0.0.18-canary.30149676136.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"385cc9feffb5735225d6368956c8ad6b23a4f92c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30149676136.1.tgz","fileCount":3570,"integrity":"sha512-/UoXGYG+WxC6eCn6Bdw513LxTfKNUHDJToXsHZIXThQx3JsrsJvOJtyBfbY6xpB+mEbW7SpOff6ZiZum5ZQNRA==","signatures":[{"sig":"MEUCIQCtE4Z8GQODczgIzoS4BnUHBoSyKsWKC4uGraXsPRLFagIgHUwgRk4AClBCwioWzgp2lCusNeb3zORbBtpjkpx8Vi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30149676136.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42076248},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"0e32dd47c6ea52dbe62827612d2654d5e9b4eab6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30149676136.1_1784965237135_0.386681318543153","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30150008672.1":{"name":"happy2","version":"0.0.18-canary.30150008672.1","_id":"happy2@0.0.18-canary.30150008672.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f7f2442a0ca11e4832b2cad6bb7a75524d8148ea","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30150008672.1.tgz","fileCount":3570,"integrity":"sha512-QGgwKbAqc+z8/K5B/yM19WDKkkp02+mj7ZdCmYzxhEzNTzdFEmADW+i3mjRcJnFyWpXNTFrQA0oQMqWtayZ7Aw==","signatures":[{"sig":"MEUCIC7eMMP4ff5pN2bqF9uW+5gKZRVcGdAz0eIG+XIejExPAiEA9Hudv3fvJfDC3HH4dOCDJuH7673qvcxPzJkPNFUSLVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30150008672.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42076248},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6e7df4c2ca0f3be5ec804101ae92942964dd0fa1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30150008672.1_1784965911397_0.1805506468709559","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30151577025.1":{"name":"happy2","version":"0.0.18-canary.30151577025.1","_id":"happy2@0.0.18-canary.30151577025.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6f1b49c9fda5dbcae2dabe5ee01938bad2adb7ae","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30151577025.1.tgz","fileCount":3570,"integrity":"sha512-92b6uaOiSetCZNvSnsaqYmrbROpCSxpRrzn5tgOxG5UFpdg5CgUGugDCb9OysQxuRvYGk93BbTa9K1tW1JO7gw==","signatures":[{"sig":"MEYCIQC6G7VgczlD/6AkzWxDgwbxgsot/b4ulV+8DAjW5qsYGgIhAN77S35rMDwLvIFuhrNxbDH09+np1kkS0sbBm1i9vFsY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30151577025.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42076248},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"68a46cb2c2d31964a372b68b5d83bb2313d75875","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.1","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30151577025.1_1784969065232_0.7661429594922871","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30152057610.1":{"name":"happy2","version":"0.0.18-canary.30152057610.1","license":"MIT","_id":"happy2@0.0.18-canary.30152057610.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"788182a0ec937c67da9d390c463911be05cfb1bb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30152057610.1.tgz","fileCount":3571,"integrity":"sha512-nRjRhWqGc60rSN239wa9rSZ4DYSyVPStCDevn9PzQ9frqQQW82nTioEibenvjiv7+epur/mtozF5kHkgeXHBxg==","signatures":[{"sig":"MEUCIDJa/Gz+FCPWTMU57it4T5IpByBNI/pgF+YuAGsJkIWMAiEAqMtV2M7ENwhrbcKywQi7+7GpcHztuEcNSJ2tDObUuyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30152057610.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42075581},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5cc0cfdb13f5e25a998f09eed109e0e6c9413563","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30152057610.1_1784970099818_0.3233735981198469","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30169876261.1":{"name":"happy2","version":"0.0.18-canary.30169876261.1","license":"MIT","_id":"happy2@0.0.18-canary.30169876261.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2949f3b74bb2a963f18793e5e6d032037a3191c5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30169876261.1.tgz","fileCount":3571,"integrity":"sha512-Lo+o4NzRXCpdma1fmMwMmrpYdeeevsPGLJokeG9Z2TTuemWbFXd+Ame+uT9PvEEn2PNW07Ih345GGYecz+SLzQ==","signatures":[{"sig":"MEYCIQDuIuVhz7ihBByT69jQ9pEZrgwIxvRptNuUUdCXDq4dJAIhAMgN5t82l8qKlkQRFWcPCZypFZQLs48wYRcsrszqZJll","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30169876261.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42124688},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2455005b077701f1dfcc3af7810d1b24c0582df4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30169876261.1_1785004554623_0.99641258684966","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30171125917.1":{"name":"happy2","version":"0.0.18-canary.30171125917.1","license":"MIT","_id":"happy2@0.0.18-canary.30171125917.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"64e93d42033bf4887abdd7287236129098469f3d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30171125917.1.tgz","fileCount":3571,"integrity":"sha512-hjE7xWCWW/bZyMtxRzvHz7gdDn5K9IwStfOomtfua1NZpjWhoi6tbSE+6Yl7jrPVY4Udz6SwyiY6j2135vDtAg==","signatures":[{"sig":"MEUCIQCkj3VEMFSM4zxOiMNjwgI0tNmaG+pDwK6RMWUEs4ZIcAIgXu1CW0xhRo4uf0c83GkfRvo13f8jBKE59i2KUg10vcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30171125917.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42122335},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"73818dc05e0cd42982631438c6748203a99f0542","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30171125917.1_1785006804175_0.766027678358429","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30171707496.1":{"name":"happy2","version":"0.0.18-canary.30171707496.1","license":"MIT","_id":"happy2@0.0.18-canary.30171707496.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"bf6075586ec0ecfec3ef3bd5fd9604165d0a11de","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30171707496.1.tgz","fileCount":3571,"integrity":"sha512-xRdKiFHBB2CY8nsq3bNTcYBHhRVvcIif0pfLSVt8sK08e6Pd6KT9M3QnZctNBvmgkMRHE45JCYBPab3dV0bAug==","signatures":[{"sig":"MEUCIGiPH0NHiRkBaAO0Js9RM1lSrExp3SJnNDnI+cv9wyGyAiEAnEqgh1AEZ1KKsxbtaDxXV+o+nFZY0H3RHsJGL1AWcv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30171707496.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42152435},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f8bcec12d258ccdf5871b8d1785715d98296dd92","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30171707496.1_1785007899781_0.809559931699616","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30171729857.1":{"name":"happy2","version":"0.0.18-canary.30171729857.1","license":"MIT","_id":"happy2@0.0.18-canary.30171729857.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"16af1ce5275872556ec560c8deea5685326c3bfa","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30171729857.1.tgz","fileCount":3571,"integrity":"sha512-J/oY5vW8WAzilwrpOP72sb2NoJip0nVqY1fXjOEgYvB7TmTjL8K6ENx0WN+jF7h9N/r3YLQpz1wMv67n6QTRng==","signatures":[{"sig":"MEYCIQCPvJqNu0jm0bPgY7N75CyMK69Hgu/kIh0iz04npdQ3rQIhAKTsW55k73lgTYcjoPSQxh4eVApZspJgaDEkKR+nS3oi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30171729857.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42152907},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"635c00f1ffe44e62e4ca11412e8319911f654760","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30171729857.1_1785008022374_0.15585649946788527","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30174003469.1":{"name":"happy2","version":"0.0.18-canary.30174003469.1","license":"MIT","_id":"happy2@0.0.18-canary.30174003469.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6fbb9cb2029465924a1d363db93c6d206385ba57","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30174003469.1.tgz","fileCount":3571,"integrity":"sha512-KJC6RfVWi49i/ucz/oWO6sY2pnexGTmDoBsI9oaFW5dm78XRUGzGAbnQgapAJ/qQysVi75Dz8byx7/DQh9e0fw==","signatures":[{"sig":"MEYCIQCN1THAhOjAJ8eSwVIgTpvstXKgRqOyviLCI3OGAagCvgIhALvIB/CGFaCNI/0cuZi+SCHcGlSBicupKxZFLJbZoR0l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30174003469.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42159522},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"40e4f3756c0bfc0c4e7b8798a6b5cc6b5af6e0d1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30174003469.1_1785012055227_0.39786496945291994","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30174689352.1":{"name":"happy2","version":"0.0.18-canary.30174689352.1","license":"MIT","_id":"happy2@0.0.18-canary.30174689352.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8c5e5686eca9eecb62cf0322df743f46996b31e1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30174689352.1.tgz","fileCount":3571,"integrity":"sha512-VOlW3wP6PewzyAn/Fr2WKFa192FLH6HEhaCgIj6ufUsePpj0hGW+EYdoh76mJvoEeb/70A5v+JJWKmvrjiFQVw==","signatures":[{"sig":"MEUCIQDPWSSv/QAENty3SmR5Fskt+Il13u0tf5Zbvj7P8T8v/wIgNWXVURKgOYW9evtNjviSHO2tdBAGiHl4Y0Ui/ukej2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30174689352.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42186933},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"46301f65d220ef05c427bcc36e3d6093b765326a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30174689352.1_1785013259408_0.042892742059420286","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30176315209.1":{"name":"happy2","version":"0.0.18-canary.30176315209.1","license":"MIT","_id":"happy2@0.0.18-canary.30176315209.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7d123b5656e7455db91a54fe8d67767b8436778f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30176315209.1.tgz","fileCount":3571,"integrity":"sha512-8y34ggu5OJEdU4Lbw4v8r1E/tkkj6lOk77zLVZ8HLCg5PHCnhA7gdI/702i0wDh+eV9UyxqWiK1YvIPhvN6sog==","signatures":[{"sig":"MEQCIBI3pDCXaXrYoRe6dE5ckL5B6bJUD0BpNJoF4oEWUHRsAiAHtQBUgPvS7Kxtg5aEECeIkQH30lLM9RfdEKmbMe0E+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30176315209.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42182311},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"30a393b660ba9e68b9ffe263d0031c05b5d437be","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30176315209.1_1785016173361_0.437973364033341","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30177435706.1":{"name":"happy2","version":"0.0.18-canary.30177435706.1","license":"MIT","_id":"happy2@0.0.18-canary.30177435706.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3aa4a9e00c846955d47eacbefc2b6cf5d7c84862","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30177435706.1.tgz","fileCount":3570,"integrity":"sha512-W4N75ZQ+dvoigNNPTOGSuggMibpqj51fbiHEc5qWpnwWr9AVln1eBIL3LdaSN3zJSDXxoZ1m15z7fMnt/uBkWQ==","signatures":[{"sig":"MEQCIHnAM88hsZ4lGBJMVSgAUOrtNqCzwc45Id+Ydc6OkItGAiBEYDuDy27SZZFUxLbo2Xg9hXlZsg7bknxMlcCzp48HMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30177435706.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40392110},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c5250f6f9539cc360dc61441a9eb4bbb81f57158","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30177435706.1_1785018246198_0.8433637164584886","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30177605763.1":{"name":"happy2","version":"0.0.18-canary.30177605763.1","license":"MIT","_id":"happy2@0.0.18-canary.30177605763.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"25e07e843b462ab321430d99492df2a230611d6c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30177605763.1.tgz","fileCount":3570,"integrity":"sha512-pwH3N9fXxTQVwyBGJbkGrAiZ6fW5SU+hJodFud5x5fdACLCyy+7MXDEjdYsFs2Nb9/vphA0ZP0B3+A90LQGczg==","signatures":[{"sig":"MEUCIQC/LmTsZ7mw5660eQDC7gSxERJoYj1b6NDTzEu4GB9bMAIgcHIEquhJvEJG0NwAynWUqDgAgPOs27nI9Ik3RTQZGOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30177605763.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40393232},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"104c9bf8ea7bc44e181778536386bef6a6cc3a7a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30177605763.1_1785018562716_0.46402986637319876","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30178043097.1":{"name":"happy2","version":"0.0.18-canary.30178043097.1","license":"MIT","_id":"happy2@0.0.18-canary.30178043097.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a88fcf1712ee0dd8f12cdb72bbd43a4e9554d754","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30178043097.1.tgz","fileCount":3570,"integrity":"sha512-k1DG8zqnIHBagipGIeTClR1C6HjT+tVZJ1UwUaiTnx3tVyWM3UMrk6ADcrI+LKvsgs1/xh3IYdFsQEojEZvomQ==","signatures":[{"sig":"MEYCIQDWWHpoXJ8G8aUM+ty90sG2mnjgi9HQklA8ozgETisOdwIhAMl+5/C/IGMqHx4kOtXHABIy/BIwAxR/RM8n/DYeN91j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30178043097.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40393220},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e8f8de73797edf91ffddb5518fe105c5de37a836","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30178043097.1_1785019391762_0.11151635657620274","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30178977445.1":{"name":"happy2","version":"0.0.18-canary.30178977445.1","license":"MIT","_id":"happy2@0.0.18-canary.30178977445.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a3e7bfed6c9fe75af069451f71d344014d63928c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30178977445.1.tgz","fileCount":3570,"integrity":"sha512-Ed3dXuY38MAWBOrRroBdL2skWdw6nKjXZYijK/75Jo7YI+fUsGSISrngPxVDXTPxqzhluDcirghl+Onj/yAoHA==","signatures":[{"sig":"MEUCIQDRCG1TYif2OdWZnYExWuWd9YfiDN1MQYWELVdflKqMWAIgarui31QouKiW53hvKRHenWw+7JYCfIo8mFmTKznPDQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30178977445.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40394022},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3eb37238515e2f044689c781697fb5785901764d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30178977445.1_1785021235635_0.5723567514500312","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30179696132.1":{"name":"happy2","version":"0.0.18-canary.30179696132.1","license":"MIT","_id":"happy2@0.0.18-canary.30179696132.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d646621d9506a62c274196322bad4d064bd2f209","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30179696132.1.tgz","fileCount":3570,"integrity":"sha512-3mtCSBSUZfAdUXixA2Qm1Px/DcXJVtEamaFEfcU6YTBDk47PvRlDWJ0Uu3KCzfKp+r0eAZUyrki6y5U5xZ+9nw==","signatures":[{"sig":"MEUCIBu6ogvRUkVfVr6R2yUGEsKgh7aUlLJXYEL45BdqOP9RAiEA/rOrg7fGVTBRPOTrn9H6SZGj2j5RX+3Asdw3WKGK8oY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30179696132.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40394437},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"77a7c9cb52f895452ea5839c996f365c0cca69b5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30179696132.1_1785022680085_0.8198873901473873","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30179838978.1":{"name":"happy2","version":"0.0.18-canary.30179838978.1","license":"MIT","_id":"happy2@0.0.18-canary.30179838978.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b091164b2e48d3e77ff474fb6be70b5cb2fa922e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30179838978.1.tgz","fileCount":3570,"integrity":"sha512-Z7ZdRaUYrn5w/c9/QmOgmXkFIaXgAcoYEbOgT2qrzR52+QiAX986TDkeOxsQtO2PDGABhQrZOee0HP/dgRMX2w==","signatures":[{"sig":"MEQCIAqyZQ5RHqQg26oJ5/lOeqFdkF3C1xED7sJ4SnejxL5pAiBQIKQCqT1tIINICvqELAD8YulaF3uQw/m7LmjkcUHaEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30179838978.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40442360},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"806bdf64d141e72b0bd9e0ad8ebc154e68bc052e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30179838978.1_1785022974474_0.9274594010808548","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30180909282.1":{"name":"happy2","version":"0.0.18-canary.30180909282.1","license":"MIT","_id":"happy2@0.0.18-canary.30180909282.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"94bfa744bfc93a655d9cd5c21e09d918b821b8bb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30180909282.1.tgz","fileCount":3570,"integrity":"sha512-Jo2IhhnUHKSFKScNPGxdqGvvgo0iXl3KZoEW5hAjAOYiCc/Xu4+6OpzrkATlXM4Z7PHWf7FV0j6YJbXlBC3aHg==","signatures":[{"sig":"MEQCICq0P+dfNzzUzAh1qIs5NxsvylTVLpDduF6b7pYRiaYkAiBFWLa0aXt3dMksSTUwB8e8TArH5N1wDpgZLMhw3vboKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30180909282.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40445075},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4562eee2fe7f11c4939f02d78ceede6e9a736c7b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30180909282.1_1785025183364_0.1141602409167064","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30181915881.1":{"name":"happy2","version":"0.0.18-canary.30181915881.1","license":"MIT","_id":"happy2@0.0.18-canary.30181915881.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2060321ccfec802a020a738875233509ee2de171","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30181915881.1.tgz","fileCount":3570,"integrity":"sha512-bglEgpegVOdxKpuDM1YbyL3Bls0G1GJQX6u7ODZ0WJ9X65MQPZwsBXZk7nbQgvpNFXqf+KzdUlp9dlVpFBX/zQ==","signatures":[{"sig":"MEYCIQDaNczOwhEk31o4m6k7YwzC7PB+64+n/Ydqxcb32pclYAIhAMBP+Tus4cLQlAP8Vij//GyvutoS3ggio/gAkKapaZY7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30181915881.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40449731},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"aa8d3bf46bd9df817e11b8effc7030c4d9e7c7a4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30181915881.1_1785027274710_0.09912337962438733","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30182187675.1":{"name":"happy2","version":"0.0.18-canary.30182187675.1","license":"MIT","_id":"happy2@0.0.18-canary.30182187675.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"20ebb0abbb26808ea52b279abee2f1ac4326d4a5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30182187675.1.tgz","fileCount":3587,"integrity":"sha512-Hjq9muq44jC2tmJJYU/LGRmVjTk1SiT5bKpU+4zwYCKE5Tpw/8QXOs6iR0Hm4Mm/hUHVAUsIIDJNdYFLk0Kg3w==","signatures":[{"sig":"MEUCIQCfGJMBQCC9RJJMoQfGeTJcofqbxYdQcsZoLTdJxylyYgIgATo5TKAA4YLa6EtdBUwz/2qq+J2/Aa/3l84/azIWDY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30182187675.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40493005},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"0bae8dde57f99791b843f7e5b898223b7d9795f7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30182187675.1_1785027824065_0.8101878571807593","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30182652416.1":{"name":"happy2","version":"0.0.18-canary.30182652416.1","license":"MIT","_id":"happy2@0.0.18-canary.30182652416.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4f05d0541a965433aa0013bf3192cc02b010dc77","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30182652416.1.tgz","fileCount":3587,"integrity":"sha512-k1Hw0G7Zq5fnxO1a2mAxmTlSca+9BjbNsBCMAjSM2JYoKqslPBLko3DJKLehlWhzRXprlORFaBt1thHi7Ntpbw==","signatures":[{"sig":"MEUCIE8cBDcyn/Edre3GtdGIH91g9Jd9d0L0yn24Qnq4fGsyAiEAtv9nvXDdlyPIii2lRrbzVl+cnJOMNPIfTmX0F+bkPVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30182652416.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40495318},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"81b11b36669373601db721c49513bc5906cdec4f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30182652416.1_1785028799148_0.44791321535294837","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30182720772.1":{"name":"happy2","version":"0.0.18-canary.30182720772.1","license":"MIT","_id":"happy2@0.0.18-canary.30182720772.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"118d55a4a7f54f215ec88dd36677c856f315bf13","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30182720772.1.tgz","fileCount":3588,"integrity":"sha512-TQ35kEfggXcl2IOXS7ZdGdX1lBdG6RnR7IJtwZKSQa7KPMQJ3ga0EuZVpZoAHlQ1DLY2A6L/dYEohfj1ucFomg==","signatures":[{"sig":"MEUCIQCECXGX6CoEvI0/8EgmjojPAIFkzSaVCwH+nwwVRI3eVwIgeb8eMuLv5eL8V6PqrB+NQKJcTSWnPYt2k5UjrPPZzLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30182720772.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40497770},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"53cad7005225f98402104b81e0572fcc8e444cfe","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30182720772.1_1785028932643_0.5694468379575497","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30183677634.1":{"name":"happy2","version":"0.0.18-canary.30183677634.1","license":"MIT","_id":"happy2@0.0.18-canary.30183677634.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"39b085c4ed9704ccc99101959dcdaede625c3285","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30183677634.1.tgz","fileCount":3588,"integrity":"sha512-3ydyaLwiHkoByMkab4UPKVQsrTPDBFWuSJy6CXLsbnjC9X60havAHBMfMPIFAP/TjdR9Re22tZ807meF2qYGIw==","signatures":[{"sig":"MEYCIQDvyw0/cCuSuq6EB0O+ITPozOzmMMUt3zRSn/5MggX3awIhAJqx8Vunpwf+DvlglopUtAJKlU10TtwMO1u1S2WydXgk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30183677634.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40497770},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"52e632ef60b0605d2d13e6b8bd3adb629a920de3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30183677634.1_1785031019142_0.1265918802927819","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30183682772.1":{"name":"happy2","version":"0.0.18-canary.30183682772.1","license":"MIT","_id":"happy2@0.0.18-canary.30183682772.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4766eecdf94af0d1f0933d23a43431921e1e951d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30183682772.1.tgz","fileCount":3589,"integrity":"sha512-wTLfHZEkqPSIDZyqOFsFFKjgQmRYBuGwDxYQOKgdxLNFqoiPWcDVU6ncUJAiqatN+0x0aCWzaFSVDpP9ITmGoQ==","signatures":[{"sig":"MEUCIA/2ymZcbvt25SP/90zRUp0zCUbUJhIDeYF7OIlnEK2VAiEAnWi6JNHDWNPRsuOM5uBqfB6aRvbKhTKc1qjgwWS320E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30183682772.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40499727},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a9dca011d4223a6ddc94499f829e3484c8eabd30","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30183682772.1_1785031148453_0.9277570519452134","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30184062760.1":{"name":"happy2","version":"0.0.18-canary.30184062760.1","license":"MIT","_id":"happy2@0.0.18-canary.30184062760.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9e1a7a76bb2785c0435eed966319115bbac4e960","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30184062760.1.tgz","fileCount":3593,"integrity":"sha512-Mi6XgyCjI5BTTtqkdSdQtXCRa2hdoAMgX7VhJOt85NwZPDLoHa7q9GXIwqzFKXeLGR896RskBZzlSkVScjorNw==","signatures":[{"sig":"MEUCICbZwzPp/RNhZKub17/cXveX9EtCAmC2jFzw8/TG1bh3AiEAht8mdlzy0BuJsa2GKJNAVD/rRzhn0N0fZQqQ3wRDf6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30184062760.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40513913},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"66bc8e550fed64b7ba84e9c070670e8f7899365b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30184062760.1_1785031814583_0.6047890775914311","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30184575813.1":{"name":"happy2","version":"0.0.18-canary.30184575813.1","license":"MIT","_id":"happy2@0.0.18-canary.30184575813.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"91da80fdc0f414c39a2e944c80bc370828c528eb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30184575813.1.tgz","fileCount":3610,"integrity":"sha512-ZtgcZWTcffM3lJcv/JIyFLubCRzLixIz3xyE65zLLejLvG9yWkeQaTeOFS81LBsCf4M7kQVbebMPbxnmaGaqsA==","signatures":[{"sig":"MEQCIGAEQMpkovxPcVJo9XvUXnVS64l+xHuj0R0JG3uw+eArAiBr6Q3Q14fWrCgW/49j3ZxOAdxLQl9jmJt2poFm2tr3gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30184575813.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40552955},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a94dda5b1e6315cb71f2cb9de132bc67adb8ec75","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30184575813.1_1785032967532_0.9033934196916102","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30184715161.1":{"name":"happy2","version":"0.0.18-canary.30184715161.1","license":"MIT","_id":"happy2@0.0.18-canary.30184715161.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c86d9588dccb329b16f0c3b088be662ed7a1de51","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30184715161.1.tgz","fileCount":3610,"integrity":"sha512-mRIzNWGo2338x22IALeNlfcrYIJFwnI6X70FAcHW7xm2tFuXFzyTP7kCoEa/zhEXHhlsdRkDDHoLMP/SzIsMFA==","signatures":[{"sig":"MEUCIDaMByCVp8Yvz6kC8H+f2gmufAP1OChWubyRHTq5KGpbAiEA/EFaVP2Yblp3m51iVYOkjaRj/lWyD9VSBRjotZ9fORA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30184715161.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40553492},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9349ea430707f01884552aa662f98e8132b513f4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30184715161.1_1785033284592_0.5339917780254169","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30184985037.1":{"name":"happy2","version":"0.0.18-canary.30184985037.1","license":"MIT","_id":"happy2@0.0.18-canary.30184985037.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5cf7463c988a534c8feaaccef699df357d02f77e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30184985037.1.tgz","fileCount":3611,"integrity":"sha512-8J86hxfZGU9GwlMwZBAT03zudGfAFGO7eOiH9DRy7wEOSJ1fBfU+Uwtb4qxj0pDIPwxD6CVeM7prAjhnMqZjsQ==","signatures":[{"sig":"MEUCIH8ibZNDc6Nj5iTEG/pYp1SUk2//gGuJVu46mkQW3H8eAiEA4aniN+IG8Z114UnqYS3XscMe5i2Hqn+XxF41vITO3VA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30184985037.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40557730},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a8c33f83cc9e49939e9c4a9de6b951c0cc965fcc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30184985037.1_1785033946099_0.7898372095444461","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30185684044.1":{"name":"happy2","version":"0.0.18-canary.30185684044.1","license":"MIT","_id":"happy2@0.0.18-canary.30185684044.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cd3d23af9e5427070caee258674accdada00f5ec","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30185684044.1.tgz","fileCount":3611,"integrity":"sha512-04U5m21xh5u4leX+fglHdwEWZYf6UE+DxwOlrPV9U8+k9FR7k4qy7ZA5HuSkea9axr9ARy8Ls6CI7BeSk0G9MA==","signatures":[{"sig":"MEQCICJJ3z1jwqr8PhAiVaFXcA0NHvJx3x251dEXxAp9E4LfAiAMKHlfmyYKyc9NQ7swQw2I1AaJ6O0iDB29ACDXart9mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30185684044.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40558492},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"0ad292e30c090c60244a1183604cf50c47ba16d6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30185684044.1_1785035430584_0.31710965409929615","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30185738596.1":{"name":"happy2","version":"0.0.18-canary.30185738596.1","license":"MIT","_id":"happy2@0.0.18-canary.30185738596.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f43940a2b9e8be7f1effa73d2c38daf73b856eed","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30185738596.1.tgz","fileCount":3611,"integrity":"sha512-3uvI5XonHsS7NHVmBUB1icGpRSGLIhfnZQHhAIsXPGgidMod8qQ0VOWpG4605uB8pAs+MQ3i/kndFPl0bkbiAA==","signatures":[{"sig":"MEYCIQDjfV7MFkw1m5wyZFMmigU+GSpJJu4H8897rNjG4Pos8QIhAMc8raDDGrKPj03GKobWpPAH/a4sqJ3wYpLK9igce8rW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30185738596.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40563356},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a0f659ce827c64888ee6530b0130369294c230fa","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30185738596.1_1785035561045_0.6587957403409612","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30185827435.1":{"name":"happy2","version":"0.0.18-canary.30185827435.1","license":"MIT","_id":"happy2@0.0.18-canary.30185827435.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"aefe19807f1fb548a1d2b138a923225eb6b00598","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30185827435.1.tgz","fileCount":3611,"integrity":"sha512-E51j5yiBY8b6yQqOb3xLdYHQCpY4dBq2oF2A3oAvj2LUi8gCh0blCZ6YEPHXT3svH5B6N7sBEmvvbKCEv5+DeA==","signatures":[{"sig":"MEUCIDZcP9M3NwmPcLssXtaiapGxxDj36iPVV1T+olzglvyJAiEA3tdZskzoHbNJrdTe1zm2HzBddOjPYpOZql13P4CWoQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30185827435.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40564661},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1481d363e9036a3173c71aec18df83f8b74f5d72","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30185827435.1_1785035741120_0.3022639464461263","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30190892297.1":{"name":"happy2","version":"0.0.18-canary.30190892297.1","license":"MIT","_id":"happy2@0.0.18-canary.30190892297.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7f757928d161ad945fdd820dcc49671a71826975","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30190892297.1.tgz","fileCount":3611,"integrity":"sha512-YOCG93XMmEiVypa2NjJQIFqcxnxSiVhMX3ID4Whwn1+VgglaNCEEkJMuGIvpstSzf9TwozPKwDNUxhVAIwL2gg==","signatures":[{"sig":"MEQCIEOu3UF9ucD2JJB+QLexMvDEest0b79Wf6fkSoBYvihUAiBSrmdKnZG9Yj2wTAcSdDMfS368VlI9v5sbz/WBTebUNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30190892297.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40564764},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b624cb0b03cba355b6bca7c007df694ac86f12cf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30190892297.1_1785046963402_0.11629769572915771","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30191160259.1":{"name":"happy2","version":"0.0.18-canary.30191160259.1","license":"MIT","_id":"happy2@0.0.18-canary.30191160259.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"71a090b168f5452ea121d525da6a896d0befb612","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30191160259.1.tgz","fileCount":3611,"integrity":"sha512-/v/MJVN35L7gKl31odWYdDQymR1HSOpQxJgf5tucoo8Sp0g3J/7CySWXaUh8rjCW0qkKIA/utCYNHM1UhreZcg==","signatures":[{"sig":"MEUCIFjBXezZE+QJKrWc3o8/mbH8LDQxC4ow99WauXjIpelsAiEAl49XpkWeFiIJIKVvDuWDQXnCtaD54voIH8zZxmO86Dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30191160259.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40564764},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6a17e3594ec5a6befd8e3d8c6475756c3acdbbc6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30191160259.1_1785047532591_0.7899611727864384","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30191428635.1":{"name":"happy2","version":"0.0.18-canary.30191428635.1","license":"MIT","_id":"happy2@0.0.18-canary.30191428635.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3802f132826222e2d7b51856f96471edd653d6b0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30191428635.1.tgz","fileCount":3611,"integrity":"sha512-nlriDo02CagAR7cGfK/O3xn20zo0iRlAxwfQafxd3n/ujmOx/VI+KQeJdMDgwvBUfMEkdOlnIR52lR1VDeSZXA==","signatures":[{"sig":"MEUCIHFc15r9daCaILAkdtemuJCFY6oGO14P7lbhhX/doy3qAiEA4M9rDJ7Y4MuFzE48uSha7Ymw1Cp4VS+XLEKNP1o1UFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30191428635.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40564776},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"0169b818d4ed9db35944e0522109df7a32b1ffd1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"^0.0.33","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30191428635.1_1785048093882_0.5583827074033016","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30191960784.1":{"name":"happy2","version":"0.0.18-canary.30191960784.1","license":"MIT","_id":"happy2@0.0.18-canary.30191960784.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7c668b4895f063a3c9faa2ae1672855da0dc958d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30191960784.1.tgz","fileCount":3611,"integrity":"sha512-Tx8fItLcgKCVzvZfZbgicpyArm25Ji1Xiw/RU/LdsqqiE7gRrR/AVGGEyyp9BqqPh6zDvEw5ZDnWCHuNhhKD/Q==","signatures":[{"sig":"MEYCIQDzhXlqJBIpV7nYPOfWeuIIY8FMNic6JeqTA21GCAfeqAIhALzwTF/i0ecbSoTTC//x62mTPoD64izi5zkY4GI/YBxV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30191960784.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40564863},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c4cb7ee9d73e71d9846ca20be767ffd0110b1d03","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30191960784.1_1785049215690_0.6292246643965849","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30192035399.1":{"name":"happy2","version":"0.0.18-canary.30192035399.1","license":"MIT","_id":"happy2@0.0.18-canary.30192035399.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cda7a3ad6335b70f3f13fa5727ad58a11171e1c3","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30192035399.1.tgz","fileCount":3611,"integrity":"sha512-lzOVIICYaSXzj6Kolqslf5iImaLWJMWnAEIKIewlB/xhYOmyUEY1UwJv9g6jE9sqWZNoxwv6g9Hc23It/kBXDA==","signatures":[{"sig":"MEUCIA1rjow2d/T2DbHN4HwK6LKN9RNdCrQuEu9Go3vO/hmhAiEA+gEki2e03bY8KjxxnGdGguUw9xYaoikO8e0+MHGxCkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30192035399.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40565490},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9660d6d69229c96f25b3b19f0bd7a6a161979a74","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30192035399.1_1785049347909_0.9728780100532657","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30192047994.1":{"name":"happy2","version":"0.0.18-canary.30192047994.1","license":"MIT","_id":"happy2@0.0.18-canary.30192047994.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b87a982ed6c133a20513c2c984a8fc340fc4745c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30192047994.1.tgz","fileCount":3611,"integrity":"sha512-Z0N5LQPsP9xKRil7PjvSUi+bxky/t99zb0ijwm8NNzKRJ01iBfczUeBOZJXaBK3rOdWkVR3/fRK+nszJuY+4YA==","signatures":[{"sig":"MEUCIQDHhWsrEpHa06ajvRGffVXiUsw/dLaVrwk081CRX3OZAwIgdVj7k4lvP8B7c1Xx0xm5OZOGoFwvlPDwqxBWOUmF56I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30192047994.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40565490},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a347240a29e87f3144d211240e8c8d45a697b950","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30192047994.1_1785049474074_0.2589492438962553","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30193245753.1":{"name":"happy2","version":"0.0.18-canary.30193245753.1","license":"MIT","_id":"happy2@0.0.18-canary.30193245753.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"99274dd5b16e9d996e18ab064479d9dd1de3891e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30193245753.1.tgz","fileCount":3611,"integrity":"sha512-E4l7iKnxPjgI4Y143+pXXX1wV8fDWO18qQOpSdjP+udvq4Jx77KKCWiap+6yur9Gb3wGTKyXEKI5YeDwGWYItA==","signatures":[{"sig":"MEQCIAQ4K7ZNxXjy0FBoCt5p5Eg73tSgNN7IGQMw9ENtNUNuAiBZuY8zH6Aa7owBEBFgAchFfh5UfCgiIbMMpgGCiRfOVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30193245753.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40571125},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"35d8eb61bd7e48d93a3dcdcb160dc50b58e1de35","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30193245753.1_1785051800774_0.41479955630134424","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30194758733.1":{"name":"happy2","version":"0.0.18-canary.30194758733.1","license":"MIT","_id":"happy2@0.0.18-canary.30194758733.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"bfd7867ba106b4e47ab17a648c86c9e948283a48","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30194758733.1.tgz","fileCount":3922,"integrity":"sha512-51EWkQAtGEv2Rmm7Rvc2RWgZIQ0mMj2NQn9ClzdoAYR9sCYjOjpaFsCJBEmpJyxGaCldmjRaaYEkMK7sZMHLLQ==","signatures":[{"sig":"MEUCIDxRLNvFwe2/V2FGq5VbUJK12xz6e32nKiK4OAcmjIM0AiEA9YN/ZNRN06b/4CybOUSIEI/dPQwQcUBk0HtO0Joft2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30194758733.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50720497},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d677ac384b316ff47462024c792f92c21b3163c5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30194758733.1_1785054782288_0.1853423604238078","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30219199638.1":{"name":"happy2","version":"0.0.18-canary.30219199638.1","license":"MIT","_id":"happy2@0.0.18-canary.30219199638.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"50db6ceb2bb18144b1247c48500e4d1c017420c6","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30219199638.1.tgz","fileCount":3922,"integrity":"sha512-cYM/VpGt8lgkgBarvaBPvthQEmlCTr2cxLQpyE+452Cq0VwN63LsseqWQUf6kMYSLUQbHB2Gwo3H9Bv8kcmytw==","signatures":[{"sig":"MEUCIQCk8xNGnFacLPE4zP3wc4uWsMW1tTo8qvDbdht7wSS+qwIgJMLUVYy6wIAcwrvjks/WVhOqoXWICFz5j7NgjVsit6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30219199638.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50733500},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9c57ead5a952bf13f9b722f53cd124dc4a1c33a1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30219199638.1_1785098069341_0.06416138831321305","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30219415161.1":{"name":"happy2","version":"0.0.18-canary.30219415161.1","license":"MIT","_id":"happy2@0.0.18-canary.30219415161.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1edaf26ca2341849260752a9d9bc1c28a8bcb4bb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30219415161.1.tgz","fileCount":3922,"integrity":"sha512-d6F/EXOrtej6e6mYTbo8mSmH/KYTShWraMDFZ8dkJ+NOiOVy3UMgNhd3ZBLcIylZegokfJPz4yZDEVXyGa6qIg==","signatures":[{"sig":"MEUCIQDEhrzVkai+eeblymNTPuIN0fiikzue4B87kCwNUxmZIgIgVsrR2+CdXoKxH82NAefwEVTKlC2CDgN7oAvXN6mzBQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30219415161.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50734320},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"939c2f8d171c9ba4d89e5a8bce1fb2ec38ae10ca","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.63","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30219415161.1_1785098441648_0.5880931956615627","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30220039729.1":{"name":"happy2","version":"0.0.18-canary.30220039729.1","license":"MIT","_id":"happy2@0.0.18-canary.30220039729.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"879d5c8138807d7686e051c281736eb0d7398338","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30220039729.1.tgz","fileCount":3923,"integrity":"sha512-d6fib9d+d8EBR/LFqJqm9/9Z5Q4j0PjVP0DFrW2kAjVxd3hyetG0gmlLAc65iEsNwds/6eDlMmD8JjqXgix8qw==","signatures":[{"sig":"MEYCIQDYC0Qv37xwvFQLwyq8F2kqUduCGOY86HRcuw1S20FYkAIhAPZZ1yp0q3qfsMH/9fRg3+ZzdaTUr4QMxqaBrFvdKfOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30220039729.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50733845},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e35c849cc6b675c9ceb12df653b9388f5dfb4fed","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.66","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30220039729.1_1785099520122_0.8149300158258594","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30222800566.1":{"name":"happy2","version":"0.0.18-canary.30222800566.1","license":"MIT","_id":"happy2@0.0.18-canary.30222800566.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b8939555871ff3bec1911d1da6c892c140706b75","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30222800566.1.tgz","fileCount":3923,"integrity":"sha512-Sj9s7p3RxTxr0JBS8FU15pGNk4o5fy+fs/NRpYWtrpxAaWinuWaThIwupv9JaM8kMRowHLS1diQwRrC7sXt5kw==","signatures":[{"sig":"MEUCIQDOUi/xeQSAHy+P2Lo9EZO7sanoppUxZcClC6Q23O0VFwIgbd8e3BPabM2Gck9ef1nt/FN+64atgFQnUnucJiaoJvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30222800566.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50733863},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5d44dc29f4e51f2996c0020eb7f851e594857291","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.66","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30222800566.1_1785104299603_0.7011564197583704","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30223472232.1":{"name":"happy2","version":"0.0.18-canary.30223472232.1","license":"MIT","_id":"happy2@0.0.18-canary.30223472232.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"83d0d606bd347e5f1555b2c860d7d0c637903def","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30223472232.1.tgz","fileCount":3923,"integrity":"sha512-OaDvpErY9HavF4EpR1iELtdGeYtQmdffccZkLmEmV6vlWWklA/IXxeQ2X9rXkjCahC0BHpECW8+1bJs1uJ/3Ew==","signatures":[{"sig":"MEYCIQDQYZfXnTJwYS6tZ8T1+/Lmssag+f4AD0U47KSv1Bur6AIhAPE9YnCbIByddQqfxpJBOvP4EFb4AOSDxvCalQyoemwG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30223472232.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50735285},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e9fb3eea04863c14337c6e78a7d539024fbeab06","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.66","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30223472232.1_1785105502631_0.27723281390905985","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30224173153.1":{"name":"happy2","version":"0.0.18-canary.30224173153.1","license":"MIT","_id":"happy2@0.0.18-canary.30224173153.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a97a2b691bf134de06a390db45d788b321620ee1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30224173153.1.tgz","fileCount":3923,"integrity":"sha512-8qO3R+UftsS9oJMvJLOjK4AxUK1m/CJpmQldI7Tq1PjRoSpSgLqbHJgNw0apowEPZuJJsviflP6n3ZJxGWa8gw==","signatures":[{"sig":"MEYCIQDYF4z3wd+l7uN3ATNzr5ssiqNhFqRzAk9tDdlc8FS9WQIhANtNE8TgOko2sdYr9H6fkyIlaJTQNYNcuYKSS1t8LwUH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30224173153.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50735855},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"8f4d2b40447c8713d820fb48b81ebc334b62f431","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.66","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30224173153.1_1785106738091_0.04741894750431208","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30224693588.1":{"name":"happy2","version":"0.0.18-canary.30224693588.1","license":"MIT","_id":"happy2@0.0.18-canary.30224693588.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b86076fd93e608fca515877c99d86bd2e361d43f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30224693588.1.tgz","fileCount":3923,"integrity":"sha512-+kLENeHnRKUdDX74mr2z6HYXH7zThr3ZdSpbqoyyCRBBGSyGW/2ARqsSIFjqJIqlqKvAzZchAQtwlUx0C5CNDQ==","signatures":[{"sig":"MEUCIHJ5eJFROGDvQAYmXu6ozAWEAT3kRrDu8h4kMjoJN8OxAiEAkH7h7mpYCmXFXEi8li6RZxWEU7rAMPVI119YJ6ovQ2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30224693588.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50737363},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b7ec059b556bf98ca3bfed40457364ea75b83eef","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.66","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30224693588.1_1785107568975_0.6040270741566984","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30228094716.1":{"name":"happy2","version":"0.0.18-canary.30228094716.1","license":"MIT","_id":"happy2@0.0.18-canary.30228094716.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e2d573646f3106018b134e8b846c2a987a97e5e3","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30228094716.1.tgz","fileCount":3923,"integrity":"sha512-4qs1Ti63hKWeFvo51nMm2mXSP83Ck5z3awO6tw2ngcIxYsHFQgDBHNRi5MbJctNsdWkpHeOMEwUcA3GzNZCQqQ==","signatures":[{"sig":"MEUCIQCfTOGJwb0DgdSF2tBW5/ZJXeJy3UCODGukFV6srDn4ygIgCBsCaxW4QKCBN+pK8MysXE0CutL1Wru+84fCTzg0oCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30228094716.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50745693},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"529bd7214f2397d30e738f31c8805e8f10ea6fbf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.68","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30228094716.1_1785113113799_0.4515120335042393","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30232127729.1":{"name":"happy2","version":"0.0.18-canary.30232127729.1","license":"MIT","_id":"happy2@0.0.18-canary.30232127729.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9cc0ca6d87a04e3812c2868f143a08eff83832ad","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30232127729.1.tgz","fileCount":3923,"integrity":"sha512-7bov455LQ5+sdXqSZ2349xXxLwJQLxTsRPYhu1aoDDwBEpOklzk6s7gryE8e0bob8Pvr4uajmg6iqhpcOGuEKg==","signatures":[{"sig":"MEYCIQDWZjf7tlr74AJm8k7qYOp7Ds1S5O54sQrDbo3j0nlCZgIhAN/K+iLSFikBM3Uu3aDDa632FlHqbWVv5bK51top6chT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30232127729.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50752838},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"217faf095fa5f7af4a246b3004081181a46519f2","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.70","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30232127729.1_1785119232380_0.5976763123099504","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30235774860.1":{"name":"happy2","version":"0.0.18-canary.30235774860.1","license":"MIT","_id":"happy2@0.0.18-canary.30235774860.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"bd28cc5b2e099e5a2358ebefb39f7efe36d6fb89","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30235774860.1.tgz","fileCount":3923,"integrity":"sha512-kHAM3EBFJdGbqq5E6P7g7TQn5EFQS/esR8K5cOnKyouNlDJT4i500rOU/cAhNE5vSL3W6wGmAzXLIC18uxl27Q==","signatures":[{"sig":"MEUCIQCGX0djpWllmtfZdolKNZ9YHQSagdYtFcRUCnvxL992pgIgH3X1+ENMaAG8OZOonjeaviAK4omKeg4Idcw5Ivbcpkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30235774860.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50752907},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"06b89f0ce474e1651174a3d8646cf5c21d6b0496","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.70","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30235774860.1_1785124686215_0.27901970554405753","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30344100353.1":{"name":"happy2","version":"0.0.18-canary.30344100353.1","license":"MIT","_id":"happy2@0.0.18-canary.30344100353.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d80826c0ddd97c93966471eee680290aba0af103","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30344100353.1.tgz","fileCount":3923,"integrity":"sha512-OOA28x6UPrd2hfuIqZXx1XjwsyuVyP+dVXz8SHjQpQtEPmZz1eGtm8cQtOQp/sKGJrKkzRkMOltG1h4H7eHbMQ==","signatures":[{"sig":"MEYCIQDAKNdfdxyDfsSd7GIkoeUXmBgDiayO2evRaoN1j/52zgIhAPtk/40O7elmW3dM0bbBVYqmWg7h/M2o0/B4xFpGOaGA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30344100353.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755367},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ad26accac6898a8e50fbb495117a2b835acf15aa","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30344100353.1_1785228818136_0.3793572957230822","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30412136778.1":{"name":"happy2","version":"0.0.18-canary.30412136778.1","license":"MIT","_id":"happy2@0.0.18-canary.30412136778.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c6b2021176d27cfca36655ead274e00a091dfeff","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30412136778.1.tgz","fileCount":3923,"integrity":"sha512-jjQ460L5yCEuYes63cSOSb/dznxT2jK7ay3leHerq45468tIF9dE5zLlYHZxCrs7t8LCf7G4x02eA3KMy2DmmA==","signatures":[{"sig":"MEQCIFiUc55iMebRYZUDONYpQGaNUnWU02DNHMjwSYaY8xdLAiB/gkmdNiCwNzZIy/W+yx5amBw9f3f/4RJldaZxuRvs5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30412136778.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755367},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b786e898127b1f6b632ef971a9af658f0867c3d6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30412136778.1_1785286106507_0.8305264396579515","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30415251779.1":{"name":"happy2","version":"0.0.18-canary.30415251779.1","license":"MIT","_id":"happy2@0.0.18-canary.30415251779.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0c2cfea768958aa269fba6f60cfb9582940de755","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30415251779.1.tgz","fileCount":3923,"integrity":"sha512-vx8qvxYnSXFegvkKiIXJlY9Wio1mNUSXM5ydTDTfB5pYvitVCZxMAVlprpTGFdMYz5GWVpZPMHr0NVjwhZ6t0A==","signatures":[{"sig":"MEUCIHrCjHqe8Eb27yWdaxZLHtN6sMCVraxLkGtT3oGEJBNAAiEAk+AEFmAx/Cl8CFhheGA1CfDdFLDpCh57lqCn1TwbI2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30415251779.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755519},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"15cfafff1c3f8ea2cbffce0f8a997f745558624e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30415251779.1_1785290001202_0.620942794663566","host":"s3://npm-registry-packages-npm-production"}},"0.0.18-canary.30416699698.1":{"name":"happy2","version":"0.0.18-canary.30416699698.1","license":"MIT","_id":"happy2@0.0.18-canary.30416699698.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4559ab40c5ac3f70e63c89ae8cc114e2d9b9db49","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.18-canary.30416699698.1.tgz","fileCount":3923,"integrity":"sha512-7mHHnlvDkL0pM4hpkQncI3lJ4rZqjdLqW/tVupCk/gcPUMKxFnBw84d4Bc4condtgbhz+WJlWjkoRLXOkG0nkA==","signatures":[{"sig":"MEQCIFn8MsqDAYdytk78ieiS9vYU7L3mJ7X/CZLuKMLbWf2oAiB+td0kEMN8MxlcCvhIxuOZ9sCP2oYNG1ECFtjboYqxNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.18-canary.30416699698.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755543},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"765e35090e7d36c15e8f313a1770eeb844a42a3e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.18-canary.30416699698.1_1785291926190_0.649000629475347","host":"s3://npm-registry-packages-npm-production"}},"0.0.19-canary.30416870997.1":{"name":"happy2","version":"0.0.19-canary.30416870997.1","license":"MIT","_id":"happy2@0.0.19-canary.30416870997.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fa3fc641e377d5a2e9de260ba27fd066b7c4d1f0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.19-canary.30416870997.1.tgz","fileCount":3923,"integrity":"sha512-pox7EIdWNK3qEyD3tr1eXJZknBkurhu07ydnrcVEB7q1nzXOuksCVwtd0rwzSF5qrYO6rZEIeT1h1qWYPtkzoQ==","signatures":[{"sig":"MEUCIAYQWo/fU0dj4/ZzMQEdbMgwVBFnE8S+MvuDD/3pXrA6AiEAwl8iU3ASdtZtMIwPscRJtMrDfjuA2+qxIWPochlNXkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.19-canary.30416870997.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755543},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7f0e085416283cce64aed6b73d9a8b0246120461","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.19-canary.30416870997.1_1785292160189_0.9921642475934509","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30419508768.1":{"name":"happy2","version":"0.0.21-canary.30419508768.1","license":"MIT","_id":"happy2@0.0.21-canary.30419508768.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c397b389409419aecca6e3ae14017ad3c366a954","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30419508768.1.tgz","fileCount":3923,"integrity":"sha512-vhfMIYuvmvwUTOMItfRMdHQ740LI+dg36Lp7OjsBID91RTsc6EMVjUqJPrdnTQ+TeF+B7mVssJOw4AHNto38zg==","signatures":[{"sig":"MEUCIQDKrebmdEys1pWOuL1xrue/aF/mDPdgo3Dqf+DOijcV3AIgZFiWjjnmq/AXji3X3qBDrykgFWD4jok0ZupOpcXMleE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30419508768.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50758315},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"825061074b5b75e6d569aa46b8cebc012c012fb4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30419508768.1_1785295618736_0.46700616048449817","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30420130445.1":{"name":"happy2","version":"0.0.21-canary.30420130445.1","license":"MIT","_id":"happy2@0.0.21-canary.30420130445.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4f422bca3a05b41418f3dda5cdeb019d810af24d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30420130445.1.tgz","fileCount":3923,"integrity":"sha512-uBiV2aLFa4QTo9+EaCDlA/x/qEE21hOhOPdqus3wMpSTrVpxu8L0yMdS8pJk/D05h1z3hgXaf8EzC19PTf82sg==","signatures":[{"sig":"MEUCIFX8R2bGrF5cBi+Y42jcQCZK5x3JCXhvfZRlQ1V/BvB4AiEA/TwbbrJITEZTTFh90Zph1XzmZIvwHrbljpmM+HrnL9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30420130445.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50758367},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"30f133e91acfaed2a12b1b39c79a9fb1f37f82e4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","check:release":"pnpm check:validation && pnpm build","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-ui --filter happy2-app test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30420130445.1_1785296473039_0.6581186035813176","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30425311668.1":{"name":"happy2","version":"0.0.21-canary.30425311668.1","license":"MIT","_id":"happy2@0.0.21-canary.30425311668.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1f0448513d3035b1a301a4847cd5a67af09225fa","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30425311668.1.tgz","fileCount":3923,"integrity":"sha512-MqjxA0IMvnsMeI6W6zd2i67cJ4s5miMvOJAt2HTwyvay0a6gSv2t6+IECFt/V5AGWSakBuSzJdy+rrML21khyg==","signatures":[{"sig":"MEYCIQCPk90MqFAVLlZCdUSfkgaUy9ljvTvfOehJxi8E2wWcAQIhAPXsCFbJ0w3I4gb/W0YXFoY7GrvsEfEi9VHIbyStKpEg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30425311668.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50763862},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"cd01b2e72bc37c085d1db4b0594f8e6c832b8315","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.73","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30425311668.1_1785303207100_0.10213172087479694","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30427996570.1":{"name":"happy2","version":"0.0.21-canary.30427996570.1","license":"MIT","_id":"happy2@0.0.21-canary.30427996570.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b5349beee2009a392312a31f55f03a1e4fe3fa45","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30427996570.1.tgz","fileCount":3923,"integrity":"sha512-pbKVKMuI4f1svDzc8PwoC4BshTz/aXGBJSdQOIOcp4mDBY3MN20GjaU2IKVQFkftonpaVXJRTRM7CUHBDFc6dA==","signatures":[{"sig":"MEYCIQDrVLu+U3dN1GCBsAJr+hsiPLNkdKHs6xoSZbztU8oC4gIhAL2CtG6uid+drez9YJBhwZaoWHZaMZeKweLFiaw2xK7s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30427996570.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50773602},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ed3336668a9bfb4a9d3101ca826a1ffe77752453","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.82","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30427996570.1_1785306315160_0.8860970621174122","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30430739686.1":{"name":"happy2","version":"0.0.21-canary.30430739686.1","license":"MIT","_id":"happy2@0.0.21-canary.30430739686.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c36feeceece3b48a89d0bcfa601e2e314631d154","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30430739686.1.tgz","fileCount":3923,"integrity":"sha512-tyz4gPcmgnGzhn18b0ijv0hzBYdjip/78bvCB8XOrlrXQnJj05zt6Kly727FWmmqnLJSH8nn6FuRJ/rgl/XTKg==","signatures":[{"sig":"MEUCIQCnXdve9JfDG8ty7Qsqh60VMwE6fvhqktsWuFnD7jDUsAIgHexxe2mdAtgnT49the2Y01cSURnwaJMtud0nmRLLTmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30430739686.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50775744},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c7e59a553006fd04a52b439330bae1312a070e0b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.82","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30430739686.1_1785309209078_0.16613309754199213","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30431562096.1":{"name":"happy2","version":"0.0.21-canary.30431562096.1","license":"MIT","_id":"happy2@0.0.21-canary.30431562096.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"863c391892961de07fccd8d41239c6a3238626e5","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30431562096.1.tgz","fileCount":3923,"integrity":"sha512-SuLAgPl/UI80Uk4+sOifhqsfxGTkoyDr3twjXHxWl2Fr8+SiB49tG+qhymcneJ4r3WtwU3wPIDaEcG6rXCRzqA==","signatures":[{"sig":"MEQCIE4Idr1jOUPqF6q5u9U0+w/9QNKxB5ML3gNg4cz01kNpAiAKPG5bMJ/iNPNGTiZsezpcpJOyUpyT9ZDxMrg/CwikjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30431562096.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50777430},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b2852a3405c7d260a102e9ce29a2c8e9fab6d9d7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.82","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30431562096.1_1785310010593_0.3217488612679964","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30432333730.1":{"name":"happy2","version":"0.0.21-canary.30432333730.1","license":"MIT","_id":"happy2@0.0.21-canary.30432333730.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b6e9015100f6fda3ea0b7780d99ed216e86d08cc","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30432333730.1.tgz","fileCount":3923,"integrity":"sha512-0vXIl6N3M8BhF5kcUMcCEbUuOSS2BlQSnCglqd6KRNX5rC6wbUY6RkEX1HVwg+vn8/wgNEuaQj2UDF6woixAgQ==","signatures":[{"sig":"MEUCIQDVWNtr4DDKyKRUFHu2waKP4WhP1UVorFpYzWt80weM5wIgMRrubcNH9N4himFH/hOJiRzBrlKXNh/G8Cj2AId2mAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30432333730.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50777430},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"90c053c74529dddee47e5911eb317df59d1899c5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.82","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30432333730.1_1785310757109_0.2505375639485934","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30432515625.1":{"name":"happy2","version":"0.0.21-canary.30432515625.1","license":"MIT","_id":"happy2@0.0.21-canary.30432515625.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7f86ea3f0334a3874636e960cc66570e415c4547","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30432515625.1.tgz","fileCount":3923,"integrity":"sha512-ff5fwWtVK5rX4TLRdng3HL88Lg8c2uVZdHPDVVwUGQdCRLZBtHnbjKkYHzKuh73BP1TtZ1d2mRStGF+XkAXs+A==","signatures":[{"sig":"MEYCIQCEI8wxybOxTolaH20jE+zIHQXweBVfJNwfCLo9BXbwfAIhAKc6h9b2dlpbR2LpJEVuv8cZ/5DElOHj1KgKMoeSEAnx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30432515625.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50777430},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6481dc2930292d3043126641db0dcce73cd282ef","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.82","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30432515625.1_1785310901460_0.008295093673682752","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30432927218.1":{"name":"happy2","version":"0.0.21-canary.30432927218.1","license":"MIT","_id":"happy2@0.0.21-canary.30432927218.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"69d1ad2859707b28c92e40184a23131c814cd60e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30432927218.1.tgz","fileCount":3923,"integrity":"sha512-kYmrnv5/GMHFwCOVCyU2DK8dnTiTOVkOF7cMahwJJFiyRSts1GJJx/eSB9+rkykJLxkWth3NaAbkaKWVWXjaXQ==","signatures":[{"sig":"MEUCIAQTzi1ymCZ+EKHDHZ8h5ZeOBsUQeNq+qcvRTGt7TaNYAiEAqnjd7WsnH1zjP5vfDUKau1cNrM0Y8GnmjFLUkcETYrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30432927218.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50779863},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"42bac7336eeb210649a4bd2328de9f828ae5d3dc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30432927218.1_1785311330265_0.6321302436424927","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30432998162.1":{"name":"happy2","version":"0.0.21-canary.30432998162.1","license":"MIT","_id":"happy2@0.0.21-canary.30432998162.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4c4a3fc869b390c8e1da1b46156fc2e0c11629c0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30432998162.1.tgz","fileCount":3923,"integrity":"sha512-NYcY3HL3s+kv6mNQnVTgMnJCs4OzQvVcfZsfQwKxmRMQgNEQXV0Y8ChSCHN/wBeBQxsaDufHTD1pOqeqliS5tg==","signatures":[{"sig":"MEYCIQCx2nO4OrUEAkeB+Jmjs5qdtImiBDxkclOjJtW9w+IFGgIhAMNSSprIBmyslTcQS1noH1uz69D3XV1xqyy7WB22F7GY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30432998162.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50779863},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a787a774e008caed66404f7a1a841c907aca2014","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30432998162.1_1785311462721_0.9833373330676851","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30433855358.1":{"name":"happy2","version":"0.0.21-canary.30433855358.1","license":"MIT","_id":"happy2@0.0.21-canary.30433855358.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"37f8fc02399abc58028f0e5cc864058c71f7a1a7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30433855358.1.tgz","fileCount":3923,"integrity":"sha512-FPvQfm/N8doDP07BuxKU8uqpczb4vh9gxoAI6ktJ0LEAbF6PRV4ooh3qmVHiRKG4j4x+1cY/Y/lPM4NCPhoMUA==","signatures":[{"sig":"MEQCIHGUptOKoXLc74WptzB/jMy8FlaKxOjLLZ0wU6OerEqPAiAjHTYXza0yPLQMFuCm6uHJBtAYYzQdb9SB5/q3v1dbFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30433855358.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50797412},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b57696173547bd0cacd5421386de852139ca69d1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30433855358.1_1785312237215_0.303898131159255","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30434089917.1":{"name":"happy2","version":"0.0.21-canary.30434089917.1","license":"MIT","_id":"happy2@0.0.21-canary.30434089917.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a5f5d01f104c1f8dd36bd54ae5eae88ec84f0c87","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30434089917.1.tgz","fileCount":3923,"integrity":"sha512-iLF90Gh9ZiF6B8s/jMDQPcyyV7x4KU2CcYFBAMdlATjUswBz7ffcDezYCCfNbLOcE1zC4gZfh3YMyaId8ApccA==","signatures":[{"sig":"MEUCIDY2cJ2PyJ5a0TsszZkO8aRmMk7eJH8Z420CsNY+Aw8SAiEAzxIcJ1unpnsCG004EQ5RXYCm0K62owBEF3PE5dwNmzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30434089917.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50797412},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4567c353a36807bc4b6fe1f9d6034deaa5eb79d2","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm test:coverage-tooling && pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && tsx packages/happy2-server/tooling/server-coverage/cli.ts check && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","coverage:server":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts check","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:coverage-tooling && pnpm test:non-server && pnpm coverage:server:unit && pnpm coverage:server:gym","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","coverage:server:gym":"pnpm --dir packages/happy2-gym test:server:coverage","desktop:mac:release":"node scripts/build-mac-apps.mjs","coverage:server:unit":"pnpm --dir packages/happy2-server test:coverage","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","test:coverage-tooling":"pnpm --dir packages/happy2-server test:coverage-tooling","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","coverage:server:baseline":"pnpm test:coverage-tooling && pnpm coverage:server:unit && pnpm coverage:server:gym && tsx packages/happy2-server/tooling/server-coverage/cli.ts baseline"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30434089917.1_1785312410532_0.41937380555695425","host":"s3://npm-registry-packages-npm-production"}},"0.0.21-canary.30434533478.1":{"name":"happy2","version":"0.0.21-canary.30434533478.1","license":"MIT","_id":"happy2@0.0.21-canary.30434533478.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ff51c08334ad440a7b01c17405ca724d317a94eb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.21-canary.30434533478.1.tgz","fileCount":3923,"integrity":"sha512-uN7GHnHj7+uIyKSbSwqlcZNIuAYYl0V2vgz5FddR/xOTMANk4KdzrGARDOOSsq0kkdLLKH1Wei1opRsualajUA==","signatures":[{"sig":"MEUCIQCnlKsupdVkrU7BqgaRnKfWq4b/cTDjmbZDTDLAD9v1JwIgb9+WlXzXbsFNHPFv2n4AWgLH19n/K9erf7dCEd2Egm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.21-canary.30434533478.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50794307},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d8e7cb771948e3fe5a408543779672243d568bcf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.21-canary.30434533478.1_1785312790110_0.8083283388578331","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30468944092.1":{"name":"happy2","version":"0.0.22-canary.30468944092.1","license":"MIT","_id":"happy2@0.0.22-canary.30468944092.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"20c47d05bd553fb8832fae3a0e3fc6708200b027","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30468944092.1.tgz","fileCount":3923,"integrity":"sha512-dzh/rjWyyDeRXAAsSNOW0PXq/jXAQqZR4xrDoxxGvQ9fAJ+Ut8FBxQY6C8n4f3G6wjnOSLa5iN0MgafF2TgGHw==","signatures":[{"sig":"MEUCICCGEi2LZhihnV+fihJxcx1c47XGXlGYHeB4Inr7YI/XAiEA1FfCW/15XBVQIujE8O2NpgEwWMCMce6GVigEXKx+YVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30468944092.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50798409},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fd553cc3afde7e7a60bbef2b6c65acecb41e5c67","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30468944092.1_1785341138676_0.5479218462952888","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30469079915.1":{"name":"happy2","version":"0.0.22-canary.30469079915.1","license":"MIT","_id":"happy2@0.0.22-canary.30469079915.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"336278eecc41c4dc29ba9c5305d9180e1447ef50","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30469079915.1.tgz","fileCount":3923,"integrity":"sha512-8fA4Hp9HeDWfDk3IcT8HVgY/FGqAH1k0XmyaeatAoXGvpHdKMJro1Cv+D7KrStBFOXhcNRK3DkwCQ3mB9bbj4Q==","signatures":[{"sig":"MEYCIQCxKpXVvbgj7nBXm0fDoGrNFdCFNyFHFWAxlj13EO+AogIhAJn98Bpdnvd4WMNCJHtD0KltVLVfqrMTH9P5Ha8FnIWF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30469079915.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50810954},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"06c01a2fd0b1592738c07e74442e1f555ff0d885","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30469079915.1_1785341330455_0.1442942117171988","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30469347319.1":{"name":"happy2","version":"0.0.22-canary.30469347319.1","license":"MIT","_id":"happy2@0.0.22-canary.30469347319.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7f39d8f3b66a8083f132aa1eb3495953e601f77d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30469347319.1.tgz","fileCount":3923,"integrity":"sha512-OabRdPx6CA9dN11cIot14WOxJQsmdCa3lPrlJFZ6Qc2wYchbPIZyknzOu2vQFHwas7T9I4TTk6+QU1FSIeJG1Q==","signatures":[{"sig":"MEUCIAkuhP/Nnu9CLlKpgIDK1bvLVF4bOSolRMj9Xgh7LxOiAiEAgWzRaF0wNg1dObeKVNrKka5JMCXkPQL00NHAYUAj+VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30469347319.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50818402},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a3934cfcfbf275141629254c7a2ceb4e36679731","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30469347319.1_1785341557214_0.017908184327598997","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30511780793.1":{"name":"happy2","version":"0.0.22-canary.30511780793.1","license":"MIT","_id":"happy2@0.0.22-canary.30511780793.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ae063591c3c6141a8f442b358481dfa0501a26c1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30511780793.1.tgz","fileCount":3923,"integrity":"sha512-DFDGi1buDocPThu56QbfGmrKDW2gNyjYQcGPLoOKSn2MqmcAnq8U8wjy5YcFT+0qbs8SB8AKeZBi2W3vOIRyeQ==","signatures":[{"sig":"MEYCIQD9nRoQQCJixxGYZfktl1RqWwhnX4XUiuCyETMJDMrXxQIhAO0pkYmfGojS8iuMEughFtJbqTpR10rkg5vtoMDqYbv2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30511780793.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50818434},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fe961032d075b5100b01f09da99a62efd02836bf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30511780793.1_1785382916221_0.5282394200402318","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30511900577.1":{"name":"happy2","version":"0.0.22-canary.30511900577.1","license":"MIT","_id":"happy2@0.0.22-canary.30511900577.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8c6800f27c91c3d149599c12a44dbf4e2a2db957","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30511900577.1.tgz","fileCount":3923,"integrity":"sha512-nORva3iNVSM4s3w9bGyzYYDaob1WiVuOPOw/gKrE++Dc5y02WzPA5svn1WpnacfV9bMrQpXoARWySSUowcxE1Q==","signatures":[{"sig":"MEUCIQDsbmLZwISdGkEdO/f2FyUYc/uYpfxBwcHiBZV6Vw/p9wIgZ15nlOWwjd4fUcoGG41G7pFx9JHkB4e5xv7kSqMydK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30511900577.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50817936},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7a194b34541541e9f2cd7632fa399bfbdafad6af","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30511900577.1_1785383079150_0.9733066335782867","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30512132145.1":{"name":"happy2","version":"0.0.22-canary.30512132145.1","license":"MIT","_id":"happy2@0.0.22-canary.30512132145.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1b9f082c54e14152492eb580e1cc37ee19d43185","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30512132145.1.tgz","fileCount":3923,"integrity":"sha512-LftlQFwrUUlBwqml8fKEoWHhV/qw0W9hiZNlZ+cU2x+9KXURj91mSx6o1iKA4EGv5JbFxZgRr9pGyHG8rKfeJw==","signatures":[{"sig":"MEYCIQC/w5EoZS2MmKku5TLcTZ3HwU3ikg23V06YyPkdrK1qsQIhAMwhOF1c6//JXsAQRVJZl1ysDEVL2iRWZRJ1+gPh6a2w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30512132145.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50817936},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"19b3013141122f69f0bf8643eb015aeb30858eea","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30512132145.1_1785383403462_0.5950938077231909","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30514121466.1":{"name":"happy2","version":"0.0.22-canary.30514121466.1","license":"MIT","_id":"happy2@0.0.22-canary.30514121466.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cc70c5d377d109cf0b608b4f1a52fcd2acf4c9e2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30514121466.1.tgz","fileCount":3923,"integrity":"sha512-nHK1DbZeYB5cJT/VUBPpy1y7jcI/axCFufrfNnzDBLujFyc121RsMWCjEh0AiuSXH/BzAcqnsTx9vzneRaWN3w==","signatures":[{"sig":"MEQCIDfvJkAcxazpVpiac+tYqdhtUVFmH5RNLQuzxqec74OFAiApsPs9E7A1inDz7Zr4I6eFGTrIF1te4MsXF25329tEKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30514121466.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50820014},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7a694635916f9da13fae129678f028c5e5c1856e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30514121466.1_1785386030892_0.04608146630015075","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30518604504.1":{"name":"happy2","version":"0.0.22-canary.30518604504.1","license":"MIT","_id":"happy2@0.0.22-canary.30518604504.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2c3b54d870038dc69e0f2f551faf3228e9026f7f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30518604504.1.tgz","fileCount":3923,"integrity":"sha512-Xn7UyB8gdBRmE55P2k7XLWtoQlRzokoXvsvTNCXns37GNVgz8hkZusm93PWBd/FdLwuR7l2YiQ7M0E6OManj/w==","signatures":[{"sig":"MEYCIQCoLeEUxtFHe264ao62R5aKJUGnPbL4+9riwHFlnusqTAIhAJ49qHjmS/jHbAYCjp77XPvdJ2Ky7FTj0S1rwi4wUjz9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30518604504.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50821243},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ef783d675fc70c52cf9f8256f4ef9338903ec2c3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30518604504.1_1785391754818_0.9694722609837505","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30525589118.1":{"name":"happy2","version":"0.0.22-canary.30525589118.1","license":"MIT","_id":"happy2@0.0.22-canary.30525589118.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9e7fadebd021db5dd9fc4700eaa6ff515ccc7741","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30525589118.1.tgz","fileCount":3923,"integrity":"sha512-MbVG55+D/4Gm7beif+gQEBPOmgBh28tUXefkHAQLWnUcOxB2SmHE3xlFC/DgHvlK5N26JdIuvv2Jk14QAixIfw==","signatures":[{"sig":"MEUCIGs1kgIsx4COdP6BeprSrVze7S5Rx6z2v+zVrCw9gwFhAiEA47kxJ0dbpz2MtwEM8HcGqRL/DsKRvVU5yI0CwSybwgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30525589118.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50821243},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"10c42c703d60b3fccc79b0c01269b516fc988d7e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30525589118.1_1785399090233_0.2695119656060754","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30525614405.1":{"name":"happy2","version":"0.0.22-canary.30525614405.1","license":"MIT","_id":"happy2@0.0.22-canary.30525614405.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f18d9a5250722b891eed58de609e45ff114de38e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30525614405.1.tgz","fileCount":3923,"integrity":"sha512-mXylf3860Bh0zACZnMBwVjHUoT2ot/ZIkLBO9uSaq1E30cMuRahsdlfM6odhHOCkl70xANlvMszK35Evn72OdA==","signatures":[{"sig":"MEQCICOB3R7cj2IB1Yk5aO80JCtWWruqXM4jbnc1/cSAv9hRAiB4aoPidhrTtrO31LROWcjlpMENy/9DjJ03v/LIrvfY5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30525614405.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50821243},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"8b8101713b81132979b0edd8c9811129a53fe3cb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30525614405.1_1785399222890_0.2608974100368897","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30562717836.1":{"name":"happy2","version":"0.0.22-canary.30562717836.1","license":"MIT","_id":"happy2@0.0.22-canary.30562717836.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4321a6d8692e9845174f8b99e1bc2e616b0ea904","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30562717836.1.tgz","fileCount":3923,"integrity":"sha512-9dLmevDx7rkeY7h3RAzCrWdg0zpGN3S2iqSSNaqAsCT03EDnB2RO64UPpXY5w+u6oPxe+/NUYmyBKn4P466KEw==","signatures":[{"sig":"MEUCIQDpgu9uznWf70y2NhawAznWdC2BWVTxaMHDle3CQxj2TgIgaivWCPC6S7VIVb3qvuS2G+RKkMMg5N6glpkWiHnZbUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30562717836.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50837211},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c51468ce13a93574a2a9708a6caf5dcc1b3c3098","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30562717836.1_1785429904858_0.9155656469989448","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30567784432.1":{"name":"happy2","version":"0.0.22-canary.30567784432.1","license":"MIT","_id":"happy2@0.0.22-canary.30567784432.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5bf727e8a07d719be2299d9789e588881de17bee","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30567784432.1.tgz","fileCount":3923,"integrity":"sha512-NaPfnTypkftSqlIKrxEsb/1MXun2dohUOQN9imYKVfs4kFWXMMmwfG//4um2gCMH0a9/rn3G+hdoBcLDbNrHPg==","signatures":[{"sig":"MEUCIQCSspCrwNRoF7bELQekO/C75gGHeU9gca5JGlv5OV8IvQIgfp7Gq3VZvZ7L5Qz3JXJLd0Sl9OMTx8DXB4niJCTCpOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30567784432.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50863702},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b5928de5c48c9f2b5b75aabbf304900a250e1a09","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30567784432.1_1785433976178_0.4621129446864085","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30569134230.1":{"name":"happy2","version":"0.0.22-canary.30569134230.1","license":"MIT","_id":"happy2@0.0.22-canary.30569134230.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7feb2a382b8a8f8afb5de32209487eeab31946f1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30569134230.1.tgz","fileCount":3923,"integrity":"sha512-PIYL5cXuk/EKnbCr1smcgamywiDuHfnfKN7LWpzxaAn+YN8gALJ0ni4IRz/2sm01mgOj2XgU4Uvt9zeVOHrweQ==","signatures":[{"sig":"MEYCIQCgPeFMdX2yG2YZ8Nmr3L3L7qc2HpWZMIKdNVZcO8ugZQIhAIckV9c2hJc4mrKX9orFRqKqyhV5j3fZEoN8nINEz9O2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30569134230.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50863657},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4d8866e269c63580abddd201ab26099a2e5d0ad6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30569134230.1_1785435069504_0.43274940504184545","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30590183486.1":{"name":"happy2","version":"0.0.22-canary.30590183486.1","license":"MIT","_id":"happy2@0.0.22-canary.30590183486.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e00d88e8b393641fd7652b0aa52cf40e1e59ab48","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30590183486.1.tgz","fileCount":3923,"integrity":"sha512-IjikVxB8GbKw7E904/IFXXq1KkeEtOHVXw7QEXmxaPtpY5/nMk898M7VYl7KFWMsuDdxfwWJ2KAcsZF5LLzDIA==","signatures":[{"sig":"MEQCIF79WVL3N/Jm4fU8BNg+As8GxTneD+Z+gsDrdaB6yH+ZAiAuKWUSp/hGnQctp4fKuJmMwEFeedcAn96431XWFkPzPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30590183486.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50864555},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6f5a73a68d23458cddbc4f2ba9f96debc51a38c4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30590183486.1_1785453747295_0.5707231496249223","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30591734671.1":{"name":"happy2","version":"0.0.22-canary.30591734671.1","license":"MIT","_id":"happy2@0.0.22-canary.30591734671.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c36225c5253486fc2db5c7e4d448d6432f9d8ed2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30591734671.1.tgz","fileCount":3923,"integrity":"sha512-xZcCt1JWuXD/b3qrJsothJkYRU/Z8ZKTnzS7pXwAuZ2C+34Yfs/y2i53TFYZcJIx5uXyIB3TgkvL0axUwgAe0A==","signatures":[{"sig":"MEUCIEU4TG7iA6OfY7dWtaCeIRzv52c/dXqJvX6xCIfpwNrWAiEAoJNBiJ+hLUWgZC355+/6p6hdtt2KqwY37NsbOU7dHCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30591734671.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50868384},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c486fac9452389bbf7ca7bedf1e908e208698757","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30591734671.1_1785455534025_0.5165102732582614","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30595568927.1":{"name":"happy2","version":"0.0.22-canary.30595568927.1","license":"MIT","_id":"happy2@0.0.22-canary.30595568927.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e1b2b7438614837e6e28421006b860f71175b6b1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30595568927.1.tgz","fileCount":3923,"integrity":"sha512-POAn5juM4zcA+gMskYjO5VGNiw7vpbZF/U8iWhGUpmhvPEzUeU8Ng8GEzchfQgYp3XIS55xpYAZd7fk6l6HqFA==","signatures":[{"sig":"MEQCIFVjnh8Z9Ws2Xm6b3bLAFl0VWNUCaya9mcUU+2tPFBkrAiAXFFNfJrKZzvnX+YHpX+RZ6UNwL/zfHT8gC87ZXVVrOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30595568927.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50872436},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"691ce145cc0319c3f872d8780a9bfe899e0920cc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.84","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30595568927.1_1785460282370_0.4492822737947526","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30597725553.1":{"name":"happy2","version":"0.0.22-canary.30597725553.1","license":"MIT","_id":"happy2@0.0.22-canary.30597725553.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"40aa1c83cade2e2ee2945db7c1e32adb0d1a87ed","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30597725553.1.tgz","fileCount":3923,"integrity":"sha512-OYxvm+o+STyEBRWtkAIg1Zn1cZyEiDO9X3CJsT+o0MySj9UdWqI9FqDfpQVGgwsV4pAqBTxoIOtiY6VlViOgCw==","signatures":[{"sig":"MEUCIQDlkRE8cPpgHOo8k8cpiACh8JZGMvWmKQEo4Lpr5Dk5cgIgAkdAiBc4xlYHAdrXvmJj/cfZl38Ujv5G4EjqD9hjRCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30597725553.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874305},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4349c64db8917f7e366c937282b42e7d41381c83","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30597725553.1_1785463205896_0.8490152220505902","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30598490527.1":{"name":"happy2","version":"0.0.22-canary.30598490527.1","license":"MIT","_id":"happy2@0.0.22-canary.30598490527.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"96f29dd7dc77f535782bd42c54581aa054675a68","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30598490527.1.tgz","fileCount":3923,"integrity":"sha512-YQ/Iin0fzY9tw8RjQDCzR/z5Ft/gf735vbBS90kOLBX+vKkxEoPqAR9HsONb3PVxd+dlMBkiYj/YzB7qI/U9HA==","signatures":[{"sig":"MEUCIHfxyVqksxSYxMUYh53ZX/R5SM9wzXeZe4sJPD80zrUjAiEArKQJl/8g5yiuXjekJAKQ00FTWMgAhx6l753T4wZT9WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30598490527.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874435},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9df379d9a9f07ea7b40ccef3d77faed51a73b665","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30598490527.1_1785464234309_0.1551573407402813","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30599121920.1":{"name":"happy2","version":"0.0.22-canary.30599121920.1","license":"MIT","_id":"happy2@0.0.22-canary.30599121920.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"7679ce3073965246d0523cf6d41d02e95c85f2aa","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30599121920.1.tgz","fileCount":3923,"integrity":"sha512-b7h3GLedExSxok8K7aZORFmal5E6P2n8rjsPhKv/bPQdBkvmKs7jhb4Wb+mm4tdVG83Vo5R43iKMkJuNU2cpBg==","signatures":[{"sig":"MEUCIG4QSTgUv6jddGzKMSifRGPtx7Z+na4MAC18LnsoBbdOAiEA9NZJPA0K6lyVvNBPQPqX25jhbYJnhE4D1HRJ/R2eZH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30599121920.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874435},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3fe405ddc8185ac565718505d8a05509553da9fb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30599121920.1_1785465112816_0.1956187358824404","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30599214451.1":{"name":"happy2","version":"0.0.22-canary.30599214451.1","license":"MIT","_id":"happy2@0.0.22-canary.30599214451.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8268b8abc0ff3aece502fd7ccb877893e24566a6","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30599214451.1.tgz","fileCount":3923,"integrity":"sha512-OuY/ISJQrKVwct+sMpfi118wTDHEulx+P7slzj38UxhlHvF70cJ5GieEO5ZdH7AUN3NDtxuP0VOhhWHqe2r9Hw==","signatures":[{"sig":"MEQCIB3UOazYhhtYUNEKRcXdXivLGW2ICGY2P1m0i1Kujf6EAiA8M8tiixwFxJZkJf3zxaR0hh9KA2PtaVUFTe8s9KD7+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30599214451.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874435},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1d310fe7b75f070b7870b4e3cf85535ae9e353e8","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30599214451.1_1785465221899_0.6224321070435772","host":"s3://npm-registry-packages-npm-production"}},"0.0.22-canary.30599935446.1":{"name":"happy2","version":"0.0.22-canary.30599935446.1","license":"MIT","_id":"happy2@0.0.22-canary.30599935446.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e1935dbe26cfeb903220c9516dc570c26fb8ed88","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.22-canary.30599935446.1.tgz","fileCount":3923,"integrity":"sha512-Oshepn0rsZQbBmwSNrOUIEt4ixeWmt0uNQkV8e2Z92Vn64dgtngbRE+uJGJRp5UeTEmLZWl+d/tc94SVPmyCzg==","signatures":[{"sig":"MEYCIQDVAdqS5e1F72YYqXdv2atzHFoxwLVAV1Las9DvnA+7QAIhAK90UGE0DZ9kwWWCy4Yt6m6EZFm/869p1asCYH/WhqfN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.22-canary.30599935446.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874435},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a4f82636e90bc409a57e6c23fd62d29b94cbfd60","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.22-canary.30599935446.1_1785466226822_0.5431873471307207","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30600458125.1":{"name":"happy2","version":"0.0.23-canary.30600458125.1","license":"MIT","_id":"happy2@0.0.23-canary.30600458125.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fdedd23cbff201c7311249d313030f7f3059c5f7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30600458125.1.tgz","fileCount":3923,"integrity":"sha512-VBIX0NbaJOkv1lDEiIxSCkvGOcyrzEfte+kTw4aaHhiDr2RO93QqzpHDMJlTM3Skvs7sKNr1fwAs/zYarPp2dw==","signatures":[{"sig":"MEQCIEo4WMoL79Zfa71K0+OIbMcmJc+QCfZIDfL18U07dp8sAiBcjLwuSOPTt5WqcN92PRy6NfahA1WCrLZQBLitFdY8tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30600458125.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50874497},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"33c556e26c6b7630504804f6065dc8a5165312e4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30600458125.1_1785467002031_0.5578602954647749","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30600647325.1":{"name":"happy2","version":"0.0.23-canary.30600647325.1","license":"MIT","_id":"happy2@0.0.23-canary.30600647325.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a3fe79949561c6023d05dae2c77d6a0c8a81230a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30600647325.1.tgz","fileCount":3923,"integrity":"sha512-1XPr9B7c4pzbxPAwd9Qe8mo6RT9NrAXsMfGj6POhJdPAm8MwwqfCoBGqPJdG340kaaPRZInGaoFyXQ4TdtobVQ==","signatures":[{"sig":"MEQCIFKXCC3m9Y9bqNxJMU6uUL79XO132fcEgi/FQksJV0goAiBOHGHS5RouJygKwGZa/lOd6wOAP7NCxNm949Q2fcTHSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30600647325.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50876935},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"745add60d96bea2765d5e7b3fa166fc809e9d379","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30600647325.1_1785467211344_0.6556799233188406","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30602167222.1":{"name":"happy2","version":"0.0.23-canary.30602167222.1","license":"MIT","_id":"happy2@0.0.23-canary.30602167222.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"eccc8ea810ba7b0038cfb10cdc00aac1f7b21b7e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30602167222.1.tgz","fileCount":3923,"integrity":"sha512-/zovm5F8Blwcir2gLxJgevSHB4elLW5TRLf1QKUQMMp8wwjgFu/yyC77aOhdPt6Czf6nQlar52apbEP+SBnj5g==","signatures":[{"sig":"MEUCIQDc9bXlPsnSczjxAhHs0DDK1SHN9uU8U4JEpQgjV6BjSgIgD8eFIw/YmcJADdvVQ1ec63yHf1NeuL5D7SPa4mF88IM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30602167222.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50888678},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fd2fe88f4aacfda7e8eabbd17217d37f41e62e4e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30602167222.1_1785469361792_0.5667299663738228","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30605098480.1":{"name":"happy2","version":"0.0.23-canary.30605098480.1","license":"MIT","_id":"happy2@0.0.23-canary.30605098480.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6e0eea71284a003dd446bcf02f1bd54435d9700c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30605098480.1.tgz","fileCount":3930,"integrity":"sha512-dLCxnRUqWZ+3Wkh/k8Q5lymekQdOrWUZee9fDkkkyi5tzY5J4FwG8N8Esp7YgmT1uOKP7XCpc3+VlW+O4lEWDA==","signatures":[{"sig":"MEYCIQClDzdHnERo2ka+6OWMPk5nDmgPQ92MzbF7vgzNthPdXgIhANhLJofAl3OWZJghnuzMM23E30AFtfXyza97mUs4mfDu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30605098480.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51795921},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3d410457ee7206c24d35a8ccfeeaccf27857a66e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30605098480.1_1785473398548_0.6242029639462066","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30605198979.1":{"name":"happy2","version":"0.0.23-canary.30605198979.1","license":"MIT","_id":"happy2@0.0.23-canary.30605198979.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a7b531ca0682f20e424675454b0819d3c7e12027","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30605198979.1.tgz","fileCount":3930,"integrity":"sha512-hbhc82mzEyEAZpeUmeYAtnwkr6ed5NJBNW++O+3JlXYEhev9/GK2yT/IZRItTFEkuMhapiozWOEfBM5nPukqmw==","signatures":[{"sig":"MEUCIQCAfZlZIjmJ3IP28CIbvaUhsRWC7Tugq8kSaLIViLMChgIgObtv1M40saJXa//nHjc7Op8UAffGG6olZTfdxttMVVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30605198979.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799396},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"934ae92aa2f15f7c78f02f9c23de006cc56520ad","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30605198979.1_1785473524070_0.7434788653100386","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30609910034.1":{"name":"happy2","version":"0.0.23-canary.30609910034.1","license":"MIT","_id":"happy2@0.0.23-canary.30609910034.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b08c8f7a3da6462501edf6450e3e5143b8fb206c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30609910034.1.tgz","fileCount":3930,"integrity":"sha512-c97AhYGLlccAMkOBBIdITX7hqU16feIsHWOwaCnJCiwUUVb4amu0rQpfsqTi2y2l6slbS6eajRmyHVSIJvySZw==","signatures":[{"sig":"MEQCIBbeJimVOMOixhS/i9eZPsUgG8RraXMUJm65MbToq3t0AiANQwxl0Zt8sH2vY3YjAl3SyeKb6nNGXTq7Tb3Pnjs84A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30609910034.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799396},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7c4784c93db6cb4b5d86e301ab30f8b25abf1622","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30609910034.1_1785479610989_0.44561073755137626","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30617436426.1":{"name":"happy2","version":"0.0.23-canary.30617436426.1","license":"MIT","_id":"happy2@0.0.23-canary.30617436426.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"caca017bcbde8fdca1f4dce759973f1259f7bfa1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30617436426.1.tgz","fileCount":3930,"integrity":"sha512-tYXZz8xpar2kByoD+15M8ciyghK8lcNn3Cn5HxRvX17vxVKTjb4t0jPqQnpcZLfV8c8IOPA+6XeLxYfMj08i/Q==","signatures":[{"sig":"MEUCIH0JKDRTDh6se/W40ioQWZMNp27ugSvPX2FDejgkok/dAiEA0pmGf14ubGG/PE4J0pAfvEqeO54lNQWnO5IkZh4OeEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30617436426.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1cbacbff48b47d45f9e876387a78101e7f5d4c65","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30617436426.1_1785487646706_0.8545246352830416","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30679653357.1":{"name":"happy2","version":"0.0.23-canary.30679653357.1","license":"MIT","_id":"happy2@0.0.23-canary.30679653357.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ad3ef241213d9b832a7c874784c09374f438ef34","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30679653357.1.tgz","fileCount":3930,"integrity":"sha512-HxtGzsEv6Snwu5yhdqrsk9FdmjILMCSNa1aAmP9OSXsIZZ9bdjYCPe/4vnLvtL4IZisPdsSc3hgSYdOnfoc0cw==","signatures":[{"sig":"MEUCICBHa7U8HCTzV+zxZqX3qRPRw6wnlBahdNNOvtm6zLckAiEAlf82hL68lkz8uMxEkbCf+yjkDHdyqLbuMl5Qiozb16U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30679653357.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"badee079152fa0d768c18432163067ef9e31d69e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30679653357.1_1785550669487_0.8115275311377836","host":"s3://npm-registry-packages-npm-production"}},"0.0.23-canary.30679684507.1":{"name":"happy2","version":"0.0.23-canary.30679684507.1","license":"MIT","_id":"happy2@0.0.23-canary.30679684507.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1d617d5ed8e86d0721a8fd5bf4a63c581cb1654d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.23-canary.30679684507.1.tgz","fileCount":3930,"integrity":"sha512-xWJgC5yHPAD1NE/ZyUL9JSQ3/FuesdirRB7nONlLP6WYDPhRDWiMCybtSBNPaflKQu0g2b3Gk02Hew4UG116Yg==","signatures":[{"sig":"MEUCIQCtmXW+26RQ7HAAKqfNhXi7/GdFGiIm/i1F6taS08XCBQIgLdZYxq8jVeNSwDeh8lWNOXpGpIORMvTydypjGz4aldg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.23-canary.30679684507.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"501d42df480fa1f035404b8f40556ff4dc3d31cb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.23-canary.30679684507.1_1785550799444_0.06461847327372827","host":"s3://npm-registry-packages-npm-production"}},"0.0.24-canary.30681136808.1":{"name":"happy2","version":"0.0.24-canary.30681136808.1","license":"MIT","_id":"happy2@0.0.24-canary.30681136808.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"85d133c5f2c4359eed823e8d3b85aa00d174f927","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.24-canary.30681136808.1.tgz","fileCount":3930,"integrity":"sha512-uiDqBaPlrOVoYU395wJZd8lcy78vOcOheKiRfz6Nw05GKyL1gNhsKF2EWDzReSs5SEl6sdyXxBV5PYsgabCfDw==","signatures":[{"sig":"MEQCIHCjtQQvnnaijHmCp9/WO5ve4LvR03WIGRuJEyAQFddlAiBqdKz9JGY3Bf9izBfrfAD4438kkRaJkulVTlBCbXGIgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.24-canary.30681136808.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"8d6efb35f6ef6446c7c6441759b7025be9fe6509","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.24-canary.30681136808.1_1785553388794_0.1493248889626373","host":"s3://npm-registry-packages-npm-production"}},"0.0.25-canary.30681586762.1":{"name":"happy2","version":"0.0.25-canary.30681586762.1","license":"MIT","_id":"happy2@0.0.25-canary.30681586762.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"dedc575bdeeeda2878deaa0bcea05c016fb5a052","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.25-canary.30681586762.1.tgz","fileCount":3930,"integrity":"sha512-RlriIgT5y94mxUGFmk7CZahXv6Pm4o0pm+GjeecI3PIe62qapHsQP9haN1RdzKbUMOgYpADJQymEOiQ01MHHvg==","signatures":[{"sig":"MEUCIAb0NSIQ7U//k8dABOfkvrSZDZ6XSmarzPo28f2ttX4dAiEA+flPJ+R0+TKW6UaW5Gt+21anGCqXYFCLfWzeKY8TCOk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.25-canary.30681586762.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"08ca6998658da927aa4be0d046b0f4fb85d65cd0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.25-canary.30681586762.1_1785554154255_0.6185825085934358","host":"s3://npm-registry-packages-npm-production"}},"0.0.26-canary.30681984294.1":{"name":"happy2","version":"0.0.26-canary.30681984294.1","license":"MIT","_id":"happy2@0.0.26-canary.30681984294.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3f70ded5abd0bfcc60eac4d90e47f68afabb96eb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.26-canary.30681984294.1.tgz","fileCount":3930,"integrity":"sha512-FQ5GYKWQVY4BOw7wR+TdXWP6Ve7hKc/ROUoVN7JjYckTWlHHtbaqejcq7TO5ZWi0+/zCoILNEcnTvc8pUPWjhQ==","signatures":[{"sig":"MEUCIERveAgiGlnFQZPykoYMt5DZvIQK/0x+56fLuAXMYoBMAiEA4mPL3ZojSJehrY2Q8Cl7jSX1cpKodkxvBIRHatJ7elg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.26-canary.30681984294.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799386},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5164b8b8d04db7f0353f4f82e057eb5a4ea9d77d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.26-canary.30681984294.1_1785554897213_0.8325191246615931","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"happy2","version":"0.0.27","license":"MIT","_id":"happy2@0.0.27","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c7f53db39f3498e0d88e3ba07c814e3e5c41c624","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27.tgz","fileCount":3930,"integrity":"sha512-kUmwGfbAbpsBYZ3WouAio9dbc76wpwDporTvtfAP7O/+9DL6TZzGHZJDhYt9jCcNsergKYDxm/Ue40Rn+kpgOA==","signatures":[{"sig":"MEUCIQCVQvB2kSRl1bjZjQN3l6aUX94aaSh4JQ1NKSMkN5UZaAIgXzuGkU15nZWQqrjPDONV8lmwvJWSn4WnUlDAPLcZ5Sk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799365},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"04cdf81dced2a35b00dd1533ea8bb346380f66fa","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27_1785555501049_0.016478475211226362","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30682477291.1":{"name":"happy2","version":"0.0.27-canary.30682477291.1","license":"MIT","_id":"happy2@0.0.27-canary.30682477291.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5b829ba306eda1bd191950481573e6f1a5cbfb19","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30682477291.1.tgz","fileCount":3930,"integrity":"sha512-yDqB8K75FA5lXWDLVvpfJjwpZC2ArkEPveeHmGRQB7ZI5/AesuAJrEWJ8OqgFxp49Smty0+p9p69qmR2ry0IyQ==","signatures":[{"sig":"MEQCIFKZdyNTOYTs9VmtPyrOvsrwrckRjSyGX82H/wKqesK1AiARjykQvSuSMBe68e13oQ0xuwaueS44aHRm30Rn5iCwqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30682477291.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51799458},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c20b2eb54bdc190449a544a5d2e7830f958a8735","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30682477291.1_1785555812572_0.1590196568353237","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30683132893.1":{"name":"happy2","version":"0.0.27-canary.30683132893.1","license":"MIT","_id":"happy2@0.0.27-canary.30683132893.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d1c5a0c3a5930dfe1bde4cbde6d209bd1ba2507f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30683132893.1.tgz","fileCount":3930,"integrity":"sha512-I5pzw3J9AsKIvHkj8+YLOxW8FUg2gAwrWLaHOUgr12m1QsPOwgIsE3ZajBU126h8DrFBpb1L+tcJjxrXnzo+Rg==","signatures":[{"sig":"MEUCIQD11g3MuiPRvfMWdi8Dhz13hQz2bkIpUWh95+Gy9lvxowIgZECYbmO1/o/eCMxC/0lONvffhgF1XXwRMW2swsp35ZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30683132893.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51809944},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"faf4e8d4ca30432182774ced7c9311f0da9a56cc","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30683132893.1_1785557048488_0.8526227646369013","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30684429299.1":{"name":"happy2","version":"0.0.27-canary.30684429299.1","license":"MIT","_id":"happy2@0.0.27-canary.30684429299.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"714f7bf172fc2107142b9f1e001a9bba724e82b9","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30684429299.1.tgz","fileCount":3930,"integrity":"sha512-TlNtSsSDLHkxmOsJy2+P7hCO70wIhYKsCzQEOiTjonMumUcyTaMVqM4E74rE1ZQ9LJW/Me3c5UlyjPxtqFnC/w==","signatures":[{"sig":"MEUCIQD0Rr4jlX5V55wlscz/UzpCIgXpXcEcrSdSlZJ8lsSYIwIgJ7dxC4POkQdd1xIey5wKTB0qUR90C55XwCks3vZ6juE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30684429299.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51809944},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7e58c9f780ad64cd40ab1c1576055a52f52f7c25","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30684429299.1_1785559426618_0.3550004763602699","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30684502865.1":{"name":"happy2","version":"0.0.27-canary.30684502865.1","license":"MIT","_id":"happy2@0.0.27-canary.30684502865.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6280e36adaee8df63e502817c1c7962feed88f7b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30684502865.1.tgz","fileCount":3930,"integrity":"sha512-+b0unDuNaGIY+m+v3SLo7MLKWcIX4fv+JaAyYdl8g8CbjpKvYr7+at5e9D7b2GWVAnbpCKR7AcGnXLr48tZyFg==","signatures":[{"sig":"MEUCIQCBCR9vJucXIXTvVLFN/0csjfIuPqTMsVSjXu6+VInfYAIgHSMfyPJyQuzC+y+6vhYUoG+P9hmZwI6i51FTQPFXJCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30684502865.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51812233},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b2fa85e1633a91dc6a7dfb8fbeaf1ed8280117ce","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30684502865.1_1785559558892_0.03129648552116193","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30686891710.1":{"name":"happy2","version":"0.0.27-canary.30686891710.1","license":"MIT","_id":"happy2@0.0.27-canary.30686891710.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"74ed24d7cef65dcef92963f1d98ed1a78b74835f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30686891710.1.tgz","fileCount":3930,"integrity":"sha512-UnmVW3Th5AxSh2ik7bfDCLpPZE2hwCnFhQUgL4vj3Gpbd8kqAA5HKFJQ+ql5NUYxYC+Exgy97s4wVzt2mukAiw==","signatures":[{"sig":"MEQCIBAV8a+r87JJoE9OnoWedT0UDmU30TUXpMHp2BK8ah1iAiBBX89umN9gcW8IBGVxhs3GTyA3c+jTMlwvNYA6ARbjaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30686891710.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51825072},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"183cafffa4209a93b8737f6f3b44d8812206c48e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30686891710.1_1785564141633_0.061673296577993364","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30687053022.1":{"name":"happy2","version":"0.0.27-canary.30687053022.1","license":"MIT","_id":"happy2@0.0.27-canary.30687053022.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"153a7187d7a235d7aabd2e4fd9e5abc5354f17da","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30687053022.1.tgz","fileCount":3930,"integrity":"sha512-mD4+0i8jmPAjZ6kQT0ozHpygJPKwAIDS61qJBzfeFAreFMnnbdRUsongI7LvGXayunhVdgJmxCTENIx9cFMMDg==","signatures":[{"sig":"MEQCIA6xQXdHaoJlcd94TjmWhzUtUu2FaBTczTCoj9AObub4AiB9FqDDzNnGoLioBZcQq00izguJOTwXnkdXC9e9Ky1w3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30687053022.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51825197},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"93eca10be586a4b3e8ec31b4653d89238b5759b7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30687053022.1_1785564423280_0.11722837204077874","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30687907648.1":{"name":"happy2","version":"0.0.27-canary.30687907648.1","license":"MIT","_id":"happy2@0.0.27-canary.30687907648.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ff021181791c5a4e4e205e3efbdc546520bbd819","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30687907648.1.tgz","fileCount":3930,"integrity":"sha512-v/M8b+ZPTDvgmw7cOYGyZo0Mdji2QgX1wg+i4b9owSYV6kmoGsk+Y62v02U9zgC9pm+zp5Ri1uFwKn2+VY/IZw==","signatures":[{"sig":"MEUCIH04LqLNFkze/TCM90mC9ZdJES42K3lmSeqnKotpb46fAiEAiARFD5ucM92m1G9JkDK9/fEincEIVxWR5YifyCYbvuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30687907648.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51828028},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ee763cd0f87a186e43830a1d9d99513ef18c4614","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.98","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30687907648.1_1785566010373_0.46159986321384827","host":"s3://npm-registry-packages-npm-production"}},"0.0.27-canary.30688010378.1":{"name":"happy2","version":"0.0.27-canary.30688010378.1","license":"MIT","_id":"happy2@0.0.27-canary.30688010378.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"938bfdc4eb7c4e3589dcfb3f8ef265291fee42dc","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.27-canary.30688010378.1.tgz","fileCount":3930,"integrity":"sha512-Onn54l07p/sETIB7rdjqL3YNsUcceHBOt2X167zWOyZL/wqRayb3Y8MNfDctbrNfvQ+bmrF5rSVxoFPrxIgjYw==","signatures":[{"sig":"MEQCIDHUARNfqp8ocZ32bynuFuJv7792fV2BW94wMcgLb29KAiAl9baLHzYyKwn5uIwLTSCl8sYTdekRBAmULt+UJ+Q+9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.27-canary.30688010378.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51828046},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2954bf835c73dca0f25c4a98275f0b479df1114d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.27-canary.30688010378.1_1785566237971_0.2897620662392615","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"happy2","version":"0.0.28","license":"MIT","_id":"happy2@0.0.28","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f285c9b1edf2ff97626d9bca79a91fe376bb1518","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28.tgz","fileCount":3930,"integrity":"sha512-hX6xa9rjLqLRrSFQe1g/qbMZVYDTEnyvxW4Kh4mSFYxvJ+XpAaJvE5RVuvx7DclCd9gSO+Q2KvOQX9hCEA9kow==","signatures":[{"sig":"MEUCIAlDNfRo6P2w93ok6931hUfIVTtAabWSCihLBOtMG3R3AiEAgJEjWmlb51ZDCYdGfNQthasvu4QN7ZDwqFGet70jduc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51828025},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4bc2c5a041947057282c7a18a4e0a98eeb5bfdf6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28_1785566962510_0.06847367197431864","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30689364843.1":{"name":"happy2","version":"0.0.28-canary.30689364843.1","license":"MIT","_id":"happy2@0.0.28-canary.30689364843.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"97e7aefade4a7270855de87fccef5e420e436c79","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30689364843.1.tgz","fileCount":3930,"integrity":"sha512-QRo5CqhRLoSOh2EKguO4jtDxseMki78Z7V/k2lJ75A22IyjZjyzu7k5fXMBoJZ8wNMwRXmwFXh/jHMxHTtyDuw==","signatures":[{"sig":"MEUCIBHwx9yNMb3fpIo183K70xNfvk7nC1OKWFyxTiAcsc7VAiEA2lQSMV2pG6cOVKYePtRXI3PLeYXeTafDFndbkgH0LE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30689364843.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51828046},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"87ec1fb658a5e05eb79417bca7a26cf9f64c6151","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30689364843.1_1785568627351_0.9156496647070889","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30691365147.1":{"name":"happy2","version":"0.0.28-canary.30691365147.1","license":"MIT","_id":"happy2@0.0.28-canary.30691365147.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9d98e53948dc130643dacb99567cbbf0c0d111ee","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30691365147.1.tgz","fileCount":3930,"integrity":"sha512-uieyrHZAsOizySG35OIAUuYBeTIaexGnQ6uxBZOBwg7begVOKwecp3fWN8YzNZahqevKltL4kwuU6RHzYj5sJA==","signatures":[{"sig":"MEYCIQDp3OwwWhbshhwzPNmGjFOHmMLN6Fe95aP4qJBYnr2ItAIhAJeLMXvgzuytsqDewHx+amS9zG0F0UeWCfK81iCV17Z6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30691365147.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51831782},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"41bc1bee15bfe1880a91238738b300857bbacfac","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30691365147.1_1785572191417_0.545932335131396","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30709385660.1":{"name":"happy2","version":"0.0.28-canary.30709385660.1","license":"MIT","_id":"happy2@0.0.28-canary.30709385660.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8da85d0ebb1c79aa3ac9ed9d011f2b7208714c8f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30709385660.1.tgz","fileCount":3930,"integrity":"sha512-icbI75Mlv4W0AJeDIpxx7xYE88aOxDMtpOpeiLvfwWvptdpvyaJRBEr+yjHr2OHX5VT4K2IQCSC/MgU1Iio3Gg==","signatures":[{"sig":"MEQCIHCLk0E2e+5jqCpMXjHUAfjfTdahis189nef9PrtOUsSAiBnMZX5qE82IInPqRLYiLlK9nM+9U5MEYIMtBJOtB4F6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30709385660.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51831786},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"15259190ea56add054141f623a877001637bf867","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30709385660.1_1785603759686_0.037484213766480146","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30711122724.1":{"name":"happy2","version":"0.0.28-canary.30711122724.1","license":"MIT","_id":"happy2@0.0.28-canary.30711122724.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"e0f6b9d89e110918bbb1d87926de73dfe9746d57","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30711122724.1.tgz","fileCount":3930,"integrity":"sha512-fH8gJHbHLFUB4df1WEkxjPAHHaehMLwotAhw6MwSP6GrxNSgVPp19V3oTkCfRStrlxjpYInwMDvLq+XtoDbPtg==","signatures":[{"sig":"MEQCIGTsOcgYd1irC7YfSNqLZhM98GmU2/rY1AQiher6ERWBAiA54/b1xksyHT1oWw3ZQ6IViM30b1aVJfYsA0gowVU1cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30711122724.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51831848},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3e28a9e16ee5491ca139a9a5273f36a054697722","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30711122724.1_1785606623904_0.4378857628371735","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30711325302.1":{"name":"happy2","version":"0.0.28-canary.30711325302.1","license":"MIT","_id":"happy2@0.0.28-canary.30711325302.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"79a646960ab46f3c4df2c37084a2a4bc31f479dc","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30711325302.1.tgz","fileCount":3930,"integrity":"sha512-ArQs/xvjik5LcvAs4E8M4MQc/YflJ1EzrTQr/Neq/JuZmm+fLvPtROxeh7vnfkJEr5xY4JBPua7wOYR5/JbgRQ==","signatures":[{"sig":"MEUCICGu9zKJwr0SEB6w5PKRTL3Q+Q5MGwPxseenePeGdH7VAiEAj7yB6VqPmNyE7Q0Nhr4vHc3INbWAR13AO71Gd2IqeJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30711325302.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51832610},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"602227fd4b2b2888103364f93f97f6aca78417eb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30711325302.1_1785606972491_0.05605291033184101","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30711902848.1":{"name":"happy2","version":"0.0.28-canary.30711902848.1","license":"MIT","_id":"happy2@0.0.28-canary.30711902848.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d266a0c12a5ea5798c80b98920dfb79f734dbf0f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30711902848.1.tgz","fileCount":3930,"integrity":"sha512-8CfWTAlpmYVuIr58RI9zKy15YYF4oaMOQcrAC2jSvCfXqUtU+g7aWgtqxq8wJTiVfsDbd8Obbo8hicX5Wj3QdQ==","signatures":[{"sig":"MEUCIQCZNUIAIOua/P9sNzjfrulou54Y/uY9azgiJjIS3lmU9QIgSa4H1ihkHBDzZYjhz6o7XcIhzNwmQkY6bItufzWEI6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30711902848.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51832984},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"62c96d74a8fc2b7ed58b5cb11988d962cd191025","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30711902848.1_1785607914885_0.8362382505093517","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30712661579.1":{"name":"happy2","version":"0.0.28-canary.30712661579.1","license":"MIT","_id":"happy2@0.0.28-canary.30712661579.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"16187d33a65f97d5fb858b035470f1a5e3fe0d6a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30712661579.1.tgz","fileCount":3930,"integrity":"sha512-AO9YNvMSaFJOb3xvUxcZ2shPION9exnZhSp7qbqZqNokqgmviAEdfCxfSFt8cTrPxVAD9+dekzzeRL2fOzBopQ==","signatures":[{"sig":"MEQCIG6X344v8kf/+61FdkVtDjS9UNPSDWb9orHhpKzRYbLLAiBysS0Xn+I9k0jauvkwqphuAR5ZLV5UCMmJ78/1TcEGLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30712661579.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51835235},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"48a6dff7c13698fde1c8c4781257505357c63078","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30712661579.1_1785609142988_0.6424885164551324","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30713297947.1":{"name":"happy2","version":"0.0.28-canary.30713297947.1","license":"MIT","_id":"happy2@0.0.28-canary.30713297947.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"44fba229200a87c25a8b59d54bbab1a0c8a6c4b0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30713297947.1.tgz","fileCount":3930,"integrity":"sha512-HFbaxrvEodHwkP5grMM1ZOCR+tEpp44h75allYPD90ZpAfsc171CSL476yCj2xW8+5r/kbVP7RW4l8wXyUCnSg==","signatures":[{"sig":"MEUCIQDP2j1+M6rsoBdLFQ8X9sEaiykhnS8IpD90vviFpWK7ywIgUFJW/3RTHSOYMq5zK0TVvnFeGUsuhDGiW1STltOzylU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30713297947.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51836940},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ddf225c6437c9940e94e4adda6347c75d53e9a90","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30713297947.1_1785610129487_0.9188970430322185","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30713695391.1":{"name":"happy2","version":"0.0.28-canary.30713695391.1","license":"MIT","_id":"happy2@0.0.28-canary.30713695391.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2be5b16daeccf995857412bcc08e6455975bf9a8","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30713695391.1.tgz","fileCount":3930,"integrity":"sha512-SiEPlp9/FHvYvQyla1dyZ5eDDGKrL69Ij5JR7XwCqsUrWBV8z7CMESHxlxBakQ1yhskiEXZ24GK7kqC0QFcOtw==","signatures":[{"sig":"MEQCIFpnuL30r83zffsh5lcLGwQ2VBsYBw84NvHjHkU0CwTXAiAXLMx7kIPOgZu6xQgTtHMDYf0YR7KHhVZhM0ABDBHvSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30713695391.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51836999},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1503fcee8fcdaad10bb0b18628878f8f72b373ed","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30713695391.1_1785610761932_0.4978496005064492","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-canary.30714680796.1":{"name":"happy2","version":"0.0.28-canary.30714680796.1","license":"MIT","_id":"happy2@0.0.28-canary.30714680796.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"48594d8b793e50dfcc933954eb388868beaa1e21","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.28-canary.30714680796.1.tgz","fileCount":3930,"integrity":"sha512-NlJY11fyLEqPQxjVd+uKsRkIMSXA9tVE92YyidNn39MzoOmOoh1/F+X/DefYKjqj6FC2zH9hQAJkKWNx2qd3kA==","signatures":[{"sig":"MEUCIQCBVbSZyepa1xp7t3GHJ7mbt6OAwCofpV1ADuT2n5//lgIgQxQqzmyLMbl7DjZJgZ084XnfNSYOtdqVapyIjnbaKyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.28-canary.30714680796.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51836999},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c4eaf5cc0d4268d5aa9adfbb05a87bcba4455d7d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.28-canary.30714680796.1_1785612384581_0.8982075303182047","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"happy2","version":"0.0.29","license":"MIT","_id":"happy2@0.0.29","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"09b5bbb71b6b5bf454b0e3ca0cf5431507f8f939","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.29.tgz","fileCount":3930,"integrity":"sha512-99eDf3RgTa5P0306P7ctx5qJA3aZIjIKnJXT20tNr0kjsS72MUpiOzTQy1010lO6YG95V3jyq/XWAm79aOBuzA==","signatures":[{"sig":"MEYCIQDKYr/i6s80PiSo32byx5xGRfQwg3P98d4tO2ePD7S6bAIhAOjIAUOU7PmykCfr5nqdgDiYfOjL2VpYyFuWooRmk7k4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51836978},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1a57ffec5cffb27f9767de3e154a58661ac35b9f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.111.5f174f0","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.29_1785613112555_0.4507828017662898","host":"s3://npm-registry-packages-npm-production"}},"0.0.29-canary.30717543791.1":{"name":"happy2","version":"0.0.29-canary.30717543791.1","license":"MIT","_id":"happy2@0.0.29-canary.30717543791.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"785286d1dcb519707df51b8b92e1b6171203b8f7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.29-canary.30717543791.1.tgz","fileCount":3930,"integrity":"sha512-9qb/1EVSKXPx/sX7HOwSKQrvHzsHGY5r4qSsbtlHkjt8Lfa8dVSi/xrKfjRKtg2o0xmFXOrCtgKhA7SkaFKItQ==","signatures":[{"sig":"MEQCICYwHoeSaAIutv2Kj8DZ4Ajrjh6JpnKmHYNc1rT/nmKXAiBitrCkaDwlxkXo5SOXWlopIyATAzZnllkYiSc8Yz28GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.29-canary.30717543791.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51838683},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c62eb53c985c2e322be272440c088d52b022cfae","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.29-canary.30717543791.1_1785617052723_0.3212201927126159","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"happy2","version":"0.0.30","license":"MIT","_id":"happy2@0.0.30","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5bccb2dd5205ad6738ea0205b63d23ac24344d08","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30.tgz","fileCount":3930,"integrity":"sha512-1HvhHxqF+AYdUQdRY7cgH/mXMd7HSjdSknQnEUWEI07IaWBR6gDwP1MbNHfTEpx0rqfqWW2rVp9oDFmtFxojDA==","signatures":[{"sig":"MEQCID7f1fmqdAEfRcSPHxfb++5WN7mWU02XI+h2MdSHFjgGAiAS27PeSnl0aYQU/PvWcRWMiHoWYtHlF6S+6UTQzKGiJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51838662},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"90819334003516ada3dcc68b9698c7c178c3285c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30_1785617785988_0.5070965140531851","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30719750145.1":{"name":"happy2","version":"0.0.30-canary.30719750145.1","license":"MIT","_id":"happy2@0.0.30-canary.30719750145.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2b3f3a20411817da2165900d782cfb90713ecc7c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30719750145.1.tgz","fileCount":3930,"integrity":"sha512-qX8WPJ5G4eypyJcbZuHVTObzHAP+t9S2+D4AR7C1o/aodnU5yUTb0xHFDX+dw7D4SkzjCMEERjp5jXDYDMsWag==","signatures":[{"sig":"MEUCIQD7WKeFSA+jdqzerNB2UHKQIYpLpFesQVLGnbCyymARYAIgX9IPVNFr/49gqn0Gmz/hL+giWNkiXYhb7IUu0Jr8Zac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30719750145.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51839489},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9654d93be3d20ebba201feef352e7a73b6342498","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30719750145.1_1785620761302_0.9634584984526167","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30722066354.1":{"name":"happy2","version":"0.0.30-canary.30722066354.1","license":"MIT","_id":"happy2@0.0.30-canary.30722066354.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0271dd8e4595b1f53689a4894e0c18abac9625b4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30722066354.1.tgz","fileCount":4054,"integrity":"sha512-36Q2bDmBYMV7bWQ8nucTCCBicNFoKoEFoo+B+aqJR642Q4tNVlJx4aRr0VQ0W3cRSd0b9rVUCfZadgW17RX06Q==","signatures":[{"sig":"MEUCIQDH+ysVpFhv/+PkISMvnU0H2bQB/4u8bPRKcbnG+wx/FQIgXTPcZg+YZMKyBORKiirTrsmZoVLmEFL5XU1nwAMfM2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30722066354.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54896583},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f80064de8e3aeec3b411a091654974799932bf33","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30722066354.1_1785624667804_0.8079113803345819","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30728635558.1":{"name":"happy2","version":"0.0.30-canary.30728635558.1","license":"MIT","_id":"happy2@0.0.30-canary.30728635558.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2c098c57f2e60a97ab4ba40d5c0411550e253d7a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30728635558.1.tgz","fileCount":4054,"integrity":"sha512-qA4v8NpqReELUrvcPsy1qyzpK8UFD+APis5NE2GC0L+SzUlD8ov/XDmXmBLyNtK7EOjrzUgKlfYNiykBafIsFQ==","signatures":[{"sig":"MEUCIDdDy4oCezz3D95N0gslXjcPQbqHsvasx/gNkR2Z2GsHAiEAigLCa1/BZ74b8k2dysGpx1+QBmNRWl+q8wDUYDykZQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30728635558.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54899914},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1de9f80d88aba67ad29c444ce089af3981b344bf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30728635558.1_1785637270439_0.5614330613283676","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30728758381.1":{"name":"happy2","version":"0.0.30-canary.30728758381.1","license":"MIT","_id":"happy2@0.0.30-canary.30728758381.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"18ca3cdd0a604178c6ba0923bd6254783ba11005","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30728758381.1.tgz","fileCount":4054,"integrity":"sha512-pDq2tZUuL6atn4HsyOCj7TF2vgacD3NP3R5WDFK0YWDrXBAT6fN5WpVrfwRPM3XOajxBUu0sNsZlxXZxMMvG/w==","signatures":[{"sig":"MEUCIFl2jdHQMwwf+4IkGU54Nv9K296k3fG8BGZDm6vZ2aR4AiEAqth3SIl5fw2uHHe7QUCZ83p4VNd418wFFfkvXzQBGCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30728758381.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54899914},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2b83be89fe1883cc127c4018101e53b75058986f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.114","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30728758381.1_1785637508933_0.1458451209365461","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730167680.1":{"name":"happy2","version":"0.0.30-canary.30730167680.1","license":"MIT","_id":"happy2@0.0.30-canary.30730167680.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2135c1e1be7414cc9f8b2aac95f43cb1dd4d8636","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730167680.1.tgz","fileCount":4054,"integrity":"sha512-UpecoT42313jiwKGt31fVXbbrAPZNlY5PqnNq5XCiRcvThZRzt8ro9nqk2f2m2I+hcKFNZ89pYX2QeRw3a6hLw==","signatures":[{"sig":"MEQCIEyibZmroX+G0rNcjFbl8Vjub1H3mTJ5I7d3KUvW3Pf+AiBOjC32bBx9QUVpdHdsWEyOy5Cw0Sd0vYjL7GLDzb5OKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730167680.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54901502},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f646c9e63a77f31b7e36beff563ffd684b9a5d8a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.116","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730167680.1_1785640378868_0.2281418230852974","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730309442.1":{"name":"happy2","version":"0.0.30-canary.30730309442.1","license":"MIT","_id":"happy2@0.0.30-canary.30730309442.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2e4f43b150b9e45474580de9fa2806ad13b2150a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730309442.1.tgz","fileCount":4061,"integrity":"sha512-XDwEQ3g+nYdbty0kwCDbuKN9XjegEwamHVEcZGpS84+YEwjq+dZkbhQzH6YqRIY9pAnHPcY+qbKFgzHs77yRpw==","signatures":[{"sig":"MEUCIQC50nW0JD9E0IYvCfe+rbrMvtG3ewv2fVl6rdOoiI9WXQIgDPzsew3B/Bk1Jb7ljdOtiwV5nNUXCsLL5DXOE2FsbuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730309442.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55384565},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e4516d3c24564a0c5cd22ba6dedda6903115d21f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.0-canary.191.a02e00d","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730309442.1_1785640671477_0.8337831943490059","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730428589.1":{"name":"happy2","version":"0.0.30-canary.30730428589.1","license":"MIT","_id":"happy2@0.0.30-canary.30730428589.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"fd26f3474d31d5dcf39d4a386b557206f849b29c","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730428589.1.tgz","fileCount":4061,"integrity":"sha512-2KVN44o46C4hjEzulN/Paa7EztshPYEIA/4rGXJp8NE3oh+bpEwnRnM19SV2LSW98E8IJBjH+ZdIuVfGj4+KcQ==","signatures":[{"sig":"MEYCIQCFM/npg7zkhDh9rtWbNKIeU6AOQeEWTUOEZXmNTdwWJAIhAK3RJb9mmeEBaYZrtSM08iT3dByKHja7goxNhChLNH9K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730428589.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55384548},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5effd5ba8ad38843b23bbd93de803e26ea6b28f6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730428589.1_1785640927538_0.1001409983731325","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730506736.1":{"name":"happy2","version":"0.0.30-canary.30730506736.1","license":"MIT","_id":"happy2@0.0.30-canary.30730506736.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0b071df23d2817aab48d88b7508a8f0dcc768bfe","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730506736.1.tgz","fileCount":4061,"integrity":"sha512-NdbHhqU8e7IETNgnopdMdkOjWDbVEr8mxjPumVSKBWPg/+A5LSYXPdlPmq8BN4ELZYc4+t8e0KAt1B+KA1kF1A==","signatures":[{"sig":"MEQCIE2fzT2y5cpnBr66T6nRzheHqDwUXWrgZU+NRWooq3VEAiBl5Xl3ZNknJiOMEbrN+HuD1smcOF5Gj+J6NI3sAznzEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730506736.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55384548},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"390d85fe4a634228805ec5424b64ca9658ecea02","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730506736.1_1785641077392_0.37188600447573106","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730532235.1":{"name":"happy2","version":"0.0.30-canary.30730532235.1","license":"MIT","_id":"happy2@0.0.30-canary.30730532235.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"72ab833a21cb6f0676ee461bb2d6ae4bed96e62e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730532235.1.tgz","fileCount":4061,"integrity":"sha512-det+1WMqUwvO+c/ljyUobz+LyQW56bCaHSK0AfrZ5j8caJFWIWhvS+pYYmqAI18SUiAwmCj8xwaEAB0pbdvpzg==","signatures":[{"sig":"MEQCIEVVT+XSnx8rcrMqLZomcvz/SuUAYvdt2cnRk4Xxan32AiAz5xGXE2Sm1uF9003ColLaRxU7hRiwIvVwXAePCIL1cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730532235.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55384548},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"bd0f6cea74b6e64b56760ff6d7fac6ff7c6311ea","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730532235.1_1785641226200_0.5846935606825616","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730660115.1":{"name":"happy2","version":"0.0.30-canary.30730660115.1","license":"MIT","_id":"happy2@0.0.30-canary.30730660115.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"42798bb71896da91cdabcd7c53365c0235ff37f7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730660115.1.tgz","fileCount":4054,"integrity":"sha512-K7bfoCQzy+ft5YXIiwFwGdy3Il6SlvM5mSS1hENi1QHLo/r4JoTZ57Iwxmpc6y4csVgsQniqf4IUdzzI/jaRxw==","signatures":[{"sig":"MEUCIBdcKEEe8JDMvc0dNO1RDF2/7kdJufyCQC0EHq5Z0S5+AiEAitrbiEeliq4aPYuC8Y0zkYDRH3pPiO34CoxP/7vGRn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730660115.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54915215},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b14737e78a01c6edfb0db89a6ea4d60ca7562519","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730660115.1_1785641419465_0.8318308188337664","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-canary.30730735864.1":{"name":"happy2","version":"0.0.30-canary.30730735864.1","license":"MIT","_id":"happy2@0.0.30-canary.30730735864.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"95bce231001e8efbfff152d909a9272b1f90d3cd","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.30-canary.30730735864.1.tgz","fileCount":4054,"integrity":"sha512-46a8wMA7GQ8VOXgdtS/fWjtxZT2K64MQemQuxHjYogJl9QMrc+z2oDGFdNk7AAgcXOvoN563+dbuEKbMarpuHg==","signatures":[{"sig":"MEUCIGdcF2tJ+QqnKFHoQDcXdnEOpstRCjtFC9aWMRmv18FNAiEAlGKKK1sNpiiJy/0ktZp1WK09PD8/fHroudpaBxcweVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.30-canary.30730735864.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54915258},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1e6e194d4d645731fd6530578977172325b87cd0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.30-canary.30730735864.1_1785641575461_0.49249151785861467","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"happy2","version":"0.0.31","license":"MIT","_id":"happy2@0.0.31","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"67dacd5b313da494a44b60d8821354cf94b465f8","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.31.tgz","fileCount":4054,"integrity":"sha512-Aa08UYGyqIQT2rUHUonaIcKw6HlwWlstPigekYiQf/JWPKiMPfmk9Ngdse+jwu9uigysmGWacs1JCCC5ChjxCA==","signatures":[{"sig":"MEQCIEG5rdUJ/OIkBGkzGVjotXpomAH4c6O85leZJfFCKSbzAiB3sMtoxF7KOPWgpFUt7+MfD5bQQ/bsKaRXjltI2L4neg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54915237},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f9af587aa4600a100e8cc443238f6f6a436716df","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.31_1785642361749_0.8440410597418306","host":"s3://npm-registry-packages-npm-production"}},"0.0.31-canary.30732524836.1":{"name":"happy2","version":"0.0.31-canary.30732524836.1","license":"MIT","_id":"happy2@0.0.31-canary.30732524836.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"60173f56b54114a246c5af3f14e2f2af3acf1cfe","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.31-canary.30732524836.1.tgz","fileCount":4054,"integrity":"sha512-8zyzTKUK/HsLNYBVVyoaANK9ckLUREzhPAuxAp6GtdCS3Q2P8PUZml0D7+5vCmxUk2JCnhJ55E+6qBzeUrXIaw==","signatures":[{"sig":"MEUCIE5q7zyQAwz/WxAz90WtToop+jN8+BzXsKtOapvcTa1/AiEAm9ZVHn8eBljtmQceRvWi0mVPVKEZY4U6N6tGMN1JoUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.31-canary.30732524836.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54922289},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d80023193845c7244a85d8a709a47adc69f9a46a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.31-canary.30732524836.1_1785645236540_0.03480666344499239","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"happy2","version":"0.0.32","license":"MIT","_id":"happy2@0.0.32","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"21fc133fbca43cf5c7d4dff0f31f9e4b5b18f8ad","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.32.tgz","fileCount":4054,"integrity":"sha512-dddKZeHjWPdNy3EqpNLUktyHuzfkVI3+7ZLeotqtVYzx32sVKRyMU2eCX5tbAATdRT3m5eAqvaAldt4cSVxPIQ==","signatures":[{"sig":"MEUCIQCvVHGx5Iv1CwylWhxXDvKEGa54ZK0SfQ5fVYiiLvLaPgIgBDBs9uo0+ijMYsLWZ8VHHjVCbg/0ifrV7e2/PVb15mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54922268},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"db63d040ee351ab3bbf6b15b567eb15d62309caa","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.117","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.32_1785647890967_0.00983854416722263","host":"s3://npm-registry-packages-npm-production"}},"0.0.32-canary.30734198326.1":{"name":"happy2","version":"0.0.32-canary.30734198326.1","license":"MIT","_id":"happy2@0.0.32-canary.30734198326.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"61fd7e9cbb43f29628a00e7790d2602d33390ba4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.32-canary.30734198326.1.tgz","fileCount":4054,"integrity":"sha512-zQjyPbS9dIeOC4k3kNLRUzh6bBK3s3R+bXFuD+7BGVbDPbHp67PNnbih+tl7+uaIh3vLSoU14X6Je7544UOzvQ==","signatures":[{"sig":"MEYCIQCo7WLeD6TXvq6YhfJWIIN+7Zx6JhSQNip7rS224JFiCAIhAIFX30b/LdNOJj85DKjUW73gZX+hBuIW2oHdEhtwV7NB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.32-canary.30734198326.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54922289},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"ce0c963971085f212d0d81413ff01d425a0ef92d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.118","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.32-canary.30734198326.1_1785648682509_0.9047614807382574","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30736782248.1":{"name":"happy2","version":"0.0.33-canary.30736782248.1","license":"MIT","_id":"happy2@0.0.33-canary.30736782248.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3c00f380b3f61bee42b9aabb4268cd5c2d1dab2d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30736782248.1.tgz","fileCount":4054,"integrity":"sha512-ekkIIVdlNgbv55IRIgCxmTvVX6Ot+lSKXdQZOQCW550kSQZWqZUPJt/2TRMEkHtQHEhDlLjEfYiFXdGSSdfDXQ==","signatures":[{"sig":"MEUCIQCOvPt+/TSMORPAiDV2skN+nKbupBbH8+poIGinVAt/cwIgWgqNIEGStJ+QScyc3TRoTeebS525FszjEUZ+/9O33KU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30736782248.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54933490},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"dcb52c4d007ebd746b8739f8978d31e9ef334605","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.118","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30736782248.1_1785653808192_0.6523618805599516","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30737141132.1":{"name":"happy2","version":"0.0.33-canary.30737141132.1","license":"MIT","_id":"happy2@0.0.33-canary.30737141132.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a9c3a3ab141f4d854b89abb527b64f0e6a935a34","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30737141132.1.tgz","fileCount":4054,"integrity":"sha512-7YgAC6bckMYZrVNZrIa3RUmQPeZweRCtivygVmhVjoM946BIH31sE3HHBMloM2Ks6rNi9P5IGndtbPpGZ7AMjg==","signatures":[{"sig":"MEUCIQDatqlSdVRzcbPS2OWflQtNp6nbPLHH/KcnwHBDSBU5nwIgFKJ4/GgWtTT72eyMfc9142slGhPB/dL/bTz0+l1K1qU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30737141132.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54935360},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7119dcc804c6510d90cd7f6aac88fc35a15ecd38","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.118","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30737141132.1_1785654487327_0.19183545445631078","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30737228418.1":{"name":"happy2","version":"0.0.33-canary.30737228418.1","license":"MIT","_id":"happy2@0.0.33-canary.30737228418.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ea543248aa8a3602b7adade530146dbf2535a1f1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30737228418.1.tgz","fileCount":4054,"integrity":"sha512-X1Ky/cfMs5XSLpAALJVhcipZPfZLzgpvN2AHk1K8ciznpd3NAfQxN3L7YN1eFoMy9sTewh7osdIOmWouE7xFVQ==","signatures":[{"sig":"MEQCIHooN4wB8s2Ycseq7kExyyj/KbTxr/YB50a5txxfVa/aAiB96Iu3XpQEDeA0HeFW5pi8rFNLweE7K4aFo71PNRsgCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30737228418.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54935360},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b5dc7ec9149f5106fe86372c48ba5408d4d20b2e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.119","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30737228418.1_1785654660958_0.5188006019463343","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30740201167.1":{"name":"happy2","version":"0.0.33-canary.30740201167.1","license":"MIT","_id":"happy2@0.0.33-canary.30740201167.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9e79b5e5f7e4eecb66273284507db493d60507a8","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30740201167.1.tgz","fileCount":4054,"integrity":"sha512-WLDtylNgcaGt3IILto119g1/4/vXCGZU12MJqwntHKG/A416HTtDp+tN8pxQRnxUceEg2TVevYumOyZQY9t+kA==","signatures":[{"sig":"MEYCIQDETw8AigmjUC3b7ZCJO+JxcYRfH/lrsPrdPka5+YNIKAIhAMUkaUR2ldhSbM5ofochD19otKgF1Szo5Qv1N7fYfDdY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30740201167.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54935360},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"adee0a52bd4d404b17b5fa33b066d9343f56b3bf","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30740201167.1_1785660109616_0.9877668447598829","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30741069625.1":{"name":"happy2","version":"0.0.33-canary.30741069625.1","license":"MIT","_id":"happy2@0.0.33-canary.30741069625.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"760199c8c3a33e48529d558f4b88118adf7140ef","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30741069625.1.tgz","fileCount":4054,"integrity":"sha512-FXsDJQFB0GdJT4PXMpAlfxQ4tOh6GYGrY23yRljcQ7F6RWOpLg/ZS4SONrWs2z+rfq2fKd9Gd9Yg4ocJtvEPrw==","signatures":[{"sig":"MEYCIQCxk3iwjLOmkMTsZVGZCvFsajFQNHsQ3A3ZI706OKluVgIhAPpptT3PsGfCWtNxIo6eLmQAxmcAtscLjb40czg8XY4u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30741069625.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54935369},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c53c1d13e87bdc5b7f8202d664d079a6ba2eb6c3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30741069625.1_1785661672333_0.026955964466996107","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30741143875.1":{"name":"happy2","version":"0.0.33-canary.30741143875.1","license":"MIT","_id":"happy2@0.0.33-canary.30741143875.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b9df351b7d629599b54796ffc6fc5f5cb7e1f43f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30741143875.1.tgz","fileCount":4054,"integrity":"sha512-LPHlWuK6S1w+EPcdATVw468x7kLy8m+GWmiKwkIzKFTnuetE9In+D+N4XaRvD5Z59XmWY/1vrPA84VzzR2Hzfw==","signatures":[{"sig":"MEUCIFPmDG7LBtGgHqX/tw2PLSvauakBkm/0E2I5gODmmF/HAiEAjGAOFkACJwJr5Ak9w0iuQFeviXmJPmnLBm8ts0BNrXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30741143875.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54939367},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a423d150d1783d21b4ee6d3b75a100cfdc94ca2b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30741143875.1_1785661812305_0.513671065188315","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30741484967.1":{"name":"happy2","version":"0.0.33-canary.30741484967.1","license":"MIT","_id":"happy2@0.0.33-canary.30741484967.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"40b75014bb19fbaceb17e754a4783257728a12fb","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30741484967.1.tgz","fileCount":4054,"integrity":"sha512-BX11zSZlHoB5rHXuZo6IBKAuV5UrnT+kU8RaTLnYBPJWGEfXr/v9FU/Ccm1pQySdj16MvKl1rvWR8TVPOqN7+A==","signatures":[{"sig":"MEQCIDde+ReZ1x50Jr565qaiq3Kv9NprOtjXCaK8fyjo6T9kAiB1Qun3Ctn/TFnTzjX4hn0LUpPAHzzKPyo1L1XVEPaflw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30741484967.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54948337},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"898dcfe6e03afaaa13904a75cf3ee39817e768eb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30741484967.1_1785662414359_0.955877431150127","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30742175113.1":{"name":"happy2","version":"0.0.33-canary.30742175113.1","license":"MIT","_id":"happy2@0.0.33-canary.30742175113.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"4df4f8927901617d6ae36ea442077a15ec3ca528","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30742175113.1.tgz","fileCount":4054,"integrity":"sha512-QFFV8TkgxknjJRDpCTuGDKsT4ZkHVQs9b4q1iddVa2ppG6TI7S8xz3AkHmnr4lPG44piW+I/lFsAB0uFdJuLaQ==","signatures":[{"sig":"MEYCIQC6MIswjvxt4Foz688YHbIbuWf54hRCpghvtr7K/haXiQIhAOxi15nhl3B3J4DegmVuQtl1xNWTA9LfDmlKoWEsPIdv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30742175113.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54948337},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"6b031f997b21a549e2250cc7490d15fc1149a4ef","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30742175113.1_1785663641085_0.33014258639546523","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30743370601.1":{"name":"happy2","version":"0.0.33-canary.30743370601.1","license":"MIT","_id":"happy2@0.0.33-canary.30743370601.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2cf077f12d0a4ae82e029502911999b781566f37","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30743370601.1.tgz","fileCount":4054,"integrity":"sha512-dyOR2IZn5qMth8SPxV7WVgEiZeZGTB4SArPKfaMqLWkkQc01hrTMelnktu8oKO0DbYI+UIvSt+YKz+UbZZjGFA==","signatures":[{"sig":"MEQCIEwY/k6nnSUD3nHbzOcjrpaAc7Esc9tazBm2W6gRFcTnAiBhkSbV7PRAkV6TFR90+JTCg96gNB2Hnn8tWhE+FTTgKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30743370601.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54954186},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"482cdc549d7f30bd7f537cc631be6678ed0588c0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30743370601.1_1785665850885_0.6605436953022976","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30744157251.1":{"name":"happy2","version":"0.0.33-canary.30744157251.1","license":"MIT","_id":"happy2@0.0.33-canary.30744157251.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2ff4757a30e1b0b2e7c31b3d47137bf9db07ae57","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30744157251.1.tgz","fileCount":4054,"integrity":"sha512-RkZIzoLxiuYyCIul/Pxd20H5R7VmhYC0MXYAWQVYAwBd97YiFjmv8tyd4XaImAuEAyjddLdRiWfzzEQ3owtooQ==","signatures":[{"sig":"MEUCIHEK/xxtKspkuhoHSfN9ZP4LYgIh9DvV77k4oY8kCKfSAiEAv03h6vhWqZVUtALadoUABsvr0RILv7zj1k+4L/6j58g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30744157251.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54960030},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"425828ae8a73906e365a8db6437cf57561f65bc7","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30744157251.1_1785667290728_0.7932989666599302","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30744779669.1":{"name":"happy2","version":"0.0.33-canary.30744779669.1","license":"MIT","_id":"happy2@0.0.33-canary.30744779669.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d12649f08efc1fab289bba2a560f1804fa229055","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30744779669.1.tgz","fileCount":4054,"integrity":"sha512-iTsuRZ4UVd2shdvJCuFUENEjy+qTX/LGWp8lCCtyDTVffGvbpgkDTy+7EXA/FVeavsFfiPh8ATt2hJYN8K0OBg==","signatures":[{"sig":"MEUCIQDklZsDUMvBAIBt2bkFLlBtyGwYMb0OI3OEBIZdW/NKLwIgEZzTIPg0kIR2z1IdDwLe9duEyBkzeQwNQvw5zUNCbNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30744779669.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54972286},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"397847ec1c1d6878ca51544149fe918cabd5dc5c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30744779669.1_1785668420393_0.9936418587706692","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30746273382.1":{"name":"happy2","version":"0.0.33-canary.30746273382.1","license":"MIT","_id":"happy2@0.0.33-canary.30746273382.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"992ace4e7438b4e0c0968cbe6332d98d9cf03369","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30746273382.1.tgz","fileCount":4054,"integrity":"sha512-bMHlAW+NTl13LpI/vRgaGqTJgCWdfbFc58YApXwn1jFziSBcCfRn5wlwC/VmFu73L/ZgPhuWSytr4hcbBbr0mg==","signatures":[{"sig":"MEYCIQCLRC5bSn9B03bnX+KPlQ5QWGQ/tQE+qVSybOct7419FwIhAPDJ1LRHBztlQZjaKnDeEBv6fLeMe8LocDpT5x2Sejm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30746273382.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54993586},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d3bd4825f4a87a41a76e3af56d816f6adabadd0f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30746273382.1_1785671058208_0.15021312470896753","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30748430445.1":{"name":"happy2","version":"0.0.33-canary.30748430445.1","license":"MIT","_id":"happy2@0.0.33-canary.30748430445.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"2649db6e96c4f6ed040b20b9fb1efb6cb8066951","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30748430445.1.tgz","fileCount":4054,"integrity":"sha512-O9NdsDFT9OCNqIHaWwVEGcrrf38GUjyntUDj6Q5pZM3CsF67kvmtWkiQ4GWFe6+EgpZIZ+VLBzJgarzuthQh9g==","signatures":[{"sig":"MEUCIAVtrvjw0GvX1KRGYtwOKPHCHcsKvfdkjJ0p3EsMOqMPAiEA8tvBtL5Uey8i5K+J3HW8hVbpInEWatu6Wkh+KBBO8vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30748430445.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55002971},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3166aff5affb92037b4258ac43d7f7596de3cf11","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30748430445.1_1785674769282_0.010811215389610496","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30749268249.1":{"name":"happy2","version":"0.0.33-canary.30749268249.1","license":"MIT","_id":"happy2@0.0.33-canary.30749268249.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b0d2c3a1c23eeca0e72060a1eb666cffd1c4a9a2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30749268249.1.tgz","fileCount":4054,"integrity":"sha512-cno44k3rfmJAeR6UYKxdxHqZvbWF9/80Gc90v17MyMTBjoOCF5ovew4Wjd9j4gOxy2P+yKtkJqi2ICnWwKFbNQ==","signatures":[{"sig":"MEQCICdeYO6T5E+3kkfkNkNzRh3BDVqrwfasvc2mxk4ddkQnAiBfsl06YgVfDx+8LafDhuZncJ8zp0sLzh3a4556ee2HGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30749268249.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55041247},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"56e31869c2278f8a6f0bbc090f945d67642b8093","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30749268249.1_1785676214791_0.03592970087125935","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30750804784.1":{"name":"happy2","version":"0.0.33-canary.30750804784.1","license":"MIT","_id":"happy2@0.0.33-canary.30750804784.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"25aa379b061b7edc33faf12d60817ff10abfaabd","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30750804784.1.tgz","fileCount":4054,"integrity":"sha512-3+fImQuFQQfOYWII7EuIhM+1Mk6Tuhs2XtSpw+oClE4YgyUgAVrccN4T5MAgDkkBt7XZOzBL3B3XjBqko+uNkg==","signatures":[{"sig":"MEYCIQDRZ5A0zOOZP6RUK490qaDoKWbOY2Li0NwbI0A1Tkc9cAIhAOUQQb7NsSDcXvWRwWmCaEztzZL5b40y4CRn/e4idlm0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30750804784.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55077359},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"401c739f2f5ba70be483775522a4d3cc1dc49ce5","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30750804784.1_1785678795575_0.9290043789014686","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30753884062.1":{"name":"happy2","version":"0.0.33-canary.30753884062.1","license":"MIT","_id":"happy2@0.0.33-canary.30753884062.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"bdab0b9476f3f23e83707ff701d9546041e380e7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30753884062.1.tgz","fileCount":4057,"integrity":"sha512-fXZ6WZNeMy6SrPfh2daT4kTJzzDPA+PRwu/mI0sD4ao2im7xphb+el6A65s6/Cgzhz++NXz2E8AhgIk4yg+kHg==","signatures":[{"sig":"MEQCIH7wSud3CXbG0IgRxjD/I2S/CmR2xhn38X+CHMhhPtuMAiB/0qvpXonRfgz87kM+UkXkolgbSEGl0FBKAxFBpwLlqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30753884062.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57104432},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"56f023008a3f9ba1b443aa1764f3f6cb3455ebd8","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30753884062.1_1785683793333_0.12229562059263155","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30754043670.1":{"name":"happy2","version":"0.0.33-canary.30754043670.1","license":"MIT","_id":"happy2@0.0.33-canary.30754043670.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a14f2c941e6aeb30e49655ebca4903268b0134bf","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30754043670.1.tgz","fileCount":4057,"integrity":"sha512-VIN+HQ1mgC6wtKkgWea7ofCfZ2HGcKcJ7Tw7H9LgHsycZYQCoVKzrzcekHFJkdAaIY25A5TByJO3Pzgth8omEQ==","signatures":[{"sig":"MEYCIQCx+ZnPf/GFyVCDRjmiwljGtI1I5S9NqZ3hdXmTDkaykAIhALwD0DkS6kNzOwE2jQWMMFMWwlbaNXol9k77krPQPWWd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30754043670.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57119914},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c5bab29627a7a8997bf2a6f64b2f7038f99d93eb","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30754043670.1_1785684046277_0.5713547814719453","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30756106754.1":{"name":"happy2","version":"0.0.33-canary.30756106754.1","license":"MIT","_id":"happy2@0.0.33-canary.30756106754.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9505bf2e99e01b3924623c638e6bc3617b201057","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30756106754.1.tgz","fileCount":4057,"integrity":"sha512-d2Rv8h8DsidLcnEZ+9OME1Tzll6LdBJ3d5Qt8ve1XtEjC0ib1SXynVuN88WB96+fxZpjyzOBaaGT5ERcYZX9Lw==","signatures":[{"sig":"MEUCIGYx0p3L6C8qNZEqUGfZRL4uB7WbratSpITMSoNW7L7ZAiEA6VGaRSq8m8svF5t8koSI1uPLJCCiYxcwG2o2tsJyWg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30756106754.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57119919},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"154f3ccc50a079465eb219902fe6eb2ef970e64d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30756106754.1_1785687295023_0.7589507505831283","host":"s3://npm-registry-packages-npm-production"}},"0.0.33-canary.30761406381.1":{"name":"happy2","version":"0.0.33-canary.30761406381.1","license":"MIT","_id":"happy2@0.0.33-canary.30761406381.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"cc791d5a1e6ca76e0a28b87009ec6973b426d6a1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.33-canary.30761406381.1.tgz","fileCount":4057,"integrity":"sha512-5bIfRbxyYxt21zC04LyyTzSpy7VYNSjiPAoEzrxswBz+MVvTxKN1UJGiNKVlLqTLkcL93MkrOz6Zj8yc8/yO5g==","signatures":[{"sig":"MEQCIFNhrjB8RlX7BuF9Ui1BX4FcoRMgb5RlWOuSaUFAOiV0AiBq5pagQIwfYJkSyIqSy22nqjvqd1VAu8iUraOLgRLCag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.33-canary.30761406381.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57119919},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f8d3b4a198356effaad33c2867c68cb6dac7a887","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.33-canary.30761406381.1_1785695788418_0.9428093988544","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"happy2","version":"0.0.34","license":"MIT","_id":"happy2@0.0.34","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"9baeeba8800ec82e4d88f5c309848e584b1120b0","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.34.tgz","fileCount":4057,"integrity":"sha512-tKBE00xIzBsX4FXGS+aMDMloDyA8CdI0zb/JmrV2xmxiSWK62YLG4/BPFtdpr/Cqqyj0NOD1gEB4+pfM+VdlIg==","signatures":[{"sig":"MEUCIQCWp2vhgmT4mOwE2o0fv2bSgm+Ym6iP9T2odIx5GCSJZwIgLqG0a8QVOlxh2032/az/Uy4vGfun8P7B37L3t7uYyB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57119898},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7f439ccd91c943ea2d1b58d48e3d3a43f985ce6d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.34_1785696869235_0.512184444810815","host":"s3://npm-registry-packages-npm-production"}},"0.0.34-canary.30764838223.1":{"name":"happy2","version":"0.0.34-canary.30764838223.1","license":"MIT","_id":"happy2@0.0.34-canary.30764838223.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"baf7a151aab0274013d754d5586a1d24a7bfde16","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.34-canary.30764838223.1.tgz","fileCount":4057,"integrity":"sha512-1mVk6amSpDMWjIE3b3o7OO1QQet7uxVxaW0eVQS4Cfbs23uUrWw9eireFu9+O6wXhss2IEUQB1MVqAG2YgZcgQ==","signatures":[{"sig":"MEQCIEIYZUAsfZpjbX1qEX9QZnfO2RI/583HfM1NMQ6q9zKTAiAFqqRGjYmX/oa8RE/O7HWJ+ePREOT1RhvZkWlu4/R1DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.34-canary.30764838223.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57129481},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"c1e86645e805b5875e44a31ee004f9bbaf4b1337","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.34-canary.30764838223.1_1785701287419_0.30210629813802403","host":"s3://npm-registry-packages-npm-production"}},"0.0.34-canary.30765047963.1":{"name":"happy2","version":"0.0.34-canary.30765047963.1","license":"MIT","_id":"happy2@0.0.34-canary.30765047963.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f6519c3938a62427493217b2941278beb843f55b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.34-canary.30765047963.1.tgz","fileCount":4057,"integrity":"sha512-UT6DTmOzkWAfeEf34Bl9AraRxW44QZI3SpzbPyGeAx89SmkvKRuCJIh8rWEVqUuBRKbByi2IV17fOE5rflKvvQ==","signatures":[{"sig":"MEQCIFzrV1s+76FIaC4MooC/ZToRDsoH2md3vDdcnDbgmT31AiBdWfeyHcjYwZzianXURXi/qT3UgicwznBN4b4Qto5oPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.34-canary.30765047963.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57151119},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2862b6b350a6ac3d799a4290557f87a7628dbdac","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.34-canary.30765047963.1_1785701618997_0.5297517136424226","host":"s3://npm-registry-packages-npm-production"}},"0.0.34-canary.30765367239.1":{"name":"happy2","version":"0.0.34-canary.30765367239.1","license":"MIT","_id":"happy2@0.0.34-canary.30765367239.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6425a674e0ccfb698faf282332f88ac2efe6798f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.34-canary.30765367239.1.tgz","fileCount":4057,"integrity":"sha512-n22o0Mx7z7QiNnIdM1At2tnNf9kZWg6CGA5BeiePhTJeB0wg3ykLUC2Hm9va1zljoXkvNDTl2QUslhSnz7gyxw==","signatures":[{"sig":"MEUCIQDDoOhBPYqS9sLKj51pTxGl3PGb3EI/i5ag2PyVm2fcQwIgREqezeTjxSZJSvtqI41Fsk0gQPTv/whWjVZfRuVIUzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.34-canary.30765367239.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57151119},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"01d45d4fdd9574f2c3e9e7c31e849a5941e0d6ac","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.34-canary.30765367239.1_1785702144182_0.6235837561826831","host":"s3://npm-registry-packages-npm-production"}},"0.0.34-canary.30765523995.1":{"name":"happy2","version":"0.0.34-canary.30765523995.1","license":"MIT","_id":"happy2@0.0.34-canary.30765523995.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"d4ccf1f2bfaf0031868aa99ee7ecebb6acfb19ef","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.34-canary.30765523995.1.tgz","fileCount":4061,"integrity":"sha512-hPPv6uEuZYJKt1ngd4NbJkwsn17bidjJCWtCuzO7s46talCjREHHxt+Ohq377qczDMKD+/ubRrhgWK5oN/K3eA==","signatures":[{"sig":"MEUCIB/Z7NJMHuggIPrQS7ZSTw7vGA98QxlGpU8ZHRwsI+/EAiEAnI3NbynXng9nxy0KHfnm+SHWF25ywHpimDH4foPUFRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.34-canary.30765523995.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58375662},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"d51fa05d8f2f323ebe82f78d8524527d0c922e7e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.34-canary.30765523995.1_1785702381196_0.9328080983291727","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"happy2","version":"0.0.35","license":"MIT","_id":"happy2@0.0.35","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"150bd6ece504e2fbe5305e45c7042ef8d5095677","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.35.tgz","fileCount":4061,"integrity":"sha512-Ki1nei7O7t6nhzTMUeIP8hDTDg0GJPdx1lucJSFlsQ+0Y/pIR1/phDKxGmw+UdBhP4oCIP/1pfNTZ6qKn2ASzg==","signatures":[{"sig":"MEUCIQDy1obBcMOCi9Rr5Voz2MYdZnhDppo8FZEpNts36fTalAIgUdCWZqH+ZeOhO4q3ERtb4daMEfh43YM/5RSJhVh5hXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58375641},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9eaf971cd792ec8ae95bda3e3276411d5d6b2905","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.35_1785710602035_0.5765409271211388","host":"s3://npm-registry-packages-npm-production"}},"0.0.35-canary.30782849938.1":{"name":"happy2","version":"0.0.35-canary.30782849938.1","license":"MIT","_id":"happy2@0.0.35-canary.30782849938.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"abd1e6cff2298a1fe139403c00605a4b7cdd1a0d","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.35-canary.30782849938.1.tgz","fileCount":4061,"integrity":"sha512-1IDdHAcUJ0WxnOmkfnjHtkFiRnzNn4YuxKWnWZK+HPJMhvggvL0ujEYTQ+6Ys98/vOOUq6INqYwntWE9sTnamg==","signatures":[{"sig":"MEUCID1Naog9fUmKHyQBVblVSszjnT98p6j2AsZKAE5t19bDAiEA6XDPukJjoUlvRBmH856SB8AZqqqgtN1tHmCVxbP2CCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.35-canary.30782849938.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58397425},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"a6fde7a7137752393b13713d55c301cbeea7014a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.35-canary.30782849938.1_1785729280939_0.14461464360991982","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"happy2","version":"0.0.36","license":"MIT","_id":"happy2@0.0.36","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"06771d628f4ad71d6061b42ba66bf86abc0a7a62","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.36.tgz","fileCount":4061,"integrity":"sha512-2bL24v91p8iChkRT4Dknn/KaTemJ681zTvasskdqIf0d18QXesLJaAGJJGpfBjtj0oa95hy/38BAfecD7pXPfQ==","signatures":[{"sig":"MEQCIG1Biqa0jMZNvIMqz/ml1Sz/NbBDbeqhiCiItgwl8UqXAiB0O82X8z2nrXMTMsea3YTKAwb1WXSCwYNT//o/8WOy3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58397404},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"393e17f4184f6d74e532a20fa376a342a75a7f34","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.36_1785730070464_0.7411183778628467","host":"s3://npm-registry-packages-npm-production"}},"0.0.36-canary.30784769070.1":{"name":"happy2","version":"0.0.36-canary.30784769070.1","license":"MIT","_id":"happy2@0.0.36-canary.30784769070.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0c0086d79ec1276c24b7687ce9dc77c4f0d1b984","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.36-canary.30784769070.1.tgz","fileCount":4061,"integrity":"sha512-Plmx42WTsk0ak28VW+M1Vl3LYsRWJTGhoiFq5eMAf2PqVR0b1TddFDQ3lSt89hhnqUqTCx5NVvBSEToIakNBbQ==","signatures":[{"sig":"MEQCIGwa1YrBofqruJijZhmdECT/iHpyv9ROIG1+FkWp6vrGAiAfWv1HlFWV2zbii3EMSGpua/cFd96hrjyy0/iCcA4W2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.36-canary.30784769070.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58397675},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"b95c4e3f76e492bf2d4ccc75d54da12df1116223","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.36-canary.30784769070.1_1785731758713_0.6983704289754273","host":"s3://npm-registry-packages-npm-production"}},"0.0.36-canary.30786581501.1":{"name":"happy2","version":"0.0.36-canary.30786581501.1","license":"MIT","_id":"happy2@0.0.36-canary.30786581501.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"efd490db23026587f8997d2a8fb64fede3b68867","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.36-canary.30786581501.1.tgz","fileCount":4061,"integrity":"sha512-fTjKBaLouM725Xr5HpCaHtMR8o/jemAEdlVJz2FdxUMuM5/IamGXQasP9LHWful0c8HtpyD0/3ETwn9m18prOA==","signatures":[{"sig":"MEUCIQCQrY30B0dIBG+On/xnoGo712mWc8kJb1Xk7YaP8U0xvwIgIbgHwI5I6D9XiQbPLTTiQ+zFp0wlSeqz+lpNYK7NeVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.36-canary.30786581501.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58397598},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"81d13e935369ae3d1d9286ead9eca326dadd819d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.121","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.36-canary.30786581501.1_1785734196421_0.8165048680465756","host":"s3://npm-registry-packages-npm-production"}},"0.0.36-canary.30787090520.1":{"name":"happy2","version":"0.0.36-canary.30787090520.1","license":"MIT","_id":"happy2@0.0.36-canary.30787090520.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ba2edd01bfffb8b0a148bb04012780c485840cec","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.36-canary.30787090520.1.tgz","fileCount":4061,"integrity":"sha512-hAlRtncuK8A8Dtyi0xN3nmnZpDE1Hp5P57JMo7i1wiIgHv5iaxL/lFwYw4aVxgdQzVtGVvGUA2m1e1wqoBJi1w==","signatures":[{"sig":"MEYCIQCucQy/e7RlSt2YL5spMuSLX2vpLsXfjaYZbOTC9SodtAIhAPO55gISG7lO4i2+T8tvIe3rmWPs5TSYVX6wekihHjIH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.36-canary.30787090520.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58404329},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"bcf70301c94301bcf04e122c5f45c34170ad8d55","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.36-canary.30787090520.1_1785734831023_0.3226665480791304","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"happy2","version":"0.0.37","license":"MIT","_id":"happy2@0.0.37","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5ebe38274ee5bef09cc2c5351a010151284387e4","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.37.tgz","fileCount":4061,"integrity":"sha512-H4h0Y3KH/4L2fuUGMdi6/nJtNmEl1O22XnT/EoGJAhFlHJlzUlCKh+5liGM1OpOREzDT6fWs+G8X+UYYarJGFA==","signatures":[{"sig":"MEUCIBSMRvBX16G/p2WgceRE0fGcNydbTCyb8fFbFxPGMS4iAiEAkNgYUo7wB14k5WB5UYXJJaL/mnVsWwKnL8pSGWwPRtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58404308},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fab8b0b21e529853e7bd170a945c95af0dfbc940","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.37_1785735710157_0.839569494944058","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"happy2","version":"0.0.38","license":"MIT","_id":"happy2@0.0.38","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b4b6b189e15cf1a642dbb7b4c0b1a70cd61538f2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.38.tgz","fileCount":4061,"integrity":"sha512-xwvXTmOu0rCspLfUW0u0rXM43hqsD38nlBMcxVmEXjyyb02Fskz4wdDZ73oOpaSZdlUZqjuEgSrYtdbQLZRRXA==","signatures":[{"sig":"MEQCIF5tQyoidK4xuGW9nPSG4slqLnSt12QE2qifRiWJ8RMaAiACxn663fegVsawIY9FiATLfgsmPw0ZU58hVsIGAaEHMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58414785},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"3e363c52fbd3ae4796d75c7dcaca040f93747e4d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.38_1785741434631_0.6463229398321344","host":"s3://npm-registry-packages-npm-production"}},"0.0.38-canary.30794287715.1":{"name":"happy2","version":"0.0.38-canary.30794287715.1","license":"MIT","_id":"happy2@0.0.38-canary.30794287715.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"f8c056786d6d2cfa799d95118b19a758a2124ba1","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.38-canary.30794287715.1.tgz","fileCount":4061,"integrity":"sha512-02I6bAOprDvPz4C1zK1pYsW3ZvytjyL6kQ3vp9dveWvkSRVwTDpc8NKST952mXU7W8/J2YlMD+DKXLDsW96M0A==","signatures":[{"sig":"MEYCIQDMmJyCgsfgqtHtOiM8Pv46ZDE6vZangzqaQBtyHqIjlQIhANSRV0TLsVfmD0XENzhLWKfpHcz+6qA1mKRf0Hp2iGL3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.38-canary.30794287715.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58428060},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"dfed1636b9755292621e3284ba0590ce0f3f91c3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.38-canary.30794287715.1_1785742804852_0.6185249353289781","host":"s3://npm-registry-packages-npm-production"}},"0.0.38-canary.30795295814.1":{"name":"happy2","version":"0.0.38-canary.30795295814.1","license":"MIT","_id":"happy2@0.0.38-canary.30795295814.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"02992957234df9a44dd076270015cb67be46e3b2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.38-canary.30795295814.1.tgz","fileCount":4061,"integrity":"sha512-JXXX+AbqfPKgCrUWSR+kwN45F8ts18IQ33s5Mjet75PW3gKHc5o92GEKOeyA2tJ7lEFhayPBg/Q5Zlu3MEJjRg==","signatures":[{"sig":"MEQCICPlsoCcfVD6VedH9uEcR+mbtdrniyahnu8+nvzFG0rOAiAvOPQEZPiJYTAWul8psL4txEWPLnCF8rsEwEDBw2wYMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.38-canary.30795295814.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58430180},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"2f20c2c36cc585b396707dadc260146d4d3ba9d3","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.38-canary.30795295814.1_1785743762697_0.3628794253585179","host":"s3://npm-registry-packages-npm-production"}},"0.0.39-canary.30796053609.1":{"name":"happy2","version":"0.0.39-canary.30796053609.1","license":"MIT","_id":"happy2@0.0.39-canary.30796053609.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ca02c59233b646b4713481cd032b82e644a11692","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.39-canary.30796053609.1.tgz","fileCount":4061,"integrity":"sha512-FULkDpUfVpgO9TIEAC/s4tdjRLdP/j1VQiDMybp84AaPqjW6Pq4aDGpS6JeLrVzGOoymVU/y68jBt1sCN1HhVg==","signatures":[{"sig":"MEYCIQD0avzOQYR+8riDTxAs+wyoM8DQJ0m9Jv5c697VtD3WcAIhAJYzjpDJegyJNi3Oc1+yRsmNP77exZiN2W0oJ6Irz5a6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.39-canary.30796053609.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58430561},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"5ccd6ef64ced5dee8b3410e92287b2a0e2c9e63d","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.39-canary.30796053609.1_1785744541098_0.6954266946113303","host":"s3://npm-registry-packages-npm-production"}},"0.0.39":{"name":"happy2","version":"0.0.39","license":"MIT","_id":"happy2@0.0.39","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8e1451a212bc5aa7391069f72af97b4c631e2696","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.39.tgz","fileCount":4061,"integrity":"sha512-9JDPN7b5VhQV6Op4BVLT7WFSTqVdamkcQ85uWfBydffq2vKr8+xu5Aq0xx0ChhvcMfjNcE9apX7oPSoafeqGTw==","signatures":[{"sig":"MEUCIFW3lmuCCGh0+fDGZtoKeTFOCvYlhoZsWBkgWF1sA+NdAiEAjt6rUxtXF1YB4KaCbxr/WWWJMKmJNvZl25aDY3bvuUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58430159},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"84b156f62f1f4de73614b60ca1e0bb57496234ad","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.39_1785744789724_0.19375778932389176","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"happy2","version":"0.0.40","license":"MIT","_id":"happy2@0.0.40","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ad131c8d0b8360fccd396f8b0d8d4d03076aa543","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.40.tgz","fileCount":4061,"integrity":"sha512-2HOpZCNcE+Hs63GRrp4aHEHCUW7gf9aUUSwI/nxbIYBCwqIgQQX+LkRIUPgACgI6Bqh9JHnS6ia713fANnNwiw==","signatures":[{"sig":"MEQCIBoBRzJyWlFie7bsOnSDOA+xw8YARN/K/Oxo32J1usZhAiALdJaEBMf11Nf/jCj+fF818TSmqhSd+lLuQY9H3WbhZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58430540},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"7ac4cb7d380576a554084af7226248fd362bddf6","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.40_1785745421378_0.7587688600404539","host":"s3://npm-registry-packages-npm-production"}},"0.0.40-canary.30797818327.1":{"name":"happy2","version":"0.0.40-canary.30797818327.1","license":"MIT","_id":"happy2@0.0.40-canary.30797818327.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"06892333d720ce5211b655e5e4c05560d195ca1f","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.40-canary.30797818327.1.tgz","fileCount":4061,"integrity":"sha512-ukiS1pCtauDehIfkx3xGImzKJflHzILdLLz3xuIrbkzbk2tAufhfdl6zahtU2Tjpmao5yc7wIuUYfrzvBNrK2A==","signatures":[{"sig":"MEUCIAIuJBaqL/R6W+2L/UjLu9UEeV8FXv0zToiulYck2zCxAiEAjxNhp3b18Q/ZLgqspdLGfMrwY5Fl9BSERyT5AiV1gOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.40-canary.30797818327.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58435146},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"28151bb869b97ae78d22f6499bbf7c5284703ff2","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.40-canary.30797818327.1_1785746331346_0.19397361976596583","host":"s3://npm-registry-packages-npm-production"}},"0.0.40-canary.30799403830.1":{"name":"happy2","version":"0.0.40-canary.30799403830.1","license":"MIT","_id":"happy2@0.0.40-canary.30799403830.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"99a8ede226f40965b3d788d3065e9d4a4f34b1e6","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.40-canary.30799403830.1.tgz","fileCount":4061,"integrity":"sha512-Fj7S0z+K2gWrcO9k6y/YwRVCbMcWyyhSAemfOYkJuATZJK8WlM43pIozF7q0p4RLmcs8LkocWWtB9btDR5ZWsA==","signatures":[{"sig":"MEUCIEyrwCAIOXurqnkuRmuJduveFqzYt3A8P4k3V/DY561oAiEAo77DvpQX7B3DDJHCXDdmlNeBoxia7lQkxRkyNEKHwrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.40-canary.30799403830.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58435146},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"dbc7c1eb1819ff9a1180980c588c73f7273ec7b2","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.40-canary.30799403830.1_1785747610664_0.5465825761891872","host":"s3://npm-registry-packages-npm-production"}},"0.0.40-canary.30800710852.1":{"name":"happy2","version":"0.0.40-canary.30800710852.1","license":"MIT","_id":"happy2@0.0.40-canary.30800710852.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"25907d9501fc5b8621ad55e355ef62a5949ae699","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.40-canary.30800710852.1.tgz","fileCount":4061,"integrity":"sha512-xlgKg2+Tp6tV440TU9VKVAsEoxeJU4LGZXwmByfDPN4uhCQIDP6260qeIMvvDcZLP6+/2NAr88Ky7ebFtP2o1w==","signatures":[{"sig":"MEUCIQD8GipHjrbhzDQLoeAq5sgOYGa9FscDh51eGioXV0MMbgIgd6vKys86aliEFZJt/y8qvLLSZQOwubHOm+z7g11Z2LQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.40-canary.30800710852.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58435146},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"06749e093f10a6e28b0842fa363e4b6fee689b70","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.40-canary.30800710852.1_1785748754629_0.6060288028080807","host":"s3://npm-registry-packages-npm-production"}},"0.0.41":{"name":"happy2","version":"0.0.41","license":"MIT","_id":"happy2@0.0.41","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"8be328d2a16224ee5706d9edebd5047bb9cdd1c7","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.41.tgz","fileCount":4061,"integrity":"sha512-RH+7Eq6AfjUr0ZNz8lGaHXLWgCFsVsexDFtzsNFFmDmdTduKviikPLnKs//FEww2ltUH8VQyq1wXdkYBKjaBcg==","signatures":[{"sig":"MEUCIQC1uLwJnz1LuTSSI0m1x1Cy+nl0sF24Rvl6QXH4smYD9wIgd164CcBSXPR+N5cLR2Pc29RitCQ0zhU6uBPmdHEYv4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58435125},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"961db2f496c67a17a04443de927a3b7e3dd7225e","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.125","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.41_1785749505638_0.010043251804969566","host":"s3://npm-registry-packages-npm-production"}},"0.0.41-canary.30805391679.1":{"name":"happy2","version":"0.0.41-canary.30805391679.1","license":"MIT","_id":"happy2@0.0.41-canary.30805391679.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"1a98c0021772f6076d252db1cd738a48864d507a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.41-canary.30805391679.1.tgz","fileCount":4061,"integrity":"sha512-ofNzLl4+mqyUbXvFvxIg0qidkrK83a6x308ZjC2H5/BMLZ2zfaqc2/BQMt+s5cxmS4fevNVt4oe/yAejG4huPg==","signatures":[{"sig":"MEUCIQCVXNugmXnUshVIFQvgEwiKHUPlVl3aAR3/RkP1FNsjDAIgP0yiImKqcMRA7FTlx8XcM529A/NFkFT1cCuSg1BetqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.41-canary.30805391679.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58460584},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"9e0702e7d1ef1bda70f400804c7d80ec29fec1d0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.41-canary.30805391679.1_1785752761971_0.22417146984659353","host":"s3://npm-registry-packages-npm-production"}},"0.0.41-canary.30807175042.1":{"name":"happy2","version":"0.0.41-canary.30807175042.1","license":"MIT","_id":"happy2@0.0.41-canary.30807175042.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"6eb985c5998934c2b6765d04be8466f738127bc2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.41-canary.30807175042.1.tgz","fileCount":4061,"integrity":"sha512-8VrxyrvhWh9tXayBnozSUFw0ZBkvxuWx6kvfVkgqHDeTCfdEQZ2UycWdEy7LSzot8GBzB/ejxqskhgzPSuUQzw==","signatures":[{"sig":"MEUCIQDgNqhsViRfWA7IZuKXWSM0twSo+xIyhU2ktJDWLzHTQgIgebj9B3V6O1KdJBHJmjr/VXRIQQrd+hXG5Cm+Jt34uy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.41-canary.30807175042.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58460533},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"002e3a85160b031dd303e567e07f01a3a3ffcef0","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.41-canary.30807175042.1_1785754413283_0.4146753291016718","host":"s3://npm-registry-packages-npm-production"}},"0.0.42-canary.30807665218.1":{"name":"happy2","version":"0.0.42-canary.30807665218.1","license":"MIT","_id":"happy2@0.0.42-canary.30807665218.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"51cca21e4a34a37506354bb16d845f84faff2c42","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.42-canary.30807665218.1.tgz","fileCount":4061,"integrity":"sha512-s8JZLQgGJuZ5QtKRmscNL7cgw+ARHzJTQjmZIC9uYrwnUU/BDufuTcTkFoXUhr1EnaNexRv47PsTeQb4WJYhCQ==","signatures":[{"sig":"MEQCIG0rEAWUVf86uhxOLdQ3pKnN8DWegJDq4Ll6+q1bV8ZvAiByap7q+J/KQkSGrRmtzfH4E2BsbEbBlZ7hYDrCZs0iRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.42-canary.30807665218.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58460969},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"fd1eaae14bda3e1d4099612976d579694f49534b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.42-canary.30807665218.1_1785754855180_0.08554438471373249","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"happy2","version":"0.0.42","license":"MIT","_id":"happy2@0.0.42","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"05c336bb9bf2802fe38f3e81119630d8ae86616a","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.42.tgz","fileCount":4061,"integrity":"sha512-9Xjf4thcfOCk17J1Fnvi4Rux6WEM6r67vupPhEQbt2eSvyXdkAnFDeR64yC+rR96QzsUrzy26sjFvngNhbivTg==","signatures":[{"sig":"MEYCIQD8Ut6VRGBGN+/aO4C0jUwnYWZ6S3/AbPy3C+ulQzwfuwIhAMqctS0R9yOV2GlLv33HEAfeLBQ4VXw683WY/19VC5oP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58460512},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"47d257b7407ed2f93d51a59bbff8729ad253894c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.42_1785755226682_0.798716730014877","host":"s3://npm-registry-packages-npm-production"}},"0.0.43":{"name":"happy2","version":"0.0.43","license":"MIT","_id":"happy2@0.0.43","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"b19aa756ce0b0ba7176bace4cceb1a834dd5a868","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.43.tgz","fileCount":4061,"integrity":"sha512-B5ainItK6NROmHMcheAVuCUriMZzuC0lYkuo09PdEE/R3Vxabyj8/loY0ohFEVPqW8M2ZaGOsfTeGewSo9yuUA==","signatures":[{"sig":"MEQCIAWx7R6DKvIs5g04JHP1szg9Ot3XcCGs4TnAwoVbir2bAiBF5B1Z9B62PqLiMyr05sdv7CUZos5f09L9TcHWJUCeRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58460948},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f07df5ed42d54f4097278a54a6778d5a73a39ab4","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.43_1785755644592_0.7584484441258699","host":"s3://npm-registry-packages-npm-production"}},"0.0.43-canary.30835115955.1":{"name":"happy2","version":"0.0.43-canary.30835115955.1","license":"MIT","_id":"happy2@0.0.43-canary.30835115955.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"720a6e80da50612af3e214c5f287d70d14f1f975","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.43-canary.30835115955.1.tgz","fileCount":4061,"integrity":"sha512-9+f3WcSyk6S4nRDyHuRDNPJkiwyA5hLx5m/CZogJpXi/9y0sE9ct8yHSxseP/C6w6V9eElT2So+Vy0uxutm+9w==","signatures":[{"sig":"MEUCIFlh86SuSttTBdZyBMn8mBBgY+Opjxe2oiZX0Vk0vY9iAiEApH2161AGM+Ey5J6YfwA0ifpVmxJbdVJaLrxHImprPc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.43-canary.30835115955.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58481271},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4d34b460408df9a2c5994e36f58f6a54e37a8b1a","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.43-canary.30835115955.1_1785776847035_0.03800923988034799","host":"s3://npm-registry-packages-npm-production"}},"0.0.43-canary.30835501563.1":{"name":"happy2","version":"0.0.43-canary.30835501563.1","license":"MIT","_id":"happy2@0.0.43-canary.30835501563.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"360386cdc60467691a7690164aa5aff6aa68b48b","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.43-canary.30835501563.1.tgz","fileCount":4061,"integrity":"sha512-H8MJ52PjnZxPzjkG4L783Wo37rxqQtE99DW5dppv64uWJ9ayCRUInCfN3AG5ctOEerYXdP9hGJOkCsAZeTXe2A==","signatures":[{"sig":"MEQCIC4tpeL9xHZoNDG13rfkJ7jB7abgXmAaovk338jCmkLkAiAJ84lhu+1KZf2ChUrkm27aYIPbBq2cGMlFzFMLCVCn2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.43-canary.30835501563.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58481271},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"66f7b1f2aa701bdf3a1e91d47e5efb7ceb083ad8","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.43-canary.30835501563.1_1785777161510_0.5170654693769678","host":"s3://npm-registry-packages-npm-production"}},"0.0.43-canary.30837739917.1":{"name":"happy2","version":"0.0.43-canary.30837739917.1","license":"MIT","_id":"happy2@0.0.43-canary.30837739917.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"356a2b325dc22df8cedaff6c860fe2b09856c85e","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.43-canary.30837739917.1.tgz","fileCount":4061,"integrity":"sha512-UzCp4zATxu9p3+lhh/zlB9ISGtCZWWduAcIuBdjd/LgK6bCDocjo5qQLTUwHwcxcbJOphP5I2QFc4phGDL+e2w==","signatures":[{"sig":"MEUCIQDJJu4DbW9b0fI+DL2UrXiXDPuLomXC6BYTuuAw9sg7fwIgBD4j33N2YEtoZ7FHP2yku6AsF3ettBrt0MgIliTRG7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.43-canary.30837739917.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58504484},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"12bfae6fc11937c22968966ce0ee758c795e4ec1","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.43-canary.30837739917.1_1785778921191_0.03364387810192104","host":"s3://npm-registry-packages-npm-production"}},"0.0.44-canary.30855220118.1":{"name":"happy2","version":"0.0.44-canary.30855220118.1","license":"MIT","_id":"happy2@0.0.44-canary.30855220118.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"5f96def5f94162b8a2a39fc6e42cd7fe9f0fa2d2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.44-canary.30855220118.1.tgz","fileCount":4061,"integrity":"sha512-x3iSh7pbfn3d6c2jeKljKXr4y8UMQiX6kGHGhdTOMI5ghb6rhOmF+h/yhoWrdHv97HuwbA9mT64EtNor4/bAPg==","signatures":[{"sig":"MEUCIQCjnIubrtyXhLE8bZPHRniHx/7gNI9wmcrv8CMne+ND3gIgPjs0WfYc40038A2V1DW5zmOsEt9WpJLt9FHxi1Ie8W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.44-canary.30855220118.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58531532},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"f20e601a422964019e433ca25081752d043e147c","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.44-canary.30855220118.1_1785793043322_0.27732020674997515","host":"s3://npm-registry-packages-npm-production"}},"0.0.44-canary.30855626874.1":{"name":"happy2","version":"0.0.44-canary.30855626874.1","license":"MIT","_id":"happy2@0.0.44-canary.30855626874.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"0773e71374492a8d5a6a75523de10dfdc6beba01","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.44-canary.30855626874.1.tgz","fileCount":4061,"integrity":"sha512-OHAaA2aOiF981OK2pAqnB5dAwvKc+ZiSNilBJT926i+U5oYLNvguv8Ib78WLB8ixGddFlYHkY7tJg2H6udDYLw==","signatures":[{"sig":"MEYCIQDkitijB6x65Yjcs7TXG5k3RdIK8azh7u56VDXbIBxX3gIhAP7puBsOEGpHO2Sy9bA4SIYDTQI9mNEd/toyegXIqiag","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.44-canary.30855626874.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58637041},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"1fd06b8d62c1fe525e38895486ec7cb9dbcc8f53","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.44-canary.30855626874.1_1785793396057_0.8285191734504249","host":"s3://npm-registry-packages-npm-production"}},"0.0.44-canary.30855871355.1":{"name":"happy2","version":"0.0.44-canary.30855871355.1","license":"MIT","_id":"happy2@0.0.44-canary.30855871355.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"ab22e2d7b5971ce754c6b613b8bd56cfe3b996a2","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.44-canary.30855871355.1.tgz","fileCount":4061,"integrity":"sha512-BNrnfF1DYj/IuD1IBQJM1FeXXs3AR2reeGt3mY0avHYMPQUm/cEk7eQJtNPPQT+qZJB4u6HUcrStN53xByyMrA==","signatures":[{"sig":"MEQCIEnWyb/6osQkWjCjToceZx4y6JDHFEr4Nh5oE9o5lVBbAiAoXJZTy492NRgzQXY0Itd7djDM4awr/yRodYTeOpriAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.44-canary.30855871355.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58647346},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"08096877d8f02632245e8022c052e2ecdb24028b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.44-canary.30855871355.1_1785793608937_0.7006404005520648","host":"s3://npm-registry-packages-npm-production"}},"0.0.44-canary.30856110600.1":{"name":"happy2","version":"0.0.44-canary.30856110600.1","license":"MIT","_id":"happy2@0.0.44-canary.30856110600.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"c8ba70b00cbdfa70f06a9f3a450cd960076da325","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.44-canary.30856110600.1.tgz","fileCount":4061,"integrity":"sha512-uOVLovrKWzeq8dblx0FvwsuO6QSdGEUtVDz00KB5hpfuOiyZOo9ZWilUQEnbSYAxl3DB6pKj/v+8ohgRBS8TjQ==","signatures":[{"sig":"MEUCIQD9xINkv7hgV5fSQdgLLOBZJHOVmHnKB/NnSBeS494hagIgC9mNIfLUE1TY89VJ+t/3HVvr8K6XNAJP7n3BuDrqNaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.44-canary.30856110600.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58655262},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"e182c2254be51950df3f683acf5e1d01acb109af","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.44-canary.30856110600.1_1785793814486_0.9780251619588687","host":"s3://npm-registry-packages-npm-production"}},"0.0.44-canary.30861252717.1":{"name":"happy2","version":"0.0.44-canary.30861252717.1","license":"MIT","_id":"happy2@0.0.44-canary.30861252717.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"82e6517d54e3473461bb65d6864b10241f832583","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.44-canary.30861252717.1.tgz","fileCount":4061,"integrity":"sha512-6oF2Cr4E+fAJqlphtqk10VaxrNbP8DSam4mWxtr+FS2WfmlaDSOGjwNO/mpGzMU0Vug+LBmwsnGrHX93YLJbRg==","signatures":[{"sig":"MEQCIDuh/O2CaIad/mt758AqDXhokcW04N1+u/tPMnOHQbb5AiBvFGZzwrel54VOOml8zv9T7t1QQwPeZZGOgeg/bX/xdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.44-canary.30861252717.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58655262},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"4cf37d8bc025a7a4e75add35c736a0048269226b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.44-canary.30861252717.1_1785798693513_0.7402056578608036","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"happy2","version":"0.0.45","license":"MIT","_id":"happy2@0.0.45","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"a4ca10a994c042407aff46d6d44ad59c45061a14","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.45.tgz","fileCount":4061,"integrity":"sha512-8NTQVji/TFyk4nIEPDrKb9PXNzwq8VeZ1crIJnCOReLXIqPi32sz1ZU4Qv3arDcKsGpvBP51g/mVrfnJDd9CPg==","signatures":[{"sig":"MEQCIHkEfZDMQ06iRHQ+DGJQyOQtRtUlj4Y8m/qrQx7YwaPeAiB0DpKJIJcO5ZYoegGoXf9STjanIepEGHwLLXmPesXSNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58655241},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"65f6ea4932f22bed82249463099f296b303fc71f","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.129","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.45_1785799505321_0.4950869820382735","host":"s3://npm-registry-packages-npm-production"}},"0.0.45-canary.30862100314.1":{"name":"happy2","version":"0.0.45-canary.30862100314.1","license":"MIT","_id":"happy2@0.0.45-canary.30862100314.1","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"homepage":"https://github.com/slopus/happy2#readme","bugs":{"url":"https://github.com/slopus/happy2/issues"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"dist":{"shasum":"3a9a8563b495be2af2249e1eba912db438697201","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.45-canary.30862100314.1.tgz","fileCount":4061,"integrity":"sha512-6MORGCqJckdSmJb12hY87ZjONOyPWlwp8vhnTGcbJLy2EiSKrM4Ec0b7wiVyit/MmTcrD0Rt9BPe4JP6H5LiUw==","signatures":[{"sig":"MEYCIQDDxcyXSZvr94h2MUxq9VcG57KrqGBsXbuCIga9lkFv1QIhAOosnOxZ1YvUqKoZrcNcoXgzQhdF1esjmuIDbmJ6GUTY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.45-canary.30862100314.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58769934},"main":"./packages/happy2-server/dist/index.js","type":"module","types":"./packages/happy2-server/dist/index.d.ts","engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"gitHead":"68997c9f04b184260a82eb30989bee839a3d1d1b","scripts":{"dev":"node scripts/dev.mjs","web":"node scripts/web.mjs","lint":"oxlint eslint scripts && pnpm -r --if-present lint","test":"pnpm -r --if-present test","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","check":"pnpm check:validation && pnpm build","clean":"pnpm -r --if-present clean","start":"node packages/happy2-server/dist/runner.js","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","dev:web":"pnpm --filter happy2-web dev","prepack":"pnpm run build","release":"tsx scripts/release.ts","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","dev:server":"pnpm --dir packages/happy2-server dev","test:watch":"pnpm -r --parallel --if-present test:watch","dev:desktop":"node scripts/dev-desktop.mjs","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","desktop:assets":"node scripts/create-mac-icon.mjs","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","desktop:mac:release":"node scripts/build-mac-apps.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"repository":{"url":"git+https://github.com/slopus/happy2.git","type":"git"},"_npmVersion":"11.16.0","description":"Happy (2) desktop web app and server bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","yjs":"^13.6.31","jose":"^6.1.3","pino":"^10.3.1","yaml":"^2.9.0","sharp":"^0.35.3","httpxy":"0.5.5","fastify":"^5.8.2","smol-toml":"^1.4.2","thumbhash":"^0.1.1","nodemailer":"^7.0.13","@slopus/rig":"0.0.132","drizzle-orm":"^0.45.2","@fastify/cors":"^11.3.0","@libsql/client":"^0.17.4","@fastify/static":"^10.1.0","@fastify/multipart":"^10.1.0","@fastify/http-proxy":"^11.5.0","@paralleldrive/cuid2":"^3.3.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.21.0","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","typescript":"^7.0.2","@eslint/css":"^1.4.0","@types/node":"^26.1.1","concurrently":"^10.0.3","@rolldown/plugin-babel":"0.2.3","vite-plugin-node-polyfills":"^0.28.0","babel-plugin-react-compiler":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy2_0.0.45-canary.30862100314.1_1785799571030_0.42610505983324987","host":"s3://npm-registry-packages-npm-production"}},"0.0.46":{"name":"happy2","version":"0.0.46","description":"Happy (2) desktop web app and server bundle","license":"MIT","repository":{"type":"git","url":"git+https://github.com/slopus/happy2.git"},"bin":{"happy2":"packages/happy2-server/bin/happy2.js"},"type":"module","main":"./packages/happy2-server/dist/index.js","types":"./packages/happy2-server/dist/index.d.ts","exports":{".":{"types":"./packages/happy2-server/dist/index.d.ts","default":"./packages/happy2-server/dist/index.js"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"dev":"node scripts/dev.mjs","dev:web":"pnpm --filter happy2-web dev","web":"node scripts/web.mjs","dev:desktop":"node scripts/dev-desktop.mjs","dev:desktop:electron":"pnpm --dir packages/happy2-desktop dev:electron","desktop:assets":"node scripts/create-mac-icon.mjs","desktop:update-manifest":"node scripts/create-mac-update-manifest.mjs","desktop:mac:release":"node scripts/build-mac-apps.mjs","desktop:local:web":"pnpm --dir packages/happy2-desktop build:local-web-ui","dev:server":"pnpm --dir packages/happy2-server dev","blueprint":"pnpm exec portless run --name happy2-blueprint node scripts/dev-blueprint.mjs","plugins:build":"pnpm --filter './packages/happy2-plugin-*' --filter '!happy2-plugin-sdk' build","plugins:assemble":"pnpm --dir packages/happy2-server plugins:assemble","plugins:prepare":"pnpm run plugins:build && pnpm run plugins:assemble","start":"node packages/happy2-server/dist/runner.js","build":"pnpm -r --if-present build && VITE_HAPPY2_SERVER_URL='/' pnpm --filter happy2-web exec vite build --outDir ../happy2-server/dist/web --emptyOutDir false","test":"pnpm -r --if-present test","test:dockerfile":"node --test scripts/dockerfile.test.mjs","test:non-server":"pnpm --parallel --filter happy2-state --filter happy2-app test && pnpm --dir packages/happy2-ui test && pnpm --dir packages/happy2-gym test:playwright","package:check":"tsx scripts/checkPublishedRuntimeDependencies.ts","test:watch":"pnpm -r --parallel --if-present test:watch","typecheck":"tsc --project tsconfig.json && pnpm -r --if-present typecheck","format":"oxfmt --write eslint scripts tsconfig.json && pnpm -r --if-present format","format:check":"oxfmt --check eslint scripts tsconfig.json && pnpm -r --if-present format:check","lint":"oxlint eslint scripts && pnpm -r --if-present lint","check:validation":"pnpm test:dockerfile && pnpm package:check && pnpm format:check && pnpm lint && pnpm --dir packages/happy2-server architecture:check && pnpm typecheck && pnpm test:non-server && pnpm --dir packages/happy2-server test && pnpm --dir packages/happy2-gym test:server","check":"pnpm check:validation && pnpm build","release":"tsx scripts/release.ts","prepack":"pnpm run build","clean":"pnpm -r --if-present clean"},"dependencies":{"@fastify/cors":"^11.3.0","@fastify/http-proxy":"^11.5.0","@fastify/multipart":"^10.1.0","@fastify/static":"^10.1.0","@libsql/client":"^0.17.4","@modelcontextprotocol/sdk":"^1.29.0","@paralleldrive/cuid2":"^3.3.0","@slopus/rig":"0.0.132","drizzle-orm":"^0.45.2","fastify":"^5.8.2","httpxy":"0.5.5","jose":"^6.1.3","nodemailer":"^7.0.13","pino":"^10.3.1","sharp":"^0.35.3","smol-toml":"^1.4.2","thumbhash":"^0.1.1","ws":"^8.21.1","yaml":"^2.9.0","yjs":"^13.6.31"},"devDependencies":{"@eslint/css":"^1.4.0","@rolldown/plugin-babel":"0.2.3","@types/node":"^26.1.1","babel-plugin-react-compiler":"1.0.0","concurrently":"^10.0.3","oxfmt":"^0.57.0","oxlint":"^1.73.0","portless":"^0.15.4","tsx":"^4.21.0","typescript":"^7.0.2","vite-plugin-node-polyfills":"^0.28.0"},"engines":{"node":">=24.0.0","pnpm":">=10.28.1"},"packageManager":"pnpm@10.28.1","gitHead":"82e670689be7b85bab356cd9c07c5c0ce78d6145","_id":"happy2@0.0.46","bugs":{"url":"https://github.com/slopus/happy2/issues"},"homepage":"https://github.com/slopus/happy2#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-FsWtt4DKzZTL13zjJQX/SjqnpPFsJadvXA6/6Z6rXI+VmzbEq9ODgDisk08CXOLDbamcS0YQadMiTzru+wkLqQ==","shasum":"cbccc1adebeecfc5b7f204c787ed9f8488279744","tarball":"https://registry.npmjs.org/happy2/-/happy2-0.0.46.tgz","fileCount":4061,"unpackedSize":58769913,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy2@0.0.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCK2DOUiueIXQyu84+lnl/d4jLmAAIrOkSQigSCt1fhmQIgPX3m9wGDbzxVBDY9L6Rsb0EDrh3pwzcpUuIRkzHZb7g="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bcacd5fb-0308-48fa-b8a7-616a2d38aa9f"}},"directories":{},"maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/happy2_0.0.46_1785800529825_0.06893572710549156"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-16T06:12:09.863Z","modified":"2026-08-03T23:42:10.817Z","0.0.5":"2026-07-16T06:12:10.214Z","0.0.9":"2026-07-18T22:32:26.139Z","0.0.11":"2026-07-19T00:39:25.709Z","0.0.12":"2026-07-19T02:39:26.499Z","0.0.13":"2026-07-19T05:11:31.455Z","0.0.14":"2026-07-19T05:41:40.701Z","0.0.15":"2026-07-19T07:43:44.363Z","0.0.16":"2026-07-19T08:41:47.587Z","0.0.17":"2026-07-19T20:32:43.259Z","0.0.18":"2026-07-19T22:30:57.849Z","0.0.18-canary.29709053085.2":"2026-07-20T00:11:22.356Z","0.0.18-canary.29709250098.1":"2026-07-20T00:17:01.289Z","0.0.18-canary.29710514629.1":"2026-07-20T01:10:42.881Z","0.0.18-canary.29710893671.1":"2026-07-20T01:26:14.436Z","0.0.18-canary.29711361073.1":"2026-07-20T01:45:38.827Z","0.0.18-canary.29712386729.1":"2026-07-20T02:21:01.291Z","0.0.18-canary.29712658356.1":"2026-07-20T02:29:59.870Z","0.0.18-canary.29713682969.1":"2026-07-20T03:01:50.532Z","0.0.18-canary.29714530558.1":"2026-07-20T03:24:13.610Z","0.0.18-canary.29715865263.1":"2026-07-20T04:01:36.253Z","0.0.18-canary.29724708832.1":"2026-07-20T07:29:19.434Z","0.0.18-canary.29734839863.1":"2026-07-20T10:23:39.303Z","0.0.18-canary.29736043702.1":"2026-07-20T10:45:06.876Z","0.0.18-canary.29736776103.1":"2026-07-20T10:57:58.109Z","0.0.18-canary.29761230863.1":"2026-07-20T16:51:11.643Z","0.0.18-canary.29769737151.1":"2026-07-20T18:55:41.407Z","0.0.18-canary.29770298238.1":"2026-07-20T19:03:39.506Z","0.0.18-canary.29776178672.1":"2026-07-20T20:28:32.256Z","0.0.18-canary.29781578875.1":"2026-07-20T21:49:37.050Z","0.0.18-canary.29782890799.1":"2026-07-20T22:10:28.585Z","0.0.18-canary.29785091679.1":"2026-07-20T22:48:40.942Z","0.0.18-canary.29785786838.1":"2026-07-20T23:01:36.733Z","0.0.18-canary.29787186668.1":"2026-07-20T23:27:36.581Z","0.0.18-canary.29788501664.1":"2026-07-20T23:52:20.429Z","0.0.18-canary.29788816601.1":"2026-07-20T23:58:28.702Z","0.0.18-canary.29790922502.1":"2026-07-21T00:41:04.214Z","0.0.18-canary.29791136564.1":"2026-07-21T00:45:16.986Z","0.0.18-canary.29792423872.1":"2026-07-21T01:12:23.045Z","0.0.18-canary.29792595887.1":"2026-07-21T01:16:06.776Z","0.0.18-canary.29793042316.1":"2026-07-21T01:26:23.467Z","0.0.18-canary.29793508653.1":"2026-07-21T01:36:34.342Z","0.0.18-canary.29793550133.1":"2026-07-21T01:38:18.767Z","0.0.18-canary.29794771839.1":"2026-07-21T02:04:31.855Z","0.0.18-canary.29794859731.1":"2026-07-21T02:06:16.720Z","0.0.18-canary.29796693670.1":"2026-07-21T02:47:28.903Z","0.0.18-canary.29796699875.1":"2026-07-21T02:48:41.932Z","0.0.18-canary.29797242305.1":"2026-07-21T02:59:46.493Z","0.0.18-canary.29797749612.1":"2026-07-21T03:10:47.996Z","0.0.18-canary.29798791594.1":"2026-07-21T03:33:57.665Z","0.0.18-canary.29798978914.1":"2026-07-21T03:38:10.637Z","0.0.18-canary.29799364370.1":"2026-07-21T03:46:59.542Z","0.0.18-canary.29801810971.1":"2026-07-21T04:40:22.920Z","0.0.18-canary.29802333053.1":"2026-07-21T04:52:19.162Z","0.0.18-canary.29807097849.1":"2026-07-21T06:29:30.535Z","0.0.18-canary.29808329282.1":"2026-07-21T06:52:33.705Z","0.0.18-canary.29809426345.1":"2026-07-21T07:11:13.253Z","0.0.18-canary.29810064686.1":"2026-07-21T07:21:52.853Z","0.0.18-canary.29812420708.1":"2026-07-21T07:59:29.772Z","0.0.18-canary.29813792585.1":"2026-07-21T08:20:30.489Z","0.0.18-canary.29816954564.1":"2026-07-21T09:08:17.926Z","0.0.18-canary.29880906957.1":"2026-07-22T00:41:59.961Z","0.0.18-canary.29887936130.1":"2026-07-22T03:16:13.343Z","0.0.18-canary.29888035584.1":"2026-07-22T03:18:24.106Z","0.0.18-canary.29890596002.1":"2026-07-22T04:17:08.316Z","0.0.18-canary.29891325331.1":"2026-07-22T04:33:56.472Z","0.0.18-canary.29891925342.1":"2026-07-22T04:47:31.024Z","0.0.18-canary.29892231031.1":"2026-07-22T04:54:49.689Z","0.0.18-canary.29893092868.1":"2026-07-22T05:13:16.646Z","0.0.18-canary.29893803061.1":"2026-07-22T05:28:32.097Z","0.0.18-canary.29894914590.1":"2026-07-22T05:51:52.917Z","0.0.18-canary.29895813891.1":"2026-07-22T06:09:50.746Z","0.0.18-canary.29902356370.1":"2026-07-22T08:02:44.919Z","0.0.18-canary.29905995890.1":"2026-07-22T08:59:07.585Z","0.0.18-canary.29947268150.1":"2026-07-22T18:36:29.271Z","0.0.18-canary.30068271714.1":"2026-07-24T05:02:41.847Z","0.0.18-canary.30068317653.1":"2026-07-24T05:04:42.233Z","0.0.18-canary.30072645160.1":"2026-07-24T06:35:56.236Z","0.0.18-canary.30084749072.1":"2026-07-24T10:04:02.142Z","0.0.18-canary.30145287107.1":"2026-07-25T05:12:14.860Z","0.0.18-canary.30145760558.1":"2026-07-25T05:28:15.547Z","0.0.18-canary.30149676136.1":"2026-07-25T07:40:37.586Z","0.0.18-canary.30150008672.1":"2026-07-25T07:51:51.827Z","0.0.18-canary.30151577025.1":"2026-07-25T08:44:25.693Z","0.0.18-canary.30152057610.1":"2026-07-25T09:01:40.267Z","0.0.18-canary.30169876261.1":"2026-07-25T18:35:55.125Z","0.0.18-canary.30171125917.1":"2026-07-25T19:13:24.700Z","0.0.18-canary.30171707496.1":"2026-07-25T19:31:40.273Z","0.0.18-canary.30171729857.1":"2026-07-25T19:33:42.768Z","0.0.18-canary.30174003469.1":"2026-07-25T20:40:55.676Z","0.0.18-canary.30174689352.1":"2026-07-25T21:00:59.875Z","0.0.18-canary.30176315209.1":"2026-07-25T21:49:33.801Z","0.0.18-canary.30177435706.1":"2026-07-25T22:24:06.690Z","0.0.18-canary.30177605763.1":"2026-07-25T22:29:23.159Z","0.0.18-canary.30178043097.1":"2026-07-25T22:43:12.188Z","0.0.18-canary.30178977445.1":"2026-07-25T23:13:56.082Z","0.0.18-canary.30179696132.1":"2026-07-25T23:38:00.498Z","0.0.18-canary.30179838978.1":"2026-07-25T23:42:54.937Z","0.0.18-canary.30180909282.1":"2026-07-26T00:19:43.801Z","0.0.18-canary.30181915881.1":"2026-07-26T00:54:35.130Z","0.0.18-canary.30182187675.1":"2026-07-26T01:03:44.480Z","0.0.18-canary.30182652416.1":"2026-07-26T01:19:59.548Z","0.0.18-canary.30182720772.1":"2026-07-26T01:22:13.220Z","0.0.18-canary.30183677634.1":"2026-07-26T01:56:59.588Z","0.0.18-canary.30183682772.1":"2026-07-26T01:59:08.903Z","0.0.18-canary.30184062760.1":"2026-07-26T02:10:14.999Z","0.0.18-canary.30184575813.1":"2026-07-26T02:29:27.940Z","0.0.18-canary.30184715161.1":"2026-07-26T02:34:45.045Z","0.0.18-canary.30184985037.1":"2026-07-26T02:45:46.513Z","0.0.18-canary.30185684044.1":"2026-07-26T03:10:30.983Z","0.0.18-canary.30185738596.1":"2026-07-26T03:12:41.569Z","0.0.18-canary.30185827435.1":"2026-07-26T03:15:41.550Z","0.0.18-canary.30190892297.1":"2026-07-26T06:22:43.834Z","0.0.18-canary.30191160259.1":"2026-07-26T06:32:13.176Z","0.0.18-canary.30191428635.1":"2026-07-26T06:41:34.287Z","0.0.18-canary.30191960784.1":"2026-07-26T07:00:16.094Z","0.0.18-canary.30192035399.1":"2026-07-26T07:02:28.434Z","0.0.18-canary.30192047994.1":"2026-07-26T07:04:34.570Z","0.0.18-canary.30193245753.1":"2026-07-26T07:43:21.177Z","0.0.18-canary.30194758733.1":"2026-07-26T08:33:02.740Z","0.0.18-canary.30219199638.1":"2026-07-26T20:34:29.746Z","0.0.18-canary.30219415161.1":"2026-07-26T20:40:42.069Z","0.0.18-canary.30220039729.1":"2026-07-26T20:58:40.643Z","0.0.18-canary.30222800566.1":"2026-07-26T22:18:20.075Z","0.0.18-canary.30223472232.1":"2026-07-26T22:38:23.022Z","0.0.18-canary.30224173153.1":"2026-07-26T22:58:58.524Z","0.0.18-canary.30224693588.1":"2026-07-26T23:12:49.394Z","0.0.18-canary.30228094716.1":"2026-07-27T00:45:14.227Z","0.0.18-canary.30232127729.1":"2026-07-27T02:27:12.808Z","0.0.18-canary.30235774860.1":"2026-07-27T03:58:06.816Z","0.0.18-canary.30344100353.1":"2026-07-28T08:53:38.622Z","0.0.18-canary.30412136778.1":"2026-07-29T00:48:26.973Z","0.0.18-canary.30415251779.1":"2026-07-29T01:53:21.702Z","0.0.18-canary.30416699698.1":"2026-07-29T02:25:26.630Z","0.0.19-canary.30416870997.1":"2026-07-29T02:29:20.648Z","0.0.21-canary.30419508768.1":"2026-07-29T03:26:59.367Z","0.0.21-canary.30420130445.1":"2026-07-29T03:41:13.452Z","0.0.21-canary.30425311668.1":"2026-07-29T05:33:27.671Z","0.0.21-canary.30427996570.1":"2026-07-29T06:25:15.661Z","0.0.21-canary.30430739686.1":"2026-07-29T07:13:29.477Z","0.0.21-canary.30431562096.1":"2026-07-29T07:26:51.058Z","0.0.21-canary.30432333730.1":"2026-07-29T07:39:17.587Z","0.0.21-canary.30432515625.1":"2026-07-29T07:41:41.858Z","0.0.21-canary.30432927218.1":"2026-07-29T07:48:50.752Z","0.0.21-canary.30432998162.1":"2026-07-29T07:51:03.141Z","0.0.21-canary.30433855358.1":"2026-07-29T08:03:57.641Z","0.0.21-canary.30434089917.1":"2026-07-29T08:06:50.961Z","0.0.21-canary.30434533478.1":"2026-07-29T08:13:10.567Z","0.0.22-canary.30468944092.1":"2026-07-29T16:05:39.102Z","0.0.22-canary.30469079915.1":"2026-07-29T16:08:51.051Z","0.0.22-canary.30469347319.1":"2026-07-29T16:12:37.693Z","0.0.22-canary.30511780793.1":"2026-07-30T03:41:56.701Z","0.0.22-canary.30511900577.1":"2026-07-30T03:44:39.591Z","0.0.22-canary.30512132145.1":"2026-07-30T03:50:03.944Z","0.0.22-canary.30514121466.1":"2026-07-30T04:33:51.349Z","0.0.22-canary.30518604504.1":"2026-07-30T06:09:15.402Z","0.0.22-canary.30525589118.1":"2026-07-30T08:11:30.709Z","0.0.22-canary.30525614405.1":"2026-07-30T08:13:43.376Z","0.0.22-canary.30562717836.1":"2026-07-30T16:45:05.370Z","0.0.22-canary.30567784432.1":"2026-07-30T17:52:56.748Z","0.0.22-canary.30569134230.1":"2026-07-30T18:11:10.113Z","0.0.22-canary.30590183486.1":"2026-07-30T23:22:27.824Z","0.0.22-canary.30591734671.1":"2026-07-30T23:52:14.593Z","0.0.22-canary.30595568927.1":"2026-07-31T01:11:22.842Z","0.0.22-canary.30597725553.1":"2026-07-31T02:00:06.332Z","0.0.22-canary.30598490527.1":"2026-07-31T02:17:14.734Z","0.0.22-canary.30599121920.1":"2026-07-31T02:31:53.248Z","0.0.22-canary.30599214451.1":"2026-07-31T02:33:42.502Z","0.0.22-canary.30599935446.1":"2026-07-31T02:50:27.257Z","0.0.23-canary.30600458125.1":"2026-07-31T03:03:22.501Z","0.0.23-canary.30600647325.1":"2026-07-31T03:06:51.834Z","0.0.23-canary.30602167222.1":"2026-07-31T03:42:42.279Z","0.0.23-canary.30605098480.1":"2026-07-31T04:49:58.965Z","0.0.23-canary.30605198979.1":"2026-07-31T04:52:04.543Z","0.0.23-canary.30609910034.1":"2026-07-31T06:33:31.421Z","0.0.23-canary.30617436426.1":"2026-07-31T08:47:27.115Z","0.0.23-canary.30679653357.1":"2026-08-01T02:17:49.961Z","0.0.23-canary.30679684507.1":"2026-08-01T02:19:59.926Z","0.0.24-canary.30681136808.1":"2026-08-01T03:03:09.235Z","0.0.25-canary.30681586762.1":"2026-08-01T03:15:54.765Z","0.0.26-canary.30681984294.1":"2026-08-01T03:28:17.703Z","0.0.27":"2026-08-01T03:38:21.510Z","0.0.27-canary.30682477291.1":"2026-08-01T03:43:33.011Z","0.0.27-canary.30683132893.1":"2026-08-01T04:04:08.977Z","0.0.27-canary.30684429299.1":"2026-08-01T04:43:47.083Z","0.0.27-canary.30684502865.1":"2026-08-01T04:45:59.343Z","0.0.27-canary.30686891710.1":"2026-08-01T06:02:22.142Z","0.0.27-canary.30687053022.1":"2026-08-01T06:07:03.758Z","0.0.27-canary.30687907648.1":"2026-08-01T06:33:30.812Z","0.0.27-canary.30688010378.1":"2026-08-01T06:37:18.432Z","0.0.28":"2026-08-01T06:49:22.988Z","0.0.28-canary.30689364843.1":"2026-08-01T07:17:07.886Z","0.0.28-canary.30691365147.1":"2026-08-01T08:16:31.873Z","0.0.28-canary.30709385660.1":"2026-08-01T17:02:40.143Z","0.0.28-canary.30711122724.1":"2026-08-01T17:50:24.421Z","0.0.28-canary.30711325302.1":"2026-08-01T17:56:13.012Z","0.0.28-canary.30711902848.1":"2026-08-01T18:11:55.350Z","0.0.28-canary.30712661579.1":"2026-08-01T18:32:23.462Z","0.0.28-canary.30713297947.1":"2026-08-01T18:48:49.919Z","0.0.28-canary.30713695391.1":"2026-08-01T18:59:22.455Z","0.0.28-canary.30714680796.1":"2026-08-01T19:26:25.026Z","0.0.29":"2026-08-01T19:38:32.970Z","0.0.29-canary.30717543791.1":"2026-08-01T20:44:13.168Z","0.0.30":"2026-08-01T20:56:26.487Z","0.0.30-canary.30719750145.1":"2026-08-01T21:46:01.935Z","0.0.30-canary.30722066354.1":"2026-08-01T22:51:08.258Z","0.0.30-canary.30728635558.1":"2026-08-02T02:21:10.888Z","0.0.30-canary.30728758381.1":"2026-08-02T02:25:09.409Z","0.0.30-canary.30730167680.1":"2026-08-02T03:12:59.325Z","0.0.30-canary.30730309442.1":"2026-08-02T03:17:51.920Z","0.0.30-canary.30730428589.1":"2026-08-02T03:22:08.020Z","0.0.30-canary.30730506736.1":"2026-08-02T03:24:37.969Z","0.0.30-canary.30730532235.1":"2026-08-02T03:27:06.732Z","0.0.30-canary.30730660115.1":"2026-08-02T03:30:20.091Z","0.0.30-canary.30730735864.1":"2026-08-02T03:32:55.912Z","0.0.31":"2026-08-02T03:46:02.184Z","0.0.31-canary.30732524836.1":"2026-08-02T04:33:56.985Z","0.0.32":"2026-08-02T05:18:11.415Z","0.0.32-canary.30734198326.1":"2026-08-02T05:31:23.018Z","0.0.33-canary.30736782248.1":"2026-08-02T06:56:48.693Z","0.0.33-canary.30737141132.1":"2026-08-02T07:08:07.804Z","0.0.33-canary.30737228418.1":"2026-08-02T07:11:01.438Z","0.0.33-canary.30740201167.1":"2026-08-02T08:41:50.073Z","0.0.33-canary.30741069625.1":"2026-08-02T09:07:52.808Z","0.0.33-canary.30741143875.1":"2026-08-02T09:10:12.820Z","0.0.33-canary.30741484967.1":"2026-08-02T09:20:14.810Z","0.0.33-canary.30742175113.1":"2026-08-02T09:40:41.552Z","0.0.33-canary.30743370601.1":"2026-08-02T10:17:31.327Z","0.0.33-canary.30744157251.1":"2026-08-02T10:41:31.161Z","0.0.33-canary.30744779669.1":"2026-08-02T11:00:20.840Z","0.0.33-canary.30746273382.1":"2026-08-02T11:44:18.678Z","0.0.33-canary.30748430445.1":"2026-08-02T12:46:09.775Z","0.0.33-canary.30749268249.1":"2026-08-02T13:10:15.266Z","0.0.33-canary.30750804784.1":"2026-08-02T13:53:16.037Z","0.0.33-canary.30753884062.1":"2026-08-02T15:16:33.906Z","0.0.33-canary.30754043670.1":"2026-08-02T15:20:46.848Z","0.0.33-canary.30756106754.1":"2026-08-02T16:14:55.530Z","0.0.33-canary.30761406381.1":"2026-08-02T18:36:28.996Z","0.0.34":"2026-08-02T18:54:29.732Z","0.0.34-canary.30764838223.1":"2026-08-02T20:08:07.959Z","0.0.34-canary.30765047963.1":"2026-08-02T20:13:39.446Z","0.0.34-canary.30765367239.1":"2026-08-02T20:22:24.642Z","0.0.34-canary.30765523995.1":"2026-08-02T20:26:21.783Z","0.0.35":"2026-08-02T22:43:22.481Z","0.0.35-canary.30782849938.1":"2026-08-03T03:54:41.491Z","0.0.36":"2026-08-03T04:07:51.037Z","0.0.36-canary.30784769070.1":"2026-08-03T04:35:59.185Z","0.0.36-canary.30786581501.1":"2026-08-03T05:16:36.880Z","0.0.36-canary.30787090520.1":"2026-08-03T05:27:11.540Z","0.0.37":"2026-08-03T05:41:50.658Z","0.0.38":"2026-08-03T07:17:15.085Z","0.0.38-canary.30794287715.1":"2026-08-03T07:40:05.287Z","0.0.38-canary.30795295814.1":"2026-08-03T07:56:03.150Z","0.0.39-canary.30796053609.1":"2026-08-03T08:09:01.558Z","0.0.39":"2026-08-03T08:13:10.176Z","0.0.40":"2026-08-03T08:23:41.899Z","0.0.40-canary.30797818327.1":"2026-08-03T08:38:51.802Z","0.0.40-canary.30799403830.1":"2026-08-03T09:00:11.108Z","0.0.40-canary.30800710852.1":"2026-08-03T09:19:15.104Z","0.0.41":"2026-08-03T09:31:46.087Z","0.0.41-canary.30805391679.1":"2026-08-03T10:26:02.513Z","0.0.41-canary.30807175042.1":"2026-08-03T10:53:33.853Z","0.0.42-canary.30807665218.1":"2026-08-03T11:00:55.611Z","0.0.42":"2026-08-03T11:07:07.270Z","0.0.43":"2026-08-03T11:14:05.083Z","0.0.43-canary.30835115955.1":"2026-08-03T17:07:27.596Z","0.0.43-canary.30835501563.1":"2026-08-03T17:12:41.977Z","0.0.43-canary.30837739917.1":"2026-08-03T17:42:01.651Z","0.0.44-canary.30855220118.1":"2026-08-03T21:37:23.754Z","0.0.44-canary.30855626874.1":"2026-08-03T21:43:16.537Z","0.0.44-canary.30855871355.1":"2026-08-03T21:46:49.416Z","0.0.44-canary.30856110600.1":"2026-08-03T21:50:15.022Z","0.0.44-canary.30861252717.1":"2026-08-03T23:11:34.005Z","0.0.45":"2026-08-03T23:25:05.834Z","0.0.45-canary.30862100314.1":"2026-08-03T23:26:11.488Z","0.0.46":"2026-08-03T23:42:10.371Z"},"bugs":{"url":"https://github.com/slopus/happy2/issues"},"license":"MIT","homepage":"https://github.com/slopus/happy2#readme","repository":{"type":"git","url":"git+https://github.com/slopus/happy2.git"},"description":"Happy (2) desktop web app and server bundle","maintainers":[{"name":"steve.kite","email":"steve@korshakov.com"}],"readme":"<div align=\"center\">\n\n<p><img src=\"./.github/logo.png\" alt=\"Happy (2)\" width=\"160\" /></p>\n\n<h3>A self-hosted, Slack-like workspace where people and coding agents build together.</h3>\n\n<p>\n  Following the success of <a href=\"https://github.com/slopus/happy\">Happy</a>,\n  Happy (2) is a ground-up next chapter built on the lessons learned from\n  bringing coding agents into real daily workflows. It brings conversations,\n  files, workspaces, and coding agents into one focused web and desktop app.\n</p>\n\n<p>\n  Built by the authors of\n  <a href=\"https://github.com/slopus/happy\">Happy</a> and\n  <a href=\"https://github.com/slopus/rig\">Rig</a>.\n</p>\n\n<p>\n  <a href=\"#quick-start\">Quick start</a> ·\n  <a href=\"#configuration\">Configuration</a> ·\n  <a href=\"#why-happy-2\">Why Happy (2)?</a> ·\n  <a href=\"#how-it-works\">How it works</a> ·\n  <a href=\"#project-components\">Project components</a> ·\n  <a href=\"packages/happy2-server/README.md\">Server docs</a>\n</p>\n\n</div>\n\nHappy (2) is a self-hosted, Slack-like work and coding app that evolves by\nadopting itself. It gives teams and coding agents a shared home instead of\nscattering work across chat windows, terminals, file browsers, and one-off\ndashboards.\n\nThe same React application runs in the browser and in Electron. A small Fastify\nserver provides authentication, durable collaboration state, files, realtime\nupdates, and agent execution. The complete server and web app are also bundled\nas one `happy2` package.\n\n## Quick start\n\nHappy (2) requires Node.js 24 or later. Start the complete app with one command:\n\n```sh\nnpx happy2\n```\n\nOpen [http://127.0.0.1:3000](http://127.0.0.1:3000) in your browser. Happy (2)\nstores its database, files, generated secrets, agent workspaces, and private Rig\nruntime under `.happy2` in the directory where you start it.\n\nRun it in the background without installing an operating-system service with:\n\n```sh\nnpx happy2 daemon start\nnpx happy2 daemon stop\n```\n\nThe daemon stores `happy2.pid`, the combined `happy2.log`, and the error-only\n`server-error.log` under `./.happy2`. Stopping it terminates the daemon process\ntree and removes the PID file.\n\nKeep Happy (2) running across reboots with:\n\n```sh\nnpx happy2 service start\nnpx happy2 service stop\n```\n\nOn macOS this installs a per-user LaunchAgent without `sudo`; it starts when the\nuser logs in. On Linux it writes and prints `./happy2.service`, then shows the\nexact `sudo` commands you can run to install and start it as a system-wide\nsystemd unit. `service stop` prints the corresponding systemd removal commands;\nit never invokes `sudo` itself. The generated file remains in the current\ndirectory so you can inspect or reinstall it. Add\n`--config /absolute/or/relative/happy2.toml` to `service start` to preserve an\nexplicit configuration file; otherwise the service keeps the current directory\nas its working directory and uses its `.happy2` state. When started through\n`npx`, the generated service runs `npx --yes happy2` instead of depending on an\nevictable `_npx` cache path.\n\n## Configuration\n\nHappy (2) uses the following configuration precedence:\n\n1. `--config /path/to/happy2.toml`\n2. `HAPPY2_CONFIG=/path/to/happy2.toml`\n3. `./.happy2/happy2.toml`, when it exists\n4. Built-in defaults\n\nTOML configuration is partial. Happy (2) recursively merges the supplied fields\nover the built-in defaults, so this is enough to expose the public listener:\n\n```toml\n[server]\nhost = \"0.0.0.0\"\n```\n\nThe managed path is relative to the directory where Happy (2) starts. Relative\ndatabase, file, plugin, key, and agent paths are also resolved from that working\ndirectory, not from the TOML file's directory. The standalone `happy2` and\n`happy2 backend` commands use this configuration; `happy2 web` has its own CLI\noptions because it only serves the SPA and proxies `/v0`.\n\n### Complete TOML reference\n\nAll supported keys are shown below. Uncomment optional keys only when needed.\nThe active values are equivalent to the built-in local defaults. For readability,\npaths are shown relative to the working directory; generated defaults store those\nsame locations as absolute paths.\n\n```toml\n[server]\n# all: authentication + product API; auth: authentication only; api: validation only\nrole = \"all\"\nhost = \"127.0.0.1\"\nport = 3000\npublic_url = \"http://127.0.0.1:3000\"\n# Number of trusted proxies outside Happy (2). Keep 0 for direct connections.\ntrusted_proxy_hops = 0\n\n[database]\nurl = \"file:.happy2/happy2.db\"\n# Name of the environment variable containing a remote libSQL auth token.\n# auth_token_env = \"HAPPY2_DATABASE_AUTH_TOKEN\"\n\n[agents]\nenabled = true\n# These default to the private Rig runtime under .happy2/rig.\n# socket_path = \".happy2/rig/server.sock\"\n# token_path = \".happy2/rig/token\"\n# command = \"/absolute/path/to/rig\"\ndefault_cwd = \".happy2/workspaces\"\n\n[files]\nprovider = \"local\"\ndirectory = \".happy2/files\"\nsigned_url_expiry_seconds = 300\nmax_upload_bytes = 536870912\nresumable_chunk_bytes = 8388608\n# Zero disables the corresponding quota.\nper_user_quota_bytes = 0\nserver_quota_bytes = 0\nincomplete_upload_expiry_seconds = 86400\nquarantine_retention_seconds = 2592000\n# malware_scanner_command = \"/usr/local/bin/clamscan\"\nmalware_scanner_arguments = []\nmalware_scan_timeout_seconds = 120\nmalware_scan_failure_mode = \"deny\" # deny or allow\n\n[plugins]\ndirectory = \".happy2/plugins\"\n# Capability-only API used by plugin containers. Firewall it from untrusted networks.\nhost_api_host = \"0.0.0.0\"\nhost_api_port = 3001\n\n# Omit this table to disable public agent-port sharing. Configure wildcard DNS\n# and TLS for *.preview.example.com to reach the same Happy web listener.\n[port_sharing]\npublic_domain = \"preview.example.com\"\n# Optional; defaults to https://preview.example.com.\n# public_url = \"http://preview.example.com:8080\"\n\n[security]\n# Name of the environment variable containing the integration encryption secret.\nintegration_secret_env = \"HAPPY2_INTEGRATION_SECRET\"\n\n[security.rate_limit]\nenabled = true\nreads_per_minute = 1200\nwrites_per_minute = 300\nauth_per_minute = 30\n\n[security.idempotency]\nenabled = true\nlease_seconds = 30\nretention_seconds = 86400\n\n[jwt]\nissuer = \"http://127.0.0.1:3000\"\naudience = \"happy2-desktop\"\nkey_id = \"local-generated\"\nexpiry_days = 30\n# PEM files may replace environment or generated keys.\n# private_key_path = \"/run/secrets/happy2-jwt-private.pem\"\n# public_key_path = \"/run/secrets/happy2-jwt-public.pem\"\n\n# Password is the default. Set it to false before enabling magic link, OIDC,\n# or Cloudflare Access; exactly one authentication method may be enabled.\n[auth.password]\nenabled = true\n\n[auth.dev_tokens]\n# This augments the selected authentication method; it is not a separate method.\nenabled = false\n\n[auth.magic_link]\nenabled = false\n# from = \"Happy (2) <noreply@example.com>\"\n# redirect_url = \"happy2://auth/magic-link\"\n\n# Replace \"example\" with a stable provider ID.\n[auth.oidc.example]\nenabled = false\n# discovery_url = \"https://id.example.com/.well-known/openid-configuration\"\n# client_id = \"happy2\"\n# client_secret_env = \"HAPPY2_OIDC_EXAMPLE_CLIENT_SECRET\"\n# scopes = [\"openid\", \"email\", \"profile\"]\n# redirect_path = \"/v0/auth/oidc/example/callback\"\n\n[auth.cloudflare_access]\nenabled = false\n# team_domain = \"https://team.cloudflareaccess.com\"\n# audience = \"cloudflare-access-application-aud\"\n```\n\nFor a reverse-proxied deployment such as `https://happy.example.com`, the\nlistener can remain on `127.0.0.1`; set `server.public_url` and `jwt.issuer` to\nthe public HTTPS origin and set `server.trusted_proxy_hops` to the exact number\nof trusted proxies in front of Happy (2). Binding `server.host = \"0.0.0.0\"` is\nonly necessary when another machine or container must connect directly.\n\n### Secrets and environment\n\nReal process environment values take precedence over values loaded from the\nprivate `.env` beside the selected TOML path. If no explicit config is selected,\nthat file is `./.happy2/.env`, whether or not `./.happy2/happy2.toml` exists.\n\nFor an `all` or `auth` server without configured JWT key files or environment\nkeys, Happy (2) generates a 3072-bit RS256 key pair and stores\n`HAPPY2_JWT_PRIVATE_KEY_B64` and `HAPPY2_JWT_PUBLIC_KEY_B64` in that `.env`.\nIt also generates `HAPPY2_PASSWORD_PEPPER` when password auth is enabled and the\nconfigured integration secret when missing. The file is created with mode\n`0600`; back it up and keep it private. Replacing the JWT keys invalidates\nexisting session tokens, while replacing the password pepper prevents existing\npassword hashes from verifying. An `api`-only server must be given the matching\npublic key because it does not generate a signing pair.\n\nSupported server and runner environment settings are:\n\n| Variable                                                                       | Purpose                                                                               |\n| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |\n| `HAPPY2_CONFIG`                                                                | Selects a TOML file when `--config` is absent.                                        |\n| `HAPPY2_JWT_PRIVATE_KEY`, `HAPPY2_JWT_PUBLIC_KEY`                              | PEM keys; literal `\\n` sequences are accepted.                                        |\n| `HAPPY2_JWT_PRIVATE_KEY_B64`, `HAPPY2_JWT_PUBLIC_KEY_B64`                      | Base64-encoded PEM keys used by generated local configuration.                        |\n| `HAPPY2_PASSWORD_PEPPER`                                                       | Server-wide password pepper.                                                          |\n| `HAPPY2_INTEGRATION_SECRET`                                                    | Default integration encryption secret; the variable name is configurable.             |\n| `RIG_HOME`                                                                     | Absolute path for Happy's private Rig runtime.                                        |\n| `RIG_SERVER_SOCKET_PATH`, `RIG_SERVER_TOKEN_PATH`, `RIG_COMMAND`               | Override omitted agent socket, token, and command fields.                             |\n| `EMAIL_SMTP_HOST`, `EMAIL_SMTP_PORT`, `EMAIL_SMTP_USER`, `EMAIL_SMTP_PASSWORD` | Required SMTP credentials for magic-link auth.                                        |\n| `EMAIL_FROM`                                                                   | Overrides `auth.magic_link.from`.                                                     |\n| `HAPPY2_BACKEND_URL`                                                           | Backend origin for the separate `happy2 web` command.                                 |\n| `HAPPY2_WEB_HOST`, `HAPPY2_WEB_PORT`, `HAPPY2_WEB_TRUSTED_PROXY_HOPS`          | Listener settings for `happy2 web`.                                                   |\n| `HAPPY2_PORT_SHARING_DOMAIN`                                                   | Wildcard port-sharing domain forwarded by a separately deployed `happy2 web` gateway. |\n\n`database.auth_token_env`, `security.integration_secret_env`, and each OIDC\nprovider's `client_secret_env` may name additional environment variables.\n\n## Why Happy (2)?\n\n- **People and agents share the same workspace.** Conversations, threads,\n  files, approvals, and agent activity live together instead of becoming a pile\n  of disconnected tools.\n- **Self-hosted by design.** Run the complete app with one command and keep its\n  database, files, secrets, agent workspaces, and Rig runtime under your control.\n- **Web and desktop.** Use the same full collaboration experience in a browser\n  or through the Electron app.\n- **Reactive by default.** Realtime events reconcile durable state so focused\n  surfaces stay current without refresh buttons.\n- **Flexible deployment.** The backend can run as an all-in-one server or as a\n  separately deployed authentication service.\n- **Built to adopt itself.** Happy (2)'s own server, state layer, component\n  workbench, browser tests, and coding-agent workflows are part of the product's\n  development loop.\n\n## How it works\n\nHappy (2) keeps the product boundaries explicit:\n\n1. `happy2-server` owns authentication, persistence, files, collaboration, and\n   agent execution.\n2. `happy2-state` turns authenticated HTTP and realtime transports into\n   immutable, independently materialized surface stores.\n3. `happy2-ui` owns the reusable visual system and its cross-browser blueprint\n   coverage.\n4. `happy2-app` composes product state and UI for both the web and Electron\n   entry points.\n\nLocal development data stays under `.context/dev` in each workspace, including\nthe generated TOML configuration, SQLite database, files, signing keys, and\npassword pepper.\n\n## Project components\n\n- **[Happy App](packages/happy2-app)** — Shared React application and product\n  composition.\n- **[Happy UI](packages/happy2-ui)** — Reusable design system, component\n  workbench, and cross-browser visual coverage.\n- **[Happy State](packages/happy2-state)** — Framework-independent client state\n  and realtime reconciliation.\n- **[Happy Web](packages/happy2-web)** — Browser entry point and production web\n  build.\n- **[Happy Desktop](packages/happy2-desktop)** — macOS Electron app with two\n  startup modes: a private Rig-managed Happy server running on this machine, or a\n  thin HTTPS client to an existing cloud Happy instance. Supervises its child\n  processes, keeps credentials in the encrypted Keychain, and ships signed GitHub\n  Releases updates.\n- **[Happy Server](packages/happy2-server)** — Fastify server, authentication\n  service, persistence, and agent runtime.\n- **[Happy Gym](packages/happy2-gym)** — Isolated black-box server, state, and\n  browser testing environment.\n\n## Development\n\nThe repository uses pnpm 10.28 or later. For local development:\n\n```sh\npnpm install\npnpm dev                                 # Server + web app\npnpm web                                 # Web preview against happy.bulkovo.com\npnpm dev:desktop                         # Electron app\npnpm dev:server                          # Server only\npnpm --dir packages/happy2-gym test      # End-to-end tests\npnpm check                               # Format, lint, test, coverage, build\n```\n\nFor production server configuration, authentication modes, and deployment, see\nthe [Happy Server documentation](packages/happy2-server/README.md).\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}