{"_id":"@ours.network/messenger-server","_rev":"48-14027293369137c00f91a1b0f1492a21","name":"@ours.network/messenger-server","dist-tags":{"latest":"1.0.30","nightly":"1.0.31-nightly.14"},"versions":{"0.1.1":{"name":"@ours.network/messenger-server","version":"0.1.1","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@0.1.1","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"a9ec340574fb1a66098f2c2be0dd5f28a89399f0","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-0.1.1.tgz","fileCount":165,"integrity":"sha512-6z9jHdZbiSESPi5TbIzR8eCWEvDhcMBFECoz7Rkp4zOBoGSx75F0gVqk1dwAiOGJYg9TItVUDLrtjzPpBCjnYw==","signatures":[{"sig":"MEUCIBUndaw6tspo1NcPvL6T0qqjtIhCarv868ZW7zsEZRyEAiEA63JWSkWnvmxWtzISXPMmVA79ZU53Q+iVXQ+Uzl2fuJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20770149},"type":"module","engines":{"node":">=20"},"gitHead":"603ac4d57d82f845d7cf4d4fdfeb026908ca8a62","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_0.1.1_1787384946595_0.2557725868089993","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ours.network/messenger-server","version":"0.1.2","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@0.1.2","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"b62ababc457535b1225ec4141d5816d75f6edad5","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-0.1.2.tgz","fileCount":165,"integrity":"sha512-p1BtD8NXr+4K/Rtxr4WXPiR6jkHYerUZlVeCBBU+ccldHyhcBX2KKW7kjuOj6zEX1A1tPqSKrIFcoOGjs0XsHA==","signatures":[{"sig":"MEUCICm+qHZTjANvFfPUtUbnPnqAmode9Zl88EEQbEYfplIZAiEAuYVFRD5gm5oo2UDoKcWwg/PSC2P6tFywLyHx6Gg+P5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20771159},"type":"module","engines":{"node":">=20"},"gitHead":"2489977008aa0f194dc753db84f45bbfb411170d","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_0.1.2_1787523876854_0.9907675088712402","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ours.network/messenger-server","version":"0.1.3","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@0.1.3","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"73097d68c93dd06a26df73c4621cbd91500bc1cb","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-0.1.3.tgz","fileCount":165,"integrity":"sha512-WYcjrD2ZqEfoaxW0m42JRQIduweOqtFj0ZFlI7xAqOv9wLFCrLUHpZUSRGyVWsmdDNmaBkt6RPedfJ6UI9gnhQ==","signatures":[{"sig":"MEUCIQDEjprGZSBDJJJyBpOksH0MzVapNhLAArnCAxO+DpO7zQIgbVTj1D6np9yF7hpQSy9poKdnk4MwfgyFRmUvecQVKys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20792747},"type":"module","engines":{"node":">=20"},"gitHead":"1c4d8efcdb2b1f494a99361f1093aa33cc72e7a1","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_0.1.3_1787574203268_0.8530952607328981","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ours.network/messenger-server","version":"1.0.0","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.0","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"338d9f7166c90e80b6dbe2fa9b131283e96a4ece","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.0.tgz","fileCount":165,"integrity":"sha512-AKGRIoFk9nMQ1O/wF7ecu1oRFtykNrm9tO9biEe3C0oJ7ATkoGsPqyHsR3VSUW70HmYNkAGyRxSQ/OK8cRVZVg==","signatures":[{"sig":"MEQCICJdqKFXykjw+WyBqOhqSZOgX8XP1k9bX0Mdvw0XdWMxAiATOWuu623KzBph+mX3g3M/38gjS6OMP/OcdTPDwNnA4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20799215},"type":"module","engines":{"node":">=20"},"gitHead":"afbd92120e3ad142c495034dc66797e49de83c82","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.0_1787600549405_0.5488555711576306","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ours.network/messenger-server","version":"1.0.1","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.1","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"1e9f299b85a8dd8a300b8b302ce81b0c26f9970c","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.1.tgz","fileCount":165,"integrity":"sha512-XZuU4XrnP4raHQPzeCYttj6K3CAMpUhufIdD3KYrTzdJLXRiXAUAWOgEwkG+tE7CS7aKDW3SYVFtVQgpdrl9xQ==","signatures":[{"sig":"MEQCIBa9YHB5BwiG9gSHppz6jq2R4g4gObfmCjbsYQK0tlVIAiAj9rjqs4X07c2DbbuMuF0enQ+5t/qWEo+h+wrW3Whdvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20816507},"type":"module","engines":{"node":">=20"},"gitHead":"d760891b84055feeb0e95bf4e4356af534c00b83","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.1_1787686768365_0.8035213454717098","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ours.network/messenger-server","version":"1.0.2","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.2","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"a29a30c1ba5deec585e15c3111cd00296c510872","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.2.tgz","fileCount":165,"integrity":"sha512-qut5DakG+37394itg4OdcSOLzYsHYdi0NXt2gYtlDpYJDY6kDE+/Zh5xJymoIJ/7kZs/3GQgvDe2zHJBC5L/Kg==","signatures":[{"sig":"MEQCIAkD/tu0+DosEOhkz8c0Z+ywq2atVLg8TYiz8fuqQ0pRAiB6VpxGAIfug6aMMgnB2PMV0zhs7LeF6qZgtSNT3ABBig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20794915},"type":"module","engines":{"node":">=20"},"gitHead":"f426c53053346d9886c9e04989661538a7f76edc","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/inter":"^5.3.0","@fontsource-variable/fraunces":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.2_1787692072854_0.5659309747937888","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ours.network/messenger-server","version":"1.0.3","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.3","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"b57ac7d4ddcaeb8a753c37969421251512506890","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.3.tgz","fileCount":155,"integrity":"sha512-GtOzcy1R21X5BFOj219he9qHJTuXCHkWWavT5eMpiHb0uIsTsxl3/88IeF/1YHyyu79KC6FaPqcsPNrrGgjFUQ==","signatures":[{"sig":"MEUCIQC0u4vDP3LpcinLWBNgxp4UHf+2ND6tNvwnprYJ/jw2UAIgKBBhN4FxkglhfAiiUCXGsmh8k4J1ocVWEOHbIOXGBeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20536132},"type":"module","engines":{"node":">=20"},"gitHead":"a86423caacfa6d7f59ba9a4127833df7284a41b3","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.3_1787745646523_0.7733324945537545","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ours.network/messenger-server","version":"1.0.4","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.4","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"338d75de96631b2e99a86db1e266fb5735019569","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.4.tgz","fileCount":155,"integrity":"sha512-T9DHyWucW9lvKhqAUfX//sH2BSB3zhqg/UOd63PTqZFCLJp3vW2GrTJz6zjKX5H06jFxH15W40jhmlBqRdNPxQ==","signatures":[{"sig":"MEYCIQDo1LWiRptPACHjDpb/vT0H66DC3qBfS1tfgMhhEZL8UgIhAI+5qhZ6kkERl4PHnjJqY36T1cubX/LKo/YP/UkWcILp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20542447},"type":"module","engines":{"node":">=20"},"gitHead":"254d7873c6f3999a326d53c04cafe32fea2f2aed","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.4_1787749372125_0.1444281064870614","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@ours.network/messenger-server","version":"1.0.5","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.5","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"5d19980a85386c696cd2fb7b991eff99308f00c0","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.5.tgz","fileCount":155,"integrity":"sha512-VQFhKAOchIyAZATiQAPCAYAtErk3w3TSxE2tabkEwMxY4VqOGYGDWLNMM2GgTskS24QpyvVajwkWXVKfl3sOhg==","signatures":[{"sig":"MEUCIQDO4/yTCT5UZJpRphWSc60H46SvZkV9e06SCX+CeF1fyQIgLa+iZBvmzNxrvMz8modstljTO7YqIRRxBt7cC+pxZLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20486997},"type":"module","engines":{"node":">=20"},"gitHead":"c4d5adee61a14b270ddbecea566e6356b1f2d62a","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:html-preview && npm run test:design-contract && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-html-preview.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:html-preview":"node tests/html-preview.test.mjs","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:design-contract":"node tests/calm-workspace-slice-contract.test.mjs && node tests/calm-workspace-final-contract.test.mjs && node tests/browser-image-compression.test.mjs && node tests/browser-calm-contrast.test.mjs && node tests/browser-mobile-banner-geometry.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.5_1787765049508_0.5982236383972728","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@ours.network/messenger-server","version":"1.0.6","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.6","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"265a876ca4959379c5f21eb8da87cb2cf1855eba","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.6.tgz","fileCount":155,"integrity":"sha512-SdzfuSOjRZS5XRClm/B4jlTxE2iSJSpVK/QSm+9DOYEBNlCPMfP9ZkLQO1hXkqU3FIv4qjh82cE6IYeIUSGH8Q==","signatures":[{"sig":"MEUCIQDnisJQglQEULWIJZ/8j820xfrq31hIC2p8oa1BYGnmKAIgJZcpyAacCuTnJR3AXe6PoNals5YY9gYx9memJwS+neM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20542447},"type":"module","engines":{"node":">=20"},"gitHead":"bfdaf62f987be43dd555ef9a8eaace0ef12e5845","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.6_1787772793576_0.11399688587172574","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@ours.network/messenger-server","version":"1.0.7","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.7","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"56c623a1988da291034dfad79f3375a40d1f554d","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.7.tgz","fileCount":155,"integrity":"sha512-r3n+mnu4rOtC6vhbwK8sDo3dfFyNAe4M+D//YGn0TpF3DttzSIEDOISsGr8kTV0d3hfRqBju0/wOq3bzDeuC8Q==","signatures":[{"sig":"MEYCIQCG3mQzKjkeOfTRl8u88EIYsmctNG1zxFxxNHSK5im7ggIhAK1ABkb9VvuSr9ccLZUGg6OdSJVPUWk+9HOmxxSXM1tH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20544478},"type":"module","engines":{"node":">=20"},"gitHead":"3b15cbf8a6084166abc26693da2f97472f97e024","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.7_1787784447963_0.2951242601510182","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@ours.network/messenger-server","version":"1.0.8","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.8","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"8312f0e9dc9643e086f5968144b45f8a3bc4f68a","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.8.tgz","fileCount":155,"integrity":"sha512-MrklgN7c5qSagHJeh16vDdur4wH6ufuaBiwO5hw62nVfAJZzZngC5a0yO23WjU4STp++7J5m9X+MFEH7OnzNTA==","signatures":[{"sig":"MEUCIQDt7rHmKt/gOip0b2cg34XS4zB3yTX2S1mkXy7kz3SXtgIgPNGm3IShDIx1sMm7eCLbfSIS/u9J11pjBT67Y1+23LM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20544983},"type":"module","engines":{"node":">=20"},"gitHead":"d2a52cbbd5c126ce99102f9dab82a41c470661cd","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.8_1787799759444_0.10717703018126623","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@ours.network/messenger-server","version":"1.0.9","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.9","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"5ac3faa7c4073b5d313b4e42bc3d826dbfec54a4","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.9.tgz","fileCount":155,"integrity":"sha512-k7DN25Tlo5AeN3Tj2CU/GXQLG3PtCT5TMlsVz3f10GobOceHIRxXtfo6MXOpgG6oPUOggaptlhZhumDpJaktOA==","signatures":[{"sig":"MEQCIGosO9HSfq5Y76tqSzXk/KDmIBWaIcENP29oHeYCrm0CAiB2DKLkVXsNd066jNlmPQIRu2FD0mAWfrFQT7pvjkcLSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20568477},"type":"module","engines":{"node":">=20"},"gitHead":"4d3b46040f000431c16692ec635cbb487b6218cf","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.9_1787812815289_0.7828208977767688","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@ours.network/messenger-server","version":"1.0.10","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.10","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"e0f39f7f90fb8e7c4b54182559d923c62bfc690b","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.10.tgz","fileCount":155,"integrity":"sha512-ekITrqXq9kdOLZbu4RzjMJ0hxreAvB/wEqOZsHVLUXDIL7LO2KiMS+flVeC5mz5UWJeTOvaqAoOW0fHh7JdNrQ==","signatures":[{"sig":"MEYCIQCPRtwh380IjWAbr3uwQDNcKw62DkTehraLDWDMs4O81wIhANqw/p0ninVj6AwgP2x3dZOAvkFR5INPkp7SwTwAVjXd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20569258},"type":"module","engines":{"node":">=20"},"gitHead":"4fdbcfd825d44710b00578b4b8358444fcdd493c","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.10_1787816623846_0.9938185087465141","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@ours.network/messenger-server","version":"1.0.11","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.11","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"62a9b52203462c1c6172b47f2ef39d083f99379b","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.11.tgz","fileCount":155,"integrity":"sha512-vn6fHAh79jKhsVQVbBUP2uZfaPhqe8bRHDkkA/n/w+2NfxLcRsIZY7JPtNsZRvWmXcFcgjek8Qj/aVvDNZohTQ==","signatures":[{"sig":"MEQCIAcW6xbPaIoK0ohPPcdlfy4LRj29w6iRc70fjNYtXOdHAiBG8et9YGehJ/2S3ydUlGi05kOjIA8mMVqCwijIS9Mugg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20860685},"type":"module","engines":{"node":">=20"},"gitHead":"31a3834ab34539ece7cc07af9ee4efaaef5c7151","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.11_1787829022725_0.1587875539003114","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@ours.network/messenger-server","version":"1.0.12","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.12","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"744f1c01fb6dcfa761602e9f28556adde385115f","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.12.tgz","fileCount":155,"integrity":"sha512-R5jAU4XA9/uADerRme8PSnw3dYcJzc0nlmOjyoXwb81aC7C1TfkC4L/nOlPL2eVPXbE3eg4qAxxbrK/BJeqvBw==","signatures":[{"sig":"MEUCIEeRT8DfE/9yrpG40MBlBCBHK3vts25CQ8DyfJ5G+VNoAiEApS2VGF9egX5PASRFnBtMSH0BxSpuYZLnz9IR8f+UdH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20861789},"type":"module","engines":{"node":">=20"},"gitHead":"44b02891e4845ff6027694986cfd703bb4727c77","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.12_1787831005099_0.3279236880468692","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@ours.network/messenger-server","version":"1.0.13","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.13","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"a55cc22b74f88ad4193af6dd4677a40a28776775","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.13.tgz","fileCount":155,"integrity":"sha512-lODiG5fxZZLFr0i9RwFsJV4ypyJBjNtHlDt9yXW9rmfGmG1IhgFGCiRtevMK2EInVMwA5xyIkBOnCELZgDHu+g==","signatures":[{"sig":"MEUCIQCD1UfY7seUKc2xpHUnP4zqM9iNODronCDqQgmB+TnUFAIgEPG7stgjVRA/u99V/HPOkcj4w3BAXRl3UBkcVOizudA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20870422},"type":"module","engines":{"node":">=20"},"gitHead":"70c833a0c5219f7b32407c46aa56efdc76e78ed3","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts && node --import tsx web/tests/visual-viewport.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-ios-composer.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-visual-viewport-geometry.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.13_1787897705780_0.6610601658891522","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@ours.network/messenger-server","version":"1.0.14","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.14","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"c0eef28485c7b51c74bedbb02bbdc55aab25e028","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.14.tgz","fileCount":155,"integrity":"sha512-cHJanrV+/Kg7M7u5PM+W5wKC1IgBZSfslI9AnqtjvnFL7EgOfTxigxmksRNGhZJE1rOZqSnWrj2hmIYByJxeTQ==","signatures":[{"sig":"MEQCIE5Ra9uxKPX3b2eqYQ4zlm3KGFEmlawnbr/5Wu4/R6ToAiBHPkLNpoRBSSeDZHiNOrl/nNgsQxa0qRsUX/jgP/owxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20861789},"type":"module","engines":{"node":">=20"},"gitHead":"e70b0925462c0370a579d032f2b11a0acca08182","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.14_1787905030007_0.8853166918633697","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@ours.network/messenger-server","version":"1.0.15","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.15","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"f259c41ab7bf34340e7d5cb97ebc051fa5cf9cd0","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.15.tgz","fileCount":155,"integrity":"sha512-+bszQa2sW0ZvGGQ7XzTkB+QdN1kcMtKbbKGNDTWotHhNwQdImeweWImcbN37gQjbQCAaXo31Dm7uq8r1jKP7+Q==","signatures":[{"sig":"MEUCIQCQKTK7Mcum4uVaPXIx+f+WIZi8rdLqA1qGjr4D65nFeQIgSdMmdhZnx/4qMgA75Rl+NLblggLeXcv80eGWg2+U5BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20867233},"type":"module","engines":{"node":">=20"},"gitHead":"a1958d9c691aac151a47ca57e2da21c18f5649e1","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.15_1787912830598_0.2615704712365836","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@ours.network/messenger-server","version":"1.0.16","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.16","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"9e054f805a8d5211aadca8be056f93d134ca85ff","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.16.tgz","fileCount":155,"integrity":"sha512-hIZ+QkR9P6Hao/HPrrDCcFkYiVoVoTMpOsUaT/mORViqbMrfMkZphxBHwZZsmdqHK0oryBQyERDHPCySDZqI2w==","signatures":[{"sig":"MEQCID5g/K9SnyO+m2oDhJ5ASvdogdSUJDp59JCnXqUAJTtNAiAaMUjr+0HdK3DloKu1sA+Gj9NS5Hz8Rm19mu/EBoUvXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20867060},"type":"module","engines":{"node":">=20"},"gitHead":"85f2701df6347d83a115486b3fb2843954aa351c","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.16_1788274475320_0.8107207286444464","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@ours.network/messenger-server","version":"1.0.17","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.17","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"1c9608d7e631507da14a1fe81bb724dcc3864c10","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.17.tgz","fileCount":155,"integrity":"sha512-Kl8rzDUjDiyC09D1Fe9AwLzdp0h01uveJfoSpCYL3EujkKcjRDP/T3QoIZ2yBhO1us0CbVgZof8mReLtqMUE9A==","signatures":[{"sig":"MEUCIQDuk+SG4zan4QyfGSiEFLWOs9qX3hoY79FBqyv0pOXydgIgaYgWxcXUj0W7kf5dEGNxLJrEMjc6cFNv4+YPTBaAWA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20868420},"type":"module","engines":{"node":">=20"},"gitHead":"c8dea3f570c6c3eb64b6e4b1a60fdb44ab1bf231","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.8.2","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.0.2","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.0.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.17_1788343129126_0.5246862568017139","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@ours.network/messenger-server","version":"1.0.18","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.18","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"54f59503d350e0592a51d9ea972c849c94c9fe4e","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.18.tgz","fileCount":155,"integrity":"sha512-Pc8mzMc2om4175fiplReFWJgG7ducnjpuBv//0wETlmYj6ilEZ1Obt761g85B9pnsRpS5CDqiR+yb1SdZJ3gDg==","signatures":[{"sig":"MEQCIDi4JP4eYpKiozyM+zcD6NP0gLvneEMkZ6Ow8YupkRbWAiAZ9/yJBlgW49hLzV9hCoqH+h3HnO7u0Ew3uQ/YYxXLWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20959925},"type":"module","engines":{"node":">=22"},"gitHead":"fc69d758b33ed660f9f4fd4ee5e9b44aa0fe1b7e","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.18_1788439150982_0.29082739204571606","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@ours.network/messenger-server","version":"1.0.19","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.19","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"9e6a182174d43711f9afd46dc64da83a4eae7e5c","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.19.tgz","fileCount":155,"integrity":"sha512-GlABQECWSmixq+NGKx//GPA1yFADJ6cnF2S6aQ98BPY4BIs9I6vt7DatB5wp1F1UiWJHMwNhmzox698Rv3idmQ==","signatures":[{"sig":"MEUCIQCOHbZrl24m7RkUeVnbB6EuLRpC3BMwrL176pIhsZjpugIgSTfZQIYe6ikmDghMQw5SGhElDaxEeFDnbU6I++n6lDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20964242},"type":"module","engines":{"node":">=22"},"gitHead":"f1dc841edc1ccbc08358a215d7340305201d3f16","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.19_1788445135379_0.6388003416311427","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@ours.network/messenger-server","version":"1.0.20","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.20","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"e0bee157503375f13c776c485c0cdf6b2c453287","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.20.tgz","fileCount":155,"integrity":"sha512-ofaZgSIn11nRJpBjkpitR2e4ZQsCn5jJGvE7Mm2zkIzjx6EkbF1qkfISRdD254FeqGCuTkDUvgEMNiKfN0oukA==","signatures":[{"sig":"MEYCIQD2a1PY2HfOfLwIUDwtWOUCIoxlap0/7mPnBGCJkt1dqAIhAOjPczKW4i/sDnnjZ5Qfc7PY2U9vYOXymNvLO0OVGVMx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20964605},"type":"module","engines":{"node":">=22"},"gitHead":"edbc872756078164b7b70cb9292d032d5b574d64","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.20_1788458915166_0.14560202665686983","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@ours.network/messenger-server","version":"1.0.21","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.21","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"61d4cb0bfe8383188eae7adf36a4a2a8afceec9b","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.21.tgz","fileCount":155,"integrity":"sha512-w7fS/ZFjxps2975FtFpDCmFFAFcgfKZ7m333zXwzNUmuzpTiWyI/v6kVE9BrV8lNkCkFTxBjSCUSGMtmRa/q2w==","signatures":[{"sig":"MEUCICsVGw/it24A8UvzBoQndNF6PgrG3nbgphSH+kP/zQu2AiEArMPAxoBjFrpF2sVdrRy8QmX8LITWHiWkn6iGyos+XW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20967180},"type":"module","engines":{"node":">=22"},"gitHead":"b7ebcacc569c05f8c0dab75f77290530866f6f55","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/events.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.21_1788472883314_0.5132103725253805","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@ours.network/messenger-server","version":"1.0.22","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.22","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"ea08b0540da24428788bdc7b027fd30d8a713e15","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.22.tgz","fileCount":155,"integrity":"sha512-8y2QjvKewuNr3fbJN7iGWovNQde3bbyFGfgp72dXkEHHPoLNb1LSuLbFhhUtejkUvurTQ9M6tSJCDLTboRLp7A==","signatures":[{"sig":"MEUCIQCGyhc0YF8N+/X/3qFTT/8UClqgXvWx0KuNgl7U9wvhXwIgGU5obk8ugymFXOF4ZktSIi6Zz0zQRXolQZZpYp9ygcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20980540},"type":"module","engines":{"node":">=22"},"gitHead":"db9ae1582a88989af3ef317c73a6f93c2465e2a3","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.22_1788476701484_0.36555979816135165","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@ours.network/messenger-server","version":"1.0.23","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.23","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"727fc124a9294a5f3fbf2623dadd35d6c8a5c6ee","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.23.tgz","fileCount":155,"integrity":"sha512-z9owx/kJSiYjaW8hChTa46sVY2cqiIAORFBYFpkOWAGMX+AC35eF/qYSO9XV4duBO6cLDXQELul02CvoQA7AQw==","signatures":[{"sig":"MEUCIGKO7/qwairUEUQnnWUY3mYoRJu7IRqFagEJhHRpCkqoAiEAmsYpoarTaQ5Z8McP8jsXG4S+UOEqDmqwuKWzaYRlPa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20980336},"type":"module","engines":{"node":">=22"},"gitHead":"f0fb7b3c92e6e0d6c74da2b1a83a54eb71bf7925","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.23_1788522447922_0.5823386937969814","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@ours.network/messenger-server","version":"1.0.24","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.24","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"8b2544893d9e0207ab1d79759c15f07d3db9511c","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.24.tgz","fileCount":155,"integrity":"sha512-4Dl8KnMZICXgkW1nsPsGgcIVuHF7PEPU7s39wpxA9CkD3R1ZTfTK0uefowoGa6F+8keLQIu06iM0x5839HVzGA==","signatures":[{"sig":"MEYCIQDkP4AP1dK0LkjBkclZm/dB0NbYA/PqS37HbwH1ksOT8gIhAOcw504eeD5m65MV54fi5eOok17xc8hHFgEE3aiAaBhh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20980846},"type":"module","engines":{"node":">=22"},"gitHead":"e1384f5556f308cc8436bcb777d7335f12b80ff1","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.24_1788529596401_0.9951238832542888","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@ours.network/messenger-server","version":"1.0.25","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.25","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"949ce5c7f3af439c8a5315d31bfffaef5e2743d1","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.25.tgz","fileCount":155,"integrity":"sha512-SvGyDJzddWv8HaYRpleeRfLIVpo875N9xZosr/aUDFgnWvquwwcHclGDsl0gt6O7nKwCIm80iDK/5tyxGkmTNA==","signatures":[{"sig":"MEQCIAjwK2nnZ+/q2k7Unb4TKOVAwbTh6p9n8Y+R0G+xgAfZAiA9GoIJoU5BINhpe/tFybimZL/VPSCxWYuJL1OmrOPYvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20995431},"type":"module","engines":{"node":">=22"},"gitHead":"3f0c85238972a5d1165e23494af799ae8342113c","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.25_1788645019588_0.7443642806106612","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@ours.network/messenger-server","version":"1.0.26","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.26","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"51bf2875d7b2c0b460430625355b465531a10791","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.26.tgz","fileCount":155,"integrity":"sha512-us94XsheYfI0KTXNtDBwZhu9a4xv4C0XoSuIt8KAlMGamETCm8fQW/6n55mOuBzPfnZUytCqDw6/SjLHixdQYQ==","signatures":[{"sig":"MEYCIQC8gqNUIyMn4Pgo9hsQIit1c+Zar/OfnOzNNw8ER6v2/gIhAJ8tNPvpyoyWPIpu/CsEoEQiY3eso5FgdVormZBAGFQB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20996780},"type":"module","engines":{"node":">=22"},"gitHead":"bef39eb993947127d466f9647e958255a54ecb06","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.26_1788680961462_0.5277731305357625","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@ours.network/messenger-server","version":"1.0.27","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.27","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"75737ebe7f58f3376f17419e1d22c4fb00afe4ae","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.27.tgz","fileCount":155,"integrity":"sha512-GzCrEeLORoipwWZ5mrbsMEuXDgXHn3+1kn+60V+pCacwd/76LTqvuEVtu/IFNacjES9XKdOqIbeYdkKUZ/Kghw==","signatures":[{"sig":"MEUCIQCJLFGfvXjK6cmr3Ahzp9s0m+Z0Yl6f8hoLBCP+F+s00wIgJLH00yyqS33l5+Bw7sUVyqh5UYv5X0Po8Pzo0u9djpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20997000},"type":"module","engines":{"node":">=22"},"gitHead":"afc1c680416b52d2c6a87a3f8f512943e0288d32","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.27_1788684679381_0.6651216046953823","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@ours.network/messenger-server","version":"1.0.28","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.28","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"6d29462a8f2e737454773cc785e4804de529fb23","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.28.tgz","fileCount":155,"integrity":"sha512-a4+fd6IePlPNju6q6zJmmYMAwUEgx3LJm9GoUW781k7XJi+nAs+WiHt/RyOrmK/qzjRaUj9Ze9+7eNPClPa/dA==","signatures":[{"sig":"MEQCIBufUcwWUZX0wwDkVQrY5fTz1msg8GwSRgjSta9vEOwQAiA71W6FK4crWXWmoVX8DzU6EHJC3KR6NpXAfr7zVuIUYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21008177},"type":"module","engines":{"node":">=22"},"gitHead":"b4028d4024f3dc864fa4a931629229470a11a4f3","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.28_1789025129500_0.4912829917486312","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"@ours.network/messenger-server","version":"1.0.29","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.29","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"63cc615f1e4e8fa1036da59d4d590c19f4644cec","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.29.tgz","fileCount":155,"integrity":"sha512-X7HToGOlnnzwqPMFHNNzBkodbuRgQNZpPf9sLwBLnJCmD58eJxsJM8QbshBsfnDCLA1vmuz0dVpWNbe9TWLsHA==","signatures":[{"sig":"MEUCIQCDI5eB4anpGaAbx9k2AZp1pBUKYZfuYtBa/Yf8JxlwDgIgPOTFHur8NBHDD3cy/bniWJOyFG41I/GN6YwxKPEjEzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21023063},"type":"module","engines":{"node":">=22"},"gitHead":"4147c1312acd159c083bdbc11871c64777d7f915","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.29_1789158569714_0.3888087646996332","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"@ours.network/messenger-server","version":"1.0.30","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.30","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"a9778bdbb0aee42f5ffa1c51430ebf12de588995","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.30.tgz","fileCount":155,"integrity":"sha512-NKxxj0V+Hn88FK7s8IHSP7Tv6kU6KxnjWtyHf3ggWd//+0e4gBjrB/jiT0dHx06uUdBwTXi+2i7eC5pvqijq1w==","signatures":[{"sig":"MEYCIQCoNzeE6if1L1JfwrN4Q8Xl4ryZLslPkonT5uk4mzn3BQIhAITIP9KjXmTpdeIRD7BuOKOOxNMbVagKJBzx5hJPgzOD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21262609},"type":"module","engines":{"node":">=22"},"gitHead":"85ef389e9da7ddd984a456db550ce39978fd8a18","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.7.0","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.7.0","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.30_1789234437805_0.7293954608850157","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.1":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.1","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.1","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"d63b794c53b254d223034d3fe0ba48545e8387c1","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.1.tgz","fileCount":149,"integrity":"sha512-XB6N+Ppd4txmI0+2ZVFMWJxXi4DtMIDlFSHOzszNM5hopFebpw1Df+KKCK4Cgd/LZUkoOOYWGEYpib9m3RbHWw==","signatures":[{"sig":"MEUCIQD3VkCQQN+nSsGkgGZxF/f9j/zrGjDSZK07B8kdoWdudwIgYupAUU0HOrtRxvGgbZTruYhvcRRoJs9LGv9QIG0+cV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC7JrvJGMLH9wkaJyNY7Jhy0rly0+s3QAyPbgYHOuL0YgIhAPp6ZqiYry/auQxDOMD0438sda1Xyw0F1eyAxgeDzGy3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21301215},"type":"module","engines":{"node":">=22"},"gitHead":"1f3321299aaedb9412f2a4b733c317b3ccdeccf5","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.3","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.1","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.1_1789733719115_0.3545223480333677","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.2":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.2","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.2","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"42e1515bd533adddaa6c97e774146154f3a75a1c","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.2.tgz","fileCount":149,"integrity":"sha512-yWBFSzUwoKHfn7z//uesWmEzGOYFfgFsjBr7KXhGGAeXRvGbbbt1OHOg+ZPNhastXipxOrg+oeY94pQwJClxkA==","signatures":[{"sig":"MEYCIQDmMdMkfsU/E0GDyHOcylkIevVnk5waWpmx0+kPfaZXgAIhAOrh4dnrGa8gR4wjf0DW+M7VmgxcxiRn/5yaT95vVipq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDLLyTye4daF/yp8eOTig7lB++k7OwiKTr4WUyGIHPH4wIhAOFsq77mNs95x6Jwgtaa2zr0s0xBeJojGnTIAcsL7sb8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21301384},"type":"module","engines":{"node":">=22"},"gitHead":"19b1aebbc11ef6638c161e3995843539d0fbddbe","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.4","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.2","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.2_1789829734100_0.9896790143975607","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.3":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.3","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.3","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"306dbd7e57331f49cfcf8371ff0389ba34dfbc71","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.3.tgz","fileCount":149,"integrity":"sha512-j86POD2U2yh7jiIqbIixDu8TpEpaVf+dHLs3adtTRfTs6V7ucl//digdkyc1uaZrUliRduxXKBOrb/1Nu648xQ==","signatures":[{"sig":"MEYCIQCt375WjAVpKhfci1XQk4RlhACZARSybG5MXFLFovKGxAIhAKfc/F5KiRh592GZV1d6BiBr8LZZh22nkMQFQ4h+GXFr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDoLIA2mtv1oJOkJUD9V5k4akndVYnnLPdBL6HeNUPGAQIgIzsVwBTsujZcrsWQ65JDkPQzkqHreoh8QKBJbOCoFJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21298331},"type":"module","engines":{"node":">=22"},"gitHead":"a01270ac9718642ebe0303ab1649e13cd8dd1eea","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.9","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.7","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.1","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.3_1789982763011_0.0676954248377144","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.4":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.4","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.4","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"2fb343d56790c62d34344623d5aff1ad21087607","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.4.tgz","fileCount":149,"integrity":"sha512-YuMUBzCvHjUchoITtugj9Oj50TojPQd/lR2VfrqgiZUbVnG1hNZVvcSF/qIrLUB/1wrBcXHbPdX+tNvET5dCmQ==","signatures":[{"sig":"MEQCICBszctKCPGF0h0D63q33+9vcMS/+3iPCR509Qjp56FEAiAoRJe3YXaKjEVdWp6E2ktfEyiJ6T3iJRDD/Ac2qbMGWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICu3J+PPhb/Z6HxiQnQt3QEMmiotQw3JFHJzFP7z4eNhAiEAt1a6ZBSWwuQqAGslbLV7cxDTeFvllPhULVrIFmcZ8+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21298332},"type":"module","engines":{"node":">=22"},"gitHead":"6495f74ac962da0827f2d923377f4a77de775a07","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.10","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.8","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.2","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.4_1790025698083_0.975106703308577","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.5":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.5","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.5","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"2cf077f24e84c74ef6593d651fd9d7c224e9e1b3","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.5.tgz","fileCount":149,"integrity":"sha512-4UtUeq+WNgTSQjeWKMAer7mSPeue8hUrY23AgnSwreBfVui4GjN/aJ6jS6Znz9v3nS5D9DM+faeW1JVHEpgyDg==","signatures":[{"sig":"MEQCIDQeAeOmg0dQABPg25TVPeXztrsB4igoCOK37/LySSS5AiApWRgM9A5PBDkwgjZruBnzFoFIs8i5pENoDCWLQ4/DTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICsROSTKgTb1YBg0clsK0b4e+TfWEy7suYdSo56D2ZqTAiEAod/iepiDQQsOZPleeljpfWaL7sKhK3QFe2RFJm9kYKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21304333},"type":"module","engines":{"node":">=22"},"gitHead":"b01dc41f93adf629f07821711ed8ac3be01a6a10","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/base-path.test.mjs tests/browser-base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.10","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.8","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.2","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.5_1790104478094_0.6313350025521207","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.6":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.6","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.6","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"b5075e40004d285ec14ba88ea247d91f5fab52f4","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.6.tgz","fileCount":149,"integrity":"sha512-enlos6BWfKiHdUNLRoPMzb0yfxRLWvfxH6uNaOjfAG88BK5qo74hQLwQ7CR4HbVE6OCDAGPLBe1BV7dQSRsbxw==","signatures":[{"sig":"MEUCICOH9kpNFRyea0/rCRw2ve9ZnHZqyWVrn4O7HYmC2KaOAiEA+e6YRgf6nLxoVuDkxHb//TkvD/s8ePJMhz8a75nFOWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBc6Ua+IwL1V0ftD/9fVcqwwLKvw5dsE6T3fFSr2UWUBAiEAwmoaQtdu9BQDI7A2K8jPWpRbM3GZ3OlGZbDvPyyad6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21304333},"type":"module","engines":{"node":">=22"},"gitHead":"5e2ca2be5789a5300fcbed08a0dd26b9b59780ef","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/base-path.test.mjs tests/browser-base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.11","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.9","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.3","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.6_1790158756376_0.3569815860691459","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.7":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.7","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.7","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"110754d9c8c972eea99b8ace65b23f01001908d6","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.7.tgz","fileCount":149,"integrity":"sha512-YydbQ6FhXbGfILM7QHKRnX2rWXZ8vxsoCDlFgek/8+ab3aCrfmzCAqO3p4EA/2GGkW2x0YlVe+DndPe1kJG2RA==","signatures":[{"sig":"MEYCIQCN/MSOVh0TAegHQdoSYsshAQ+2IQ2WiXMeH9xjoTXtmQIhAKj4H5GNncKyJ8isRYhg7s29gOYlRsPhKH45mxYhzOKh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEoRREjdNRDGbo/dw37mmNszBsIumpOM1y0ch0nnv6gyAiEA8oxd89MuB3W2ynBjbxowVC8h+X9KoMmRmNsOHq93ILI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21307330},"type":"module","engines":{"node":">=22"},"gitHead":"be299784a86dddb4fa1962ff5fab0211ec564adb","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/base-path.test.mjs tests/browser-base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.13","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.11","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.5","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.7_1790452345899_0.47674036374254936","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.8":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.8","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.8","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"12838eee8de678e599b9fc40605a40c34bb84e71","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.8.tgz","fileCount":149,"integrity":"sha512-F0ucI09DnYCEnlB4u82T/J8cwEpkU0aRp7VXqaGj8vsmgGgDQIVISrFn86sffcgjbfZpdqCxuZEVlF7DeEDDTQ==","signatures":[{"sig":"MEUCIC9Ioo3P8/gdu9RzM7KH0mu53BaeJOZoDzXUnveodloSAiEAjTfSPM2rAt4kpdKqZZAARKZS1JI9Hmvwmxoe+snnnwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD8GytBHpHR20aAuZngtQoWEyUrmoPsNtSBtUrJxKaUOAIgScuUFYbT6MLMcE15Orr8lDOgBo8l5JzpHBWEnGF1Jj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21307330},"type":"module","engines":{"node":">=22"},"gitHead":"1ebbcbfe94eaf25c0cbca8c99cac631ab907854c","scripts":{"dev":"vite --config vite.config.ts","test":"npm run build && npm run test:swipe && npm run test:timestamps && npm run test:mobile && npm run test:mobile-webkit-ci && npm run test:startup && npm run test:offline && npm run test:loopback && npm run test:browser","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:swipe":"node --import tsx web/tests/swipe-reply-core.test.ts","test:mobile":"MOBILE_BROWSER_ENGINES=chromium node tests/browser-mobile-layout-webkit.test.mjs","test:browser":"HTML_BROWSER_ENGINE=chromium node --import tsx tests/browser-html-preview.test.mjs && node tests/browser-room-envelope-matrix.test.mjs && node tests/browser-pwa.test.mjs && node tests/browser-accessibility-controls.test.mjs && node tests/browser-pointer-touch.test.mjs && node tests/browser-accessibility-preferences.test.mjs && node tests/browser-typography-foundation.test.mjs && node tests/browser-unread-positioning.test.mjs && node tests/browser-motion-material.test.mjs && node tests/browser-composer-focus.test.mjs && node tests/browser-typed-commands.test.mjs && node tests/browser-slash-commands.test.mjs && node tests/browser-slash-design.test.mjs && node tests/browser-scroll-stability.test.mjs && node tests/browser-reply-navigation.test.mjs && node tests/browser-message-control-scroll.test.mjs && node tests/browser-mermaid-theme.test.mjs && node tests/browser-mermaid-lifecycle.test.mjs && node tests/browser-cold-open-sync.test.mjs && node --import tsx tests/browser-message-lists.test.mjs && node tests/browser-message-markdown.test.mjs && node tests/browser-voice-duration.test.mjs && node tests/browser-file-bubble-layout.test.mjs && node tests/browser-voice-waveform.test.mjs && node tests/browser-receipt-render.test.mjs && node tests/browser-receipt-converge-order.test.mjs && node tests/browser-media-panel-scroll.test.mjs","test:offline":"for f in tests/base-path.test.mjs tests/browser-base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-browser-lifecycle.test.mjs tests/sw-push.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/pwa-contract.test.mjs tests/update-check.test.mjs tests/web-contract.test.mjs web/tests/api.test.ts web/tests/events.test.ts web/tests/presence.test.ts web/tests/router-store.test.ts web/tests/components.test.tsx web/tests/command-schemas.test.tsx web/tests/command-pattern.test.ts web/tests/markdown.test.tsx web/tests/voice.test.ts web/tests/read-gate.test.ts web/tests/receipt-presentation.test.ts web/tests/voice-duration.test.ts web/tests/voice-waveform.test.ts tests/room-preview.test.mjs web/tests/receipt-apply.test.ts; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:timestamps":"TZ=Europe/Prague node --import tsx web/tests/timestamp.test.tsx","test:mobile-webkit":"MOBILE_BROWSER_ENGINES=webkit node tests/browser-mobile-layout-webkit.test.mjs && HTML_BROWSER_ENGINE=webkit node --import tsx tests/browser-html-preview.test.mjs && SLASH_BROWSER_ENGINE=webkit node tests/browser-slash-commands.test.mjs","test:mobile-webkit-ci":"if [ \"${CI:-}\" = \"true\" ]; then npx playwright install --with-deps webkit && npm run test:mobile-webkit; else echo 'WebKit gate runs in CI (host dependencies unavailable locally)'; fi","test:reply-navigation":"node tests/browser-reply-navigation.test.mjs","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","jsqr":"^1.4.0","react":"^18.3.1","parse5":"^8.0.1","qrcode":"^1.5.4","mermaid":"^11.16.1","web-push":"^3.6.7","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","framer-motion":"^12.43.0","mdast-util-gfm":"^3.1.0","react-markdown":"^10.1.0","@ours.network/sdk":"3.8.1-nightly.14","@radix-ui/react-dialog":"^1.1.23","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.3","@eslint-community/regexpp":"4.12.2","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","vite":"^6.4.3","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","tailwindcss":"^4.3.3","@types/react":"^18.3.3","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@types/react-dom":"^18.3.0","@ours.network/cli":"2.8.1-nightly.12","@tailwindcss/vite":"^4.3.3","@ours.network/daemon":"3.8.1-nightly.6","@vitejs/plugin-react":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.8_1790458835146_0.7558987674924382","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.9":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.9","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.9","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"9aa14fc2da8195441ff09d72e0b8979e5a4387aa","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.9.tgz","fileCount":6,"integrity":"sha512-bpyXDrcOupRtBg/4Lk5+FxY/OwD04arK6+NkoXoL9aKpeXTIO3hvfIKDQyTlQISo7TD4DInZCU59L8eJdUrjiw==","signatures":[{"sig":"MEUCIE1TsdbNR4xGgATLK488aIDziWmb8yEcPnvKiwHnQSJNAiEA6Bg4pQAi7kuE8317uxbDpwLl1Ts15fWt3UOwgHs5oic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFdkXFmwNOAxiFXZmCiZjZPqSXsQMUOXuhQYnVbSCqlXAiAUPC+g8exNvXfGarsaoDmxz+chxwhuzNhU9XOJR5WufQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872579},"type":"module","engines":{"node":">=22"},"gitHead":"6a01873ba636d187e4410aef45723a5a77d7d691","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.12","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.9_1790703972927_0.7081959293642097","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.10":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.10","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.10","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"219c8a76d03881568816ba36aff92221cea5d095","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.10.tgz","fileCount":6,"integrity":"sha512-1mEDuW49WIWC3utEmC0jWL5SIfvpIFIXT67tSy+CuzpYkEM4HsmB3+We+Ysb+QWLp2QCrPjaYJdcq7uCFSsSfQ==","signatures":[{"sig":"MEUCIFPTG0nEMwNoe0q8SPUVKpvcPRyvyprnbPphxwmC9t+aAiEA4JzLtOmFdCpyDnRw9o36PyDtR8JOdAhVsXP6gbRoPrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3RZayPRbDLTAa34TcmC8ANwBZen2ffxibDCkhBEm0VQIhAMs8qewtW2W3wBU+44ucsOin57WWyabJoEG7ZvFLAw1j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":879291},"type":"module","engines":{"node":">=22"},"gitHead":"8439d0b521650da63b97749c8bd7ebd48826ef05","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/notification-producer.test.mjs tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.9","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.12","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.10_1790798121708_0.03312932416555836","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.11":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.11","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.11","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"e4ddf0ff1938b4dd126d57617f149dfa58239cb0","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.11.tgz","fileCount":6,"integrity":"sha512-Db1l3HCvrCoEgmpaJND1Fn8Kui0k4gNmE3eJw9mv4bh3Od4/nmoQ4eLpM/xF0UV8W8O1RNcUuUCaw6ibrt4hfg==","signatures":[{"sig":"MEUCIB8lZrYVttTKDZ5ZxE9cLlG1T5/2CiRocO3HSp268NabAiEA+94ngar1AfXVelhyL+deu0LInz5HCLizAb+Xawb05ow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDrBXI+uYNFyTwwJS5EOgoaqps51dnTJXQ1N5DfbaKTSQIgCmJTs6hix/zbVTTxrNkYprLKkV2xKLir1ck4uyOKIAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884574},"type":"module","engines":{"node":">=22"},"gitHead":"0b84916c7fa85aa89cc5fcc004fb6b7cd79a26cd","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/notification-producer.test.mjs tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.8","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.12","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.11_1790836604152_0.3589984626913003","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.12":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.12","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.12","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"b74f0ccde2624003568184751f0dd640a04c1f13","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.12.tgz","fileCount":6,"integrity":"sha512-vp7RkIYnlPDySAbFcXP3vpeOvu0bHeHWjlxOtBbYlGjGa/B7TixXbZpLYwgvbiuD7pVIaHs1muIDzG8RjJTVeQ==","signatures":[{"sig":"MEYCIQCUPuxvKJywIG9tT5GWaVNafCY0KZ3JdKe7hRLxwmV2YQIhAO9qCzCwYwim8Z5VMfN9cz7nwyJgcHMO7RN6r/0GsdT6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGmkNK0HwhNrMb3czS5hm58iwohjv1Xno3Kx27jlnKOIAiEAlexqchL0Lr6b9Gon+5NB5WZ8ok25OE6kN6Qxb+ivHWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884574},"type":"module","engines":{"node":">=22"},"gitHead":"e10c4e8733c42c146f9a97d981bc1f0f504560a3","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/notification-producer.test.mjs tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.9","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.13","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.12_1790838117732_0.21497949858059506","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.13":{"name":"@ours.network/messenger-server","version":"1.0.31-nightly.13","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","_id":"@ours.network/messenger-server@1.0.31-nightly.13","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"1bf13f2f06af55b8ec0c92329a6f764c6eddfa58","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.13.tgz","fileCount":6,"integrity":"sha512-hDosXHgQ+vyzPdSxqTz6vCaOCn0LMTmOL4TJiWplkJhzyw2c586RckXJbqNJsTa0mmodvLxW0ewZyQ/xJVIeXA==","signatures":[{"sig":"MEUCIBGmh7G7Qqv/mPwNIPbfg2nTqhrXSzIv2sXjXgCPlYOpAiEA4EaBLKzhwPOmHcd7/dLE4rQg/7Z6EPb/Qhip2rI/+eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHNeXZdUHizCYSXIu5oNZs/Kr6chvDOEsxDMTn0Ez0QIAiAMohIpFlLY3DJhpXNKKLV3kUHGesHs3sCKxDIbrfzDOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885170},"type":"module","engines":{"node":">=22"},"gitHead":"576eb18c8545184db893e09c4dfa4544bb42ba41","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/workspace-profile-preservation.test.mjs tests/notification-producer.test.mjs tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"_npmVersion":"10.9.9","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.13","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"tmp":"tmp/messenger-server_1.0.31-nightly.13_1790850039372_0.12967457695148754","host":"s3://npm-registry-packages-npm-production"}},"1.0.31-nightly.14":{"_id":"@ours.network/messenger-server@1.0.31-nightly.14","bin":{"ours-messenger-server":"dist/cli.js"},"dist":{"shasum":"7d8e05be9e865d5ef7637d3dba06c649a5f37d92","tarball":"https://registry.npmjs.org/@ours.network/messenger-server/-/messenger-server-1.0.31-nightly.14.tgz","fileCount":6,"integrity":"sha512-0lMoIadihMQqN0sdW20DF4a94Nc6bx0lnaCckSnn5VqOmvqELNdG3kRZ1Heh9VwkPEu6qNM27AR7tWpTbzvJCg==","signatures":[{"sig":"MEYCIQCG22/Q9FtpTqMXNb9/bdjRhjy0z+EGlq10Om9UymyGYQIhAP7dzL1c7x6d4cSVrr1PWkUJnliNegMC6d70sLQYL0ZR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDs4ROB6DJys5xkhTdygyaLdtOW/32qx4gVjhSjKjnKzgIgYKYHeLA+3St+qxEE2KsFqkC67kcLOh3DWqWmA2ZZbks="}],"unpackedSize":886595},"name":"@ours.network/messenger-server","type":"module","author":{"name":"Adapt Toolkit"},"engines":{"node":">=22"},"gitHead":"472ad12fdb461e51398c29e8e224d12caca9a43e","license":"FSL-1.1-Apache-2.0","scripts":{"test":"npm run build && npm run test:startup && npm run test:offline && npm run test:loopback","build":"npm run typecheck && node build.mjs","serve":"node dist/cli.js serve","typecheck":"tsc -p tsconfig.json --noEmit","dev:server":"tsx src/cli.ts serve","test:offline":"for f in tests/workspace-profile-preservation.test.mjs tests/notification-producer.test.mjs tests/base-path.test.mjs tests/build-epoch.test.mjs tests/owner-session.test.mjs tests/v1-runtime.test.mjs tests/typed-commands-core.test.mjs tests/shared-daemon-contract.test.mjs tests/room-envelope-matrix.test.mjs tests/bundle-smoke.test.mjs tests/build-metadata.test.mjs tests/production-security.test.mjs tests/conversation-page.test.mjs tests/media-response.test.mjs tests/html-preview-transform.test.mjs tests/html-preview-response.test.mjs tests/push-store.test.mjs tests/push-store-hardening.test.mjs tests/push-delivery.test.mjs tests/push-queue-saturation.test.mjs tests/events.test.mjs tests/watch-cursor.test.mjs tests/watch-reconcile.test.mjs tests/introduction-send-guard.test.mjs tests/sse-e2e.test.mjs tests/presence.test.mjs tests/static-hosting.test.mjs tests/room-preview.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:startup":"node --import tsx tests/startup-readiness.test.mjs","test:loopback":"for f in tests/shared-daemon-e2e.test.mjs tests/typed-command-loopback-e2e.test.mjs tests/introduction-send.test.mjs tests/rest-e2e.test.mjs; do echo \"# $f\"; node --import tsx \"$f\" || exit 1; done","test:runtime-catalog-candidate":"node --import tsx tests/runtime-command-catalog-reopen-e2e.test.mjs"},"version":"1.0.31-nightly.14","_npmUser":{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"},"keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"_npmVersion":"10.9.9","description":"Self-hosted Messenger REST/SSE backend for one identity on a shared Ours daemon.","directories":{},"maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"_nodeVersion":"22.23.3","dependencies":{"ws":"^8.21.0","parse5":"^8.0.1","web-push":"^3.6.7","@ours.network/sdk":"3.8.1-nightly.15","@eslint-community/regexpp":"4.12.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","esbuild":"^0.25.0","@types/ws":"^8.18.1","typescript":"^5.5.4","@types/node":"^20.14.0","@types/web-push":"^3.6.4","@playwright/test":"^1.62.1","@ours.network/cli":"2.8.1-nightly.13","@ours.network/daemon":"3.8.1-nightly.7"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/messenger-server_1.0.31-nightly.14_1790975261969_0.7357710233293151"}}},"time":{"created":"2026-08-22T07:49:06.457Z","modified":"2026-10-02T21:07:42.330Z","0.1.1":"2026-08-22T07:49:06.846Z","0.1.2":"2026-08-23T22:24:37.136Z","0.1.3":"2026-08-24T12:23:23.504Z","1.0.0":"2026-08-24T19:42:29.691Z","1.0.1":"2026-08-25T19:39:28.645Z","1.0.2":"2026-08-25T21:07:53.075Z","1.0.3":"2026-08-26T12:00:46.778Z","1.0.4":"2026-08-26T13:02:52.373Z","1.0.5":"2026-08-26T17:24:09.735Z","1.0.6":"2026-08-26T19:33:13.899Z","1.0.7":"2026-08-26T22:47:28.208Z","1.0.8":"2026-08-27T03:02:39.707Z","1.0.9":"2026-08-27T06:40:15.587Z","1.0.10":"2026-08-27T07:43:44.080Z","1.0.11":"2026-08-27T11:10:22.988Z","1.0.12":"2026-08-27T11:43:25.348Z","1.0.13":"2026-08-28T06:15:06.031Z","1.0.14":"2026-08-28T08:17:10.323Z","1.0.15":"2026-08-28T10:27:10.844Z","1.0.16":"2026-09-01T14:54:35.559Z","1.0.17":"2026-09-02T09:58:49.403Z","1.0.18":"2026-09-03T12:39:11.236Z","1.0.19":"2026-09-03T14:18:55.630Z","1.0.20":"2026-09-03T18:08:35.450Z","1.0.21":"2026-09-03T22:01:23.757Z","1.0.22":"2026-09-03T23:05:01.743Z","1.0.23":"2026-09-04T11:47:28.136Z","1.0.24":"2026-09-04T13:46:36.711Z","1.0.25":"2026-09-05T21:50:19.842Z","1.0.26":"2026-09-06T07:49:21.697Z","1.0.27":"2026-09-06T08:51:19.621Z","1.0.28":"2026-09-10T07:25:29.750Z","1.0.29":"2026-09-11T20:29:29.937Z","1.0.30":"2026-09-12T17:33:58.053Z","1.0.31-nightly.1":"2026-09-18T12:15:19.349Z","1.0.31-nightly.2":"2026-09-19T14:55:34.258Z","1.0.31-nightly.3":"2026-09-21T09:26:03.195Z","1.0.31-nightly.4":"2026-09-21T21:21:38.292Z","1.0.31-nightly.5":"2026-09-22T19:14:38.281Z","1.0.31-nightly.6":"2026-09-23T10:19:16.542Z","1.0.31-nightly.7":"2026-09-26T19:52:26.106Z","1.0.31-nightly.8":"2026-09-26T21:40:35.302Z","1.0.31-nightly.9":"2026-09-29T17:46:13.036Z","1.0.31-nightly.10":"2026-09-30T19:55:21.804Z","1.0.31-nightly.11":"2026-10-01T06:36:44.244Z","1.0.31-nightly.12":"2026-10-01T07:01:57.842Z","1.0.31-nightly.13":"2026-10-01T10:20:39.465Z","1.0.31-nightly.14":"2026-10-02T21:07:42.124Z"},"author":{"name":"Adapt Toolkit"},"license":"FSL-1.1-Apache-2.0","keywords":["ours","a2a","adapt","e2e","messaging","messenger","webpush","rest"],"description":"Self-hosted messenger application for one identity on a shared ours daemon, with REST/SSE API, focused web client, and WebPush.","maintainers":[{"name":"adapt-toolkit","email":"vitalii@adaptframework.solutions"}],"readme":"","readmeFilename":""}