{"_id":"js-message","_rev":"15-8673e865c59ae20990762d2eb114be26","name":"js-message","dist-tags":{"latest":"3.1.1"},"versions":{"1.0.0":{"name":"js-message","version":"1.0.0","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-message@1.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"d8c9fe08fe54e098c4f70693dd17942af714468d","tarball":"https://registry.npmjs.org/js-message/-/js-message-1.0.0.tgz","integrity":"sha512-Xtp7Ms03DLr04bCAIyT+udYPZM2/xrRxUDaBAWukFCh/7hzqHNz2gbB3/7paywtduB7hB8IvJUhZKlU/Byp2Ww==","signatures":[{"sig":"MEUCIQDXwETucEcxZ1Gh7VCiflz85iqUSPS9tI4q5jTBsLNeTwIgZ90PijRqJal0Fr4oPEOi8Pu7E8cXi4ShYWdvN5zWDMU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"WS.js","_from":".","_shasum":"d8c9fe08fe54e098c4f70693dd17942af714468d","engines":{"node":">=0.6.0"},"gitHead":"911fd65dc8d79f3d72630c43b8320bb0197c08c9","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node devServer.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"2.11.3","description":"normalized JS Object and JSON message and event protocol for node.js, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"0.12.7","dependencies":{},"devDependencies":{}},"1.0.1":{"name":"js-message","version":"1.0.1","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-message@1.0.1","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"2cee722d47bf0afa520d56fbec008ecfd4f73fd1","tarball":"https://registry.npmjs.org/js-message/-/js-message-1.0.1.tgz","integrity":"sha512-yjBAJcnk5Mh9+GzBneLH6mbfx3KZRorEQKaamSyqE9rlJigF02wVzQYPM9palkk6Tiq5Vy2Wiux0nfrN07EdIA==","signatures":[{"sig":"MEUCIQC+snGR0k/xl5AaaE1b5D+flRycu/TcY5V41E5DrU1kYgIgMycbJv+Z5ZBUkna2LgsGVxyifzNDm5VxgDOXdTT8sT4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"Message.js","_from":".","_shasum":"2cee722d47bf0afa520d56fbec008ecfd4f73fd1","engines":{"node":">=0.6.0"},"gitHead":"31307eb0d50dd1a496ac43987787d6718536648a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node devServer.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"2.11.3","description":"normalized JS Object and JSON message and event protocol for node.js, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"0.12.7","dependencies":{},"devDependencies":{}},"1.0.5":{"name":"js-message","version":"1.0.5","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-message@1.0.5","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"2300d24b1af08e89dd095bc1a4c9c9cfcb892d15","tarball":"https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz","integrity":"sha512-hTqHqrm7jrZ+iN93QsKcNOTSgX3F+2NSgdnF+xvf8FfhC2MPqYRzzgXQ1LlhfyIzPTS6hL6Zea0/gIb6hktkHw==","signatures":[{"sig":"MEYCIQCXr40lgSjhKDjl91H8mOoMVkKJjD4012lK13ULIeralQIhAJCXQ0cQn1ka10OUOHYSnzd8ZhER4Bi8VhxWiMR0XFNT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"Message.js","_from":".","_shasum":"2300d24b1af08e89dd095bc1a4c9c9cfcb892d15","engines":{"node":">=0.6.0"},"gitHead":"ed5af206add788fbbe87794fda0bd2522455d8c5","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node devServer.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"2.11.3","description":"normalized JS Object and JSON message and event protocol for node.js, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"0.12.7","dependencies":{},"devDependencies":{}},"1.0.6":{"name":"js-message","version":"1.0.6","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-message@1.0.6","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"53919de571ae74a34edcac9498cfc568b2369c89","tarball":"https://registry.npmjs.org/js-message/-/js-message-1.0.6.tgz","fileCount":6,"integrity":"sha512-8XaZIdqXo16FQo5jNESCCpS+XzkBTxdsSuTAMvSOaiAANaEqDdTnBP6vYRT1x6rGZl8sagvWH3zDhWjMKgHHHA==","signatures":[{"sig":"MEYCIQDUI78D0aZMgvAM9H4QVM8DGCQh9MNFhXZIhKaU6VY/gAIhAKlv0Zad9ElHLndm7e0/ccsp9B/LTX63yUmuIzrs3qVO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5O4ACRA9TVsSAnZWagAA544P/1dFPue2+D+9JN+q5aFa\n0z396Ox0UVzlRxWl91zmdEV+OcIj+HoLwNEQZ3EFPSZ3PYlGdlBYGM5pebte\nTxi6B456AurbNVkhK61qNqC4q2HII2WMSymYcU8CuW7VYRiHEwyB3q9VjdIs\n3MP2DGJMMwfUzqjhB9vENsTRUbaaiErOmzdXfVRjwujzqi9O/1P3lOA8INNY\nm6F+1z5mUzoAGoAujAuhBYM7whP+2mlQIJG9+OGzuj2ROdwKW1t2p/cb1+Eh\n6T6hnbv1eDVcfnANYDseDbxLNHdQKkp+Tk3v1CVhJntYuVf069xLY7sBpJD7\nrWIsMWaDADUTgh5iKtep5eTXbHltXrRrzw0tXs3VNF53idSi3M9wEGRXjDCl\nBpaBhNitDaUbdfPkWg2y787EzxxuXpYWss6u582WPuYJVMz8GCZYyElF94Zd\ndzVUbZWqIkzeWGBugbdIVfje9m3jiHiDaqJ9BeUmvvZ9YUhD8JcXdw8e0Nk2\nxweFrc0kmBP3Tp80nYZXwnhIdzJRnXibsa0s2kZ8p1GOaDCLWtCy7A2LXz8x\nYI8Ri8LWv9zk/ncZvN14lbpryajZiP4r0jNVNQiTXYKpvvsAEd8K/I5KsjAh\nLX7kFuKiefmV+YBT3TdcxdcHJigk+Z7wHRJlsrsE4lTt4QcZIVVsknxgUWkw\n6ovw\r\n=O+vY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"Message.js","engines":{"node":">=0.6.0"},"gitHead":"01b3dd96ebe31fe17d7153359f9d8bbcc1b439f6","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node devServer.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"6.13.1","description":"normalized JS Object and JSON message and event protocol for node.js, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"13.2.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/js-message_1.0.6_1575284224342_0.9102158661371231","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"js-message","version":"1.0.7","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@1.0.7","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"fbddd053c7a47021871bb8b2c95397cc17c20e47","tarball":"https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz","fileCount":6,"integrity":"sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==","signatures":[{"sig":"MEUCIHGAmK/tLgvfsEXMzyMJMmLoA2eom7nf+brsrkzHYmv6AiEA1BpWblPkTvlZTAiC6fbRCvCTrgGIw7HG36lCN3AiP6w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrFHtCRA9TVsSAnZWagAAd6kP/16kptXZRfhx3jZYMCgC\nYJ91z6p9AFBzDY6/KKSutVW6a0WZtPkKwWMnWw6hub02VwWDuiycCrgc99BT\ntlgfHN3GtsopsRK1InoqarW6OyXyM+jIHWQP6CC8BYqHpQAOivHgRxs0EeQx\nyrMmp21zbmdONlJCNjcZcp5giSpk1vxyVk4VXDSmZSXlFXyyGRs4YvqYHZWU\nL5kUkka5CXSZ6BYyspVM6UBq4DVa1JWsFgRpP1nrw8z+a6WtpBvzNq8Zs4Jb\nSD52LBQMemz3GXbztcuN6mgU8OblV/n0x0Fcd91PwSZ2xIcpDVK30FaglawB\n6LqRW8vcrWaG+HfbGGIeWF6ZHGrrmP6tV2CeRK6PUPexdWV8X59KPzdDheJU\ngN5jcIq4qRCOZvrEZrQdMq5Sa2AnJGHtRiwIXC6/uPXuez4t7LXCKoXnr3S1\nDii+1lQQS6QX6mZMpNYOlUa+6ke34b78n99MqujXvUPfBcflNGBxrUVuitT/\noqlskOdZXFbKiHDEqfeySMTCwG2OQRp74ObejZhHnGOTi3BKNLDH8NyjGbPk\nXIEMOVufGDh3w0IlKwQtoB0pFub7Xe/1tYZEyYf++wmUbmBzR2kQ7UpF01Yo\n5XJ7taExpOdW15F6r3HggDEZpwLwRIlaoEVsB2b4YsB3A6IuzdDs0cuStGjW\nW9B9\r\n=iLsl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"Message.js","engines":{"node":">=0.6.0"},"gitHead":"3d0fb64eea493102e10c250225a097176bbd64a4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node devServer.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"6.14.8","description":"normalized JS Object and JSON message and event protocol for node.js, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"14.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/js-message_1.0.7_1605128685034_0.9436729752077617","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"js-message","version":"2.0.0","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@2.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"ad50c3c0ae47f9252d71d28012747a58a2bca506","tarball":"https://registry.npmjs.org/js-message/-/js-message-2.0.0.tgz","fileCount":5,"integrity":"sha512-Bc9n1SZImt6ikOjp3GJuL3oVdwV62Olakqg1p4VbL6RZr7ISE1nTV4i+B1bn8EgcWHdUNLcKLb5d6ZIl3paFvA==","signatures":[{"sig":"MEUCIQCKqEJmzuwKZiTSzbYMgHnJc6qUe1UkiS2WGvXyV6m1lgIgbo0bLCnd/r+v0joPMYIofKbShp+YTNF7GGE0j9CLh3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9423},"main":"index.js","type":"module","engines":{"node":">=13.2.0"},"gitHead":"0e21ba49e5df38a326f48f0ad5a2ece7928b9b7b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node-http-server port=8000 verbose=true"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"10.2.5","description":"normalized JS Object and JSON message and event protocol for ES6+ node.js, browsers, electron, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"^1.4.2","node-http-server":"^8.1.3"},"_npmOperationalInternal":{"tmp":"tmp/js-message_2.0.0_1704963905179_0.6193593961916006","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"js-message","version":"2.0.1","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@2.0.1","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"be1c8bbc55ef4a319871ee4798bc40a8e9e8dcc9","tarball":"https://registry.npmjs.org/js-message/-/js-message-2.0.1.tgz","fileCount":5,"integrity":"sha512-XauOqiHEWJ6Zgyx6I7Dqf1GlFmmgCXP/DDLwcIoJfAEgGMy2mqpHgY92aSZ7s9KNFqMdb3Nb+uprKw0kxxvAng==","signatures":[{"sig":"MEYCIQCd4AeoMrh3/IQe08zkidMxrfMFVe+nqaWPiyY8BlqTkQIhAL3LSAxZPvb6Ye1InzCG4PEKmDnIwAKpYIMBNoNu0eSg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9647},"main":"index.js","type":"module","engines":{"node":">=13.2.0"},"gitHead":"5c04e308450aa73ce98ec2f42f3780466108d8f1","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node-http-server port=8000 verbose=true"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"10.2.5","description":"normalized JS Object and JSON message and event protocol for ES6+ node.js, browsers, electron, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"^1.4.2","node-http-server":"^8.1.3"},"_npmOperationalInternal":{"tmp":"tmp/js-message_2.0.1_1704964011642_0.8888733367864943","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"js-message","version":"2.1.0","keywords":["message","normalize","events","js","json","protocol","ipc","node","nodejs","node.js","react","react.js","reactjs","websocket","websockets","web","socket","sockets","ws","flux","reflux","component","components","store","stores","action","actions"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@2.1.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-message#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"8bd7a03fa2bfeafa18b1b6b1e63b7464c5afedeb","tarball":"https://registry.npmjs.org/js-message/-/js-message-2.1.0.tgz","fileCount":5,"integrity":"sha512-A35DTK9pQF5Pnf7U2I++QlkO7W+lvMrDubOyF/6g6UaeXOIYqCV7TFEIxA3zOjqbQHyXHOnMtGdmQBnGJ2axeA==","signatures":[{"sig":"MEYCIQCPHohQAFsbJHl9jQH1LW4jiWLGVmucc1eLoyFNWq4MQgIhAI2AsEZC4DunwiBLFsog3iiv7fPK/rEwg0E5Q+aWvK7u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9649},"main":"Message.js","type":"module","engines":{"node":">=13.2.0"},"gitHead":"0fe2555ec3a11c59f6eaaa422d056345b4d0035a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node-http-server port=8000 verbose=true"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"10.2.5","description":"normalized JS Object and JSON message and event protocol for ES6+ node.js, browsers, electron, vanialla js, react.js, components, actions, stores and dispatchers","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"^1.4.2","node-http-server":"^8.1.3"},"_npmOperationalInternal":{"tmp":"tmp/js-message_2.1.0_1704966184455_0.9367396370420342","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"js-message","version":"3.0.0","keywords":["message","json","protocol","events","ipc","websocket","browser","node","esm"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@3.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://riaevangelist.github.io/js-message/","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"0e0cdeac1dcc654fff6db60c7ba04ab16a823de6","tarball":"https://registry.npmjs.org/js-message/-/js-message-3.0.0.tgz","fileCount":8,"integrity":"sha512-WsaloKCrZHjhHlt/NPzUJeMJVLOmeM4rAUO1F7+qwJf2uyck/PMaAoteGlQ5j0L2aH/Zx6Oipjq260UsU2ooLA==","signatures":[{"sig":"MEUCICTkMDZjq7dWuNZjuuAxo3eELmgIXNSInOzXBvOyUeMIAiEA2Rk8gYO7V6vMo9IMKLBfEmjXx078ZqmBEfZgYwMrj9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH9QRHyRDnMayhOH6/Ub9QUGkBhGIMseCD4YM60rhhKsAiATx7zBB5nFdWxodoLFY7ztdAHybLwbxmNzFV4dFux+FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18531},"main":"./index.js","type":"module","_from":"file:C:/Users/codex/Documents/GitHub/js-message/js-message-3.0.0.tgz","engines":{"node":">=13.2.0"},"exports":{".":"./index.js","./Message.js":"./Message.js","./package.json":"./package.json","./js-message-vanilla.js":"./js-message-vanilla.js"},"scripts":{"test":"node ./scripts/test.js","start":"node ./scripts/serve.js","coverage":"vanilla-test coverage","test:core":"node ./test/node.js","test:docs":"node ./test/docs.js","test:package":"node ./scripts/package-smoke.js","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome","test:compatibility":"node ./test/compatibility.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"_resolved":"C:\\Users\\codex\\Documents\\GitHub\\js-message\\js-message-3.0.0.tgz","_integrity":"sha512-WsaloKCrZHjhHlt/NPzUJeMJVLOmeM4rAUO1F7+qwJf2uyck/PMaAoteGlQ5j0L2aH/Zx6Oipjq260UsU2ooLA==","repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, normalized JavaScript and JSON message envelope for every runtime boundary","directories":{},"sideEffects":["./js-message-vanilla.js"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/js-message_3.0.0_1786916331785_0.26755626300306634","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"js-message","version":"3.1.0","keywords":["message","json","protocol","events","ipc","websocket","browser","node","esm","commonjs"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-message@3.1.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://riaevangelist.github.io/js-message/","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"c6a7d400a2b6320c75cabe60e7eabb5349757cb2","tarball":"https://registry.npmjs.org/js-message/-/js-message-3.1.0.tgz","fileCount":11,"integrity":"sha512-k9iKFwzyAbz8gDJXIvIohSBaXeG3PvFzVwUccaDf0vv8LbEMpOvUfpyE6MGrlovliFdhTBUcIvXfSxOZkorWhA==","signatures":[{"sig":"MEQCIBJ5Z1uYK7pVlH0ANpGFobHsFQn3naJ6MHwNkDxgZivhAiAlAEAFH2J2gRD9CKTTDqoCrGAarsyHObjRIms7w3HsUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/cNzhD8VnjM2OU3w2nHzfNtbnIKGCXouHfpcV+QWY8AIgR+LN9zdOHVpZF6PybacGMoZwqIX22AUA0IjRWjZYH8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29743},"main":"./Message.js","type":"module","module":"./Message.js","browser":"./Message.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":"./Message.js","default":"./Message.js","require":"./Message.js"},"./index.js":{"import":"./index.js","default":"./index.js","require":"./index.js"},"./Message.js":{"import":"./Message.js","default":"./Message.js","require":"./Message.js"},"./package.json":"./package.json","./js-message-vanilla.js":"./js-message-vanilla.js"},"gitHead":"7b73f961540aa6ae5279b0d230807838836debeb","scripts":{"test":"node ./scripts/test.js","start":"node ./scripts/serve.js","coverage":"vanilla-test coverage","benchmark":"node --expose-gc ./scripts/benchmark.js","test:core":"node ./test/node.js","test:docs":"node ./test/docs.js","test:unit":"node ./test/run-suite.js unit","test:package":"node ./scripts/package-smoke.js","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome","test:functional":"node ./test/run-suite.js functional","test:playground":"node ./test/browser.js","test:regression":"node ./test/run-suite.js regression","test:integration":"node ./test/run-suite.js integration","test:compatibility":"node ./test/compatibility.js"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, normalized JavaScript and JSON message envelope for every runtime boundary","directories":{},"sideEffects":["./js-message-vanilla.js"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/js-message_3.1.0_1787370052866_0.08500208298807466","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"_id":"js-message@3.1.1","bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"dist":{"shasum":"f47f0b7a65d6c02017a581a23e7725d432b51811","tarball":"https://registry.npmjs.org/js-message/-/js-message-3.1.1.tgz","fileCount":11,"integrity":"sha512-YuHTkbemey5ur5sYH4+TBKEJjiIaoxP15vsvg/onAixoZWA+L56qjIK4+GSXcFYzUTNuCYkVtcUnTSFMwNtiLg==","signatures":[{"sig":"MEUCIEH9L9EVl1cB5ARnB7KTJqzeuSE5Bpq7/I3MuY0fO45nAiEA2XnyU43lZscIMmUFe+W4XRJdTtZGZ3HEdvTyqh7pguI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJca84ATFvUmamNxxVFhYJKISj/wdP+gzN5LUpUwPFuAIgfLUbudHsMUG1uNbkk/JB/J6okbrfKHZ7X5mU8szs8yI="}],"unpackedSize":33175},"main":"./Message.js","name":"js-message","type":"module","author":{"name":"Brandon Nozaki Miller"},"module":"./Message.js","browser":"./Message.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":"./Message.js","default":"./Message.js","require":"./Message.js"},"./index.js":{"import":"./index.js","default":"./index.js","require":"./index.js"},"./Message.js":{"import":"./Message.js","default":"./Message.js","require":"./Message.js"},"./package.json":"./package.json","./js-message-vanilla.js":"./js-message-vanilla.js"},"gitHead":"b9c9d45b61ec6d7b3aff58131932b8988a15265e","license":"MIT","scripts":{"test":"node ./scripts/test.js","start":"node ./scripts/serve.js","coverage":"vanilla-test coverage","benchmark":"node --expose-gc ./scripts/benchmark.js","test:core":"node ./test/node.js","test:docs":"node ./test/docs.js","test:unit":"node ./test/run-suite.js unit","test:package":"node ./scripts/package-smoke.js","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome","test:behavioral":"node ./test/run-suite.js behavioral","test:functional":"node ./test/run-suite.js functional","test:playground":"node ./test/browser.js","test:regression":"node ./test/run-suite.js regression","test:integration":"node ./test/run-suite.js integration","test:compatibility":"node ./test/compatibility.js"},"version":"3.1.1","_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"homepage":"https://riaevangelist.github.io/js-message/","keywords":["message","json","protocol","events","ipc","websocket","browser","node","esm","commonjs"],"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, normalized JavaScript and JSON message envelope for every runtime boundary","directories":{},"maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"sideEffects":["./js-message-vanilla.js"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"2.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/js-message_3.1.1_1787545406063_0.2647889263000809"}}},"time":{"created":"2015-09-27T08:40:10.121Z","modified":"2026-08-24T04:23:26.322Z","1.0.0":"2015-09-27T08:40:10.121Z","1.0.1":"2015-09-27T09:32:30.589Z","1.0.5":"2015-09-27T19:42:53.925Z","1.0.6":"2019-12-02T10:57:04.489Z","1.0.7":"2020-11-11T21:04:45.217Z","2.0.0":"2024-01-11T09:05:05.361Z","2.0.1":"2024-01-11T09:06:51.854Z","2.1.0":"2024-01-11T09:43:04.611Z","3.0.0":"2026-08-16T21:38:51.864Z","3.1.0":"2026-08-22T03:40:52.947Z","3.1.1":"2026-08-24T04:23:26.147Z"},"bugs":{"url":"https://github.com/RIAEvangelist/js-message/issues"},"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","homepage":"https://riaevangelist.github.io/js-message/","keywords":["message","json","protocol","events","ipc","websocket","browser","node","esm","commonjs"],"repository":{"url":"git+https://github.com/RIAEvangelist/js-message.git","type":"git"},"description":"A tiny, normalized JavaScript and JSON message envelope for every runtime boundary","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"readme":"![js-message carrying a structured message through a normalization gate between browser and server runtimes](https://raw.githubusercontent.com/RIAEvangelist/js-message/main/assets/js-message-header.png)\n\n# js-message\n\nA tiny, normalized JavaScript and JSON message envelope for every runtime boundary.\n\n[Documentation](https://riaevangelist.github.io/js-message/) · [Why js-message](https://riaevangelist.github.io/js-message/why/) · [Get started](https://riaevangelist.github.io/js-message/guide/) · [API](https://riaevangelist.github.io/js-message/api/) · [Protocol](https://riaevangelist.github.io/js-message/protocol/) · [Browser](https://riaevangelist.github.io/js-message/browser/) · [Examples](https://riaevangelist.github.io/js-message/examples/) · [Playground](https://riaevangelist.github.io/js-message/playground/) · [Performance](https://riaevangelist.github.io/js-message/performance/) · [Testing](https://riaevangelist.github.io/js-message/testing/) · [Migration](https://riaevangelist.github.io/js-message/migration/)\n\n[![CI](https://github.com/RIAEvangelist/js-message/actions/workflows/ci.yml/badge.svg)](https://github.com/RIAEvangelist/js-message/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/js-message.svg)](https://www.npmjs.com/package/js-message)\n[![Node support](https://img.shields.io/node/v/js-message.svg)](package.json)\n[![runtime dependencies](https://img.shields.io/badge/runtime_dependencies-0-7cf2a6)](package.json)\n[![license](https://img.shields.io/github/license/RIAEvangelist/js-message.svg)](licence)\n\n> **Version:** js-message 3.1.1 requires Node.js 22.13 or newer and gives ESM and CommonJS the same synchronous constructor.\n\n`js-message` keeps the transport contract deliberately small:\n\n```js\n{\n    type: 'event.or.message.name',\n    data: { any: 'JSON-safe payload' }\n}\n```\n\nCreate the same shape in Node.js, browsers, WebSockets, workers, IPC, fetch, Electron, or any other JavaScript host. The package has no runtime dependencies, build, transpiler, or framework binding.\n\n## Install\n\n```sh\nnpm install js-message\n```\n\n## Quick start\n\n```js\nimport Message from 'js-message';\n\nconst outgoing = new Message();\noutgoing.type = 'user.updated';\noutgoing.data = {\n    id: 42,\n    active: true\n};\n\nsocket.send(outgoing.JSON);\n```\n\nLoad the value at the other boundary:\n\n```js\nconst incoming = new Message(receivedValue);\n\nif (incoming.type === 'error') {\n    console.error(incoming.data.err);\n} else {\n    route(incoming.type, incoming.data);\n}\n```\n\nThe constructor and `load()` accept either a JSON string or an existing message object. Senders may omit `type`, `data`, or both; missing fields remain `undefined` instead of becoming validation errors.\n\n## Contract\n\n| Surface | Behavior |\n| --- | --- |\n| `new Message([input])` | Creates fresh `type` and `data` fields; optionally loads an envelope. |\n| `message.type` | Mutable message or event discriminator. Defaults to `''`. |\n| `message.data` | Mutable payload. Defaults to a fresh `{}` per instance. |\n| `message.JSON` | Normalized JSON string; keys whose values are `undefined` follow native omission rules. |\n| `message.toJSON()` | Plain `{ type, data }` object for structured-clone transports and `JSON.stringify`. |\n| `message.load(input)` | Parses text or copies available message fields; returns `undefined` for legacy compatibility. |\n\nFields are optional at load boundaries. For example, a signal that needs no payload stays small:\n\n```js\nnew Message('{\"type\":\"ping\"}').JSON === '{\"type\":\"ping\"}';\n```\n\nMalformed or uncoercible input produces a recoverable error message:\n\n```js\n{\n    type: 'error',\n    data: {\n        message: 'Invalid JSON response format',\n        err: new SyntaxError('…'),\n        response: originalInput\n    }\n}\n```\n\nThe live `err` remains an `Error`. Its JSON form includes `name` and `message` instead of collapsing to `{}` when the preserved response is JSON-safe. A cyclic or `BigInt` response still follows native JSON behavior and throws.\n\n## Imports\n\n```js\n// ESM\nimport Message, { Message as NamedMessage } from 'js-message';\n\n// Supported direct module path\nimport LegacyMessage from 'js-message/Message.js';\n```\n\n### Native browser ESM\n\njs-message works with bundlers and without a bundler. Bundlers resolve the bare package import normally. Native browser ESM resolves the same import through a standard import map, with no build or transpilation step:\n\n```html\n<script type=\"importmap\">\n{\n    \"imports\": {\n        \"js-message\": \"./node_modules/js-message/index.js\"\n    }\n}\n</script>\n<script type=\"module\">\n    import Message from 'js-message';\n\n    const message = new Message({\n        type: 'page.ready',\n        data: { ok: true }\n    });\n</script>\n```\n\nImport-map URLs are relative to the HTML document. Serve the page over HTTP(S), and configure the server to expose the mapped `node_modules` files. Loading the page from `file://` is not supported. js-message has zero runtime dependencies, so this complete map needs no dependency entries or scoped override; if that changes, the map must include every bare runtime dependency and preserve any nested dependency boundary with a scope.\n\n```js\n// CommonJS — the same Message.js constructor, not a duplicate build\nconst Message = require('js-message');\n```\n\nFor a classic browser script:\n\n```html\n<script src=\"./node_modules/js-message/js-message-vanilla.js\"></script>\n<script>\n    const message = new Message({\n        type: 'page.ready',\n        data: { ok: true }\n    });\n</script>\n```\n\nThe global entry assigns `globalThis.Message` and is tested against the ES-module contract.\n\nNode.js 22.13 and newer can synchronously `require()` this package's native ES module without an experimental warning. ESM and CommonJS therefore share one source file and one constructor identity.\n\n## Why js-message\n\n**Normalize once. Move messages anywhere.**\n\n- Keep transport code focused on one tiny `{ type, data }` convention without imposing a payload schema.\n- Omit fields that a signal does not need—no dummy `data: {}` payload on the wire.\n- Share one constructor identity between ESM and CommonJS, with the same API available as a classic browser script.\n- Recover malformed input as inspectable message data instead of scattering parser `try`/`catch` blocks through an application.\n- Ship zero runtime dependencies, no generated Node build, and no framework binding.\n\n[See the complete decision guide](https://riaevangelist.github.io/js-message/why/).\n\n## Performance\n\n**Less validation. More message.** Version 3.1 restores assignment semantics and removes the duplicate strict-envelope pass from 3.0.\n\n![Loading one million object messages: js-message 3.1.0 compared with 3.0.0](./assets/benchmark-object.svg)\n\n![Loading one million JSON messages: js-message 3.1.0 compared with 3.0.0](./assets/benchmark-json.svg)\n\n![Constructing one million empty messages: js-message 3.1.0 compared with 3.0.0](./assets/benchmark-construct.svg)\n\nThe benchmark uses Node 24.18, one million operations, and the median of 21 alternating samples. [Review the method and recorded results](https://riaevangelist.github.io/js-message/performance/).\n\n## Verification\n\nFive focused suites use [vanilla-test](https://www.npmjs.com/package/vanilla-test) to run 83 nonduplicated shared checks from the same untransformed module in Node.js and Chrome. Chrome adds twelve distinct playground integration checks without inflating that shared count. The shared inventory imports js-message by its bare package name: Node resolves package self-references, while real Chrome resolves that same name through the checked-in native import map. CI also executes real ESM and CommonJS imports from the packed npm artifact, verifies the dependency tree and both production and full npm audits, checks documentation and the declared runtime floor, and enforces native coverage.\n\n```sh\nnpm ci\nnpm test\nnpm run test:unit\nnpm run test:functional\nnpm run test:behavioral\nnpm run test:integration\nnpm run test:regression\nnpm run test:playground\nnpm run coverage:node\nnpm run coverage:chrome\nnpm run test:package\nnpm run benchmark\nnpm start\n```\n\nThe package, development tools, and coverage require Node.js 22.13 or newer. CI runs the complete suite at that exact floor and runs Node 24 across Linux, macOS, and Windows.\n\n## License\n\n[MIT](licence)\n","readmeFilename":"README.md"}