{"_id":"@alejotoro-o/payload-real-time","_rev":"7-b7bf2928da60b979f4ee8d56278bf177","name":"@alejotoro-o/payload-real-time","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@alejotoro-o/payload-real-time","version":"1.0.0","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.0.0","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"05fe98ae8a9a551604ba375452b3c30a6f52a5bf","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.0.0.tgz","fileCount":18,"integrity":"sha512-nQlqBNyciPStWHkSzwwkDyOTOfzBTtUVgLJH8K7O6IoxnGf8sNR6rF7uZh757V7f0MASvCNHBmUIf2h73p/dkg==","signatures":[{"sig":"MEQCIAGLVibqwKvPEHe62jOjhXDMGDwzMCVhxITfFjFuJyZ0AiBpxLwZW1zpmUXHhhkzspeVMVI6SkQOPTMPHts4PJWJ/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33151},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts","default":"./src/index.ts"},"./client":{"types":"./src/exports/client.ts","import":"./src/exports/client.ts","default":"./src/exports/client.ts"}},"gitHead":"6dde6a8fa4da87a36197802c312320b80c1da8b0","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.0.0_1762272537798_0.5142405113294037","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alejotoro-o/payload-real-time","version":"1.0.1","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.0.1","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"dcdffd0c24c2fd5fe7cb7e767c5c08b450714704","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.0.1.tgz","fileCount":18,"integrity":"sha512-Jo/IBXVaejyx2IcjZISBw5Zn/1VOkzOlg3244weHAWL+5j6QerJke3Tm/g7FXCjMJs5mq9yZv8p5i3mlptuuWg==","signatures":[{"sig":"MEUCIB27cviZ7INghSLFbRgbK9ju0SPEqv7cEQjFrmQ7boztAiEAyiO/uLcSHq1QRT9ioRElv9hKuJiXPFr6WeQ3LNQuD5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33643},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}},"gitHead":"2aa7d69325403cb8400c10526db5429aabbac85f","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.0.1_1762280315431_0.20856660623339418","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alejotoro-o/payload-real-time","version":"1.0.2","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.0.2","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"2246bca0b4ac5ea82583015dabc20acfac13dc0e","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.0.2.tgz","fileCount":18,"integrity":"sha512-bUeeAKUrlhQOCszjfgmlaa3nZqjEvHx67jLCeCx7mT7gAaVuQnjkZCxWVqsEGdXO9O+CmGseHsr9+DiZVeif+Q==","signatures":[{"sig":"MEUCIHM14DCHllpHTimawfOblxE2wYA47pZBrR8/SDwACDO1AiEAsnaxEcqd+66ecN5OhV6srdz8k0ih2kxxcirhC5xTWAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33204},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}},"gitHead":"1768084fd5087220f4d778334df61d50c8407bca","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.0.2_1762654736939_0.8840542881189026","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alejotoro-o/payload-real-time","version":"1.1.0","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.1.0","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"4d3514ff1ed77d4fbd9e94f921581e82a8e8ee13","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.1.0.tgz","fileCount":18,"integrity":"sha512-/BAFa+8Bci7AdcgElDG7yE3axlsXTZ3stIIQ1VgEtQJPT/2tXwNtqcH8/BflLKMXQi3BN4cTiNBi8Fve33J2Iw==","signatures":[{"sig":"MEUCIQDR+IzuxipAA4Via2bI7Sfg8UgES3deDmx+cXvS5I8KpwIgeLLAVL1SYvFmVVY7/t0En9GRnCq7LFIcm4QwUdZMGyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46629},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}},"gitHead":"f1635d9279d3bf36a0be7cdbcc81cdb10cdb5114","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.1.0_1763403566940_0.8640211292369715","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alejotoro-o/payload-real-time","version":"1.1.1","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.1.1","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"c3a9623d62eeff47f8656fef43bc12440e88864f","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.1.1.tgz","fileCount":18,"integrity":"sha512-iP/KxWg0/CYGwobVkqsflNRSqpIEmffP5UbS+2Fdgl6vur7afZ8YyGOVxx/OfAq4Wb+d8KL7a7h7k0eXO4/7EA==","signatures":[{"sig":"MEQCICcvs5HhT/iCll8m5oPORFGRDutzsuCqSy53jqr2hE4nAiAl4wOPZLoMrL0nyYaLUeJ4BW87FrCz4FsuZWsuHKRcgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47170},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}},"gitHead":"51b964a3f6bf0790044dff01270b2c4bb7e059e3","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.1.1_1763417024941_0.32348516625300516","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alejotoro-o/payload-real-time","version":"1.1.2","keywords":["payload","cms","real-time","plugin"],"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","_id":"@alejotoro-o/payload-real-time@1.1.2","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"dist":{"shasum":"63f46e020b4aab3cddad675a070765f96ba60982","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.1.2.tgz","fileCount":18,"integrity":"sha512-DUKpbqaSPcn62ofZx+IdilRJ3Cqc213VYzh6jcOAnZDviwd0D/mvdzsNIcTJwtPn/5Gc/QpSXQ0XC33VBWTmbw==","signatures":[{"sig":"MEUCIQDGax1bwpgb13boOlaWbIL8i5F94fCfY+/4EsIBEYuhVgIgIANTIqFXhXUocx+T//ls37ivnJcy4zwWsQnNd6r9lSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47175},"main":"./src/index.ts","pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"type":"module","types":"./src/index.ts","engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}},"gitHead":"f4337136ab43992328ea15ef1777e370299eaeae","scripts":{"dev":"next dev dev --turbo","lint":"eslint","test":"pnpm test:int && pnpm test:e2e","build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","clean":"rimraf {dist,*.tsbuildinfo}","lint:fix":"eslint ./src --fix","test:e2e":"playwright test","test:int":"vitest","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","build:types":"tsc --outDir dist --rootDir ./src","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:types":"pnpm dev:generate-types","prepublishOnly":"pnpm clean && pnpm build","dev:generate-types":"pnpm dev:payload generate:types","generate:importmap":"pnpm dev:generate-importmap","dev:generate-importmap":"pnpm dev:payload generate:importmap"},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"registry":"https://registry.npmjs.org/","repository":{"url":"git+https://github.com/alejotoro-o/payload-real-time.git","type":"git"},"_npmVersion":"11.6.2","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1"},"publishConfig":{"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/exports/client.d.ts","import":"./dist/exports/client.js","default":"./dist/exports/client.js"}}},"_hasShrinkwrap":false,"devDependencies":{"next":"15.4.4","open":"^10.1.0","react":"19.1.0","sharp":"0.34.2","eslint":"^9.23.0","qs-esm":"7.0.2","rimraf":"3.0.2","vitest":"^3.1.2","graphql":"^16.8.1","payload":"3.37.0","@swc/cli":"0.6.0","prettier":"^3.4.2","copyfiles":"2.4.1","cross-env":"^7.0.3","react-dom":"19.1.0","typescript":"5.7.3","@types/node":"^22.5.4","@types/react":"19.1.8","@payloadcms/ui":"3.37.0","@eslint/eslintrc":"^3.2.0","@payloadcms/next":"3.37.0","@playwright/test":"^1.52.0","@types/react-dom":"19.1.6","sort-package-json":"^2.10.0","@swc-node/register":"1.10.9","eslint-config-next":"15.4.4","vite-tsconfig-paths":"^5.1.4","@payloadcms/db-sqlite":"3.37.0","mongodb-memory-server":"10.1.4","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/richtext-lexical":"3.37.0"},"peerDependencies":{"payload":"^3.37.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-real-time_1.1.2_1763417204474_0.2902636119946913","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alejotoro-o/payload-real-time","version":"1.2.0","description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","keywords":["payload","cms","real-time","plugin"],"homepage":"https://github.com/alejotoro-o/payload-real-time#readme","bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"repository":{"type":"git","url":"git+https://github.com/alejotoro-o/payload-real-time.git"},"license":"MIT","author":{"name":"Alejandro Toro Ossaba"},"type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"import":"./dist/exports/client.js","types":"./dist/exports/client.d.ts","default":"./dist/exports/client.js"}},"main":"./src/index.ts","types":"./src/index.ts","scripts":{"build":"pnpm copyfiles && pnpm build:types && pnpm build:swc","build:swc":"swc ./src -d ./dist --config-file .swcrc --strip-leading-paths","build:types":"tsc --outDir dist --rootDir ./src","clean":"rimraf {dist,*.tsbuildinfo}","copyfiles":"copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/","dev":"next dev dev --turbo","dev:generate-importmap":"pnpm dev:payload generate:importmap","dev:generate-types":"pnpm dev:payload generate:types","dev:payload":"cross-env PAYLOAD_CONFIG_PATH=./dev/payload.config.ts payload","generate:importmap":"pnpm dev:generate-importmap","generate:types":"pnpm dev:generate-types","lint":"eslint","lint:fix":"eslint ./src --fix","prepublishOnly":"pnpm clean && pnpm build","test":"pnpm test:int && pnpm test:e2e","test:e2e":"playwright test","test:int":"vitest"},"dependencies":{"socket.io":"^4.8.1","socket.io-client":"^4.8.1","bufferutil":"^4.0.9"},"devDependencies":{"@eslint/eslintrc":"^3.2.0","@payloadcms/db-mongodb":"3.37.0","@payloadcms/db-postgres":"3.37.0","@payloadcms/db-sqlite":"3.37.0","@payloadcms/eslint-config":"3.9.0","@payloadcms/next":"3.37.0","@payloadcms/richtext-lexical":"3.37.0","@payloadcms/ui":"3.37.0","@playwright/test":"^1.52.0","@swc-node/register":"1.10.9","@swc/cli":"0.6.0","@types/node":"^22.5.4","@types/react":"19.1.8","@types/react-dom":"19.1.6","copyfiles":"2.4.1","cross-env":"^7.0.3","eslint":"^9.23.0","eslint-config-next":"15.4.4","graphql":"^16.8.1","mongodb-memory-server":"10.1.4","next":"15.4.4","open":"^10.1.0","payload":"3.37.0","prettier":"^3.4.2","qs-esm":"7.0.2","react":"19.1.0","react-dom":"19.1.0","rimraf":"3.0.2","sharp":"0.34.2","sort-package-json":"^2.10.0","typescript":"5.7.3","vite-tsconfig-paths":"^5.1.4","vitest":"^3.1.2"},"peerDependencies":{"payload":"^3.37.0"},"engines":{"node":"^18.20.2 || >=20.9.0","pnpm":"^9 || ^10"},"publishConfig":{"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"import":"./dist/exports/client.js","types":"./dist/exports/client.d.ts","default":"./dist/exports/client.js"}},"main":"./dist/index.js","types":"./dist/index.d.ts"},"pnpm":{"onlyBuiltDependencies":["sharp","esbuild","unrs-resolver"]},"registry":"https://registry.npmjs.org/","gitHead":"f4337136ab43992328ea15ef1777e370299eaeae","_id":"@alejotoro-o/payload-real-time@1.2.0","_nodeVersion":"23.9.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-kM5OQH3UCbdzG23RVDlVCtRCuU7GmAvizigdDnUtM6E/RdWvF0T24qZgZH4VvF/0lQnB6F5siccyu81SykQgTA==","shasum":"3bdd8c7df253a983dda4b8a9986dcbfce3b21c71","tarball":"https://registry.npmjs.org/@alejotoro-o/payload-real-time/-/payload-real-time-1.2.0.tgz","fileCount":18,"unpackedSize":47876,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC++K+u1IEaMhIcQc+XRfjMHU5PwpRB1ZSd32MsaXIvYwIgZt2yFcZDAYx1YCE+YZE5oLzcAwpYftrnt9uFHqqQ+zk="}]},"_npmUser":{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"},"directories":{},"maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/payload-real-time_1.2.0_1767201604027_0.24534848892415106"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T16:08:57.708Z","modified":"2025-12-31T17:20:04.406Z","1.0.0":"2025-11-04T16:08:58.000Z","1.0.1":"2025-11-04T18:18:35.676Z","1.0.2":"2025-11-09T02:18:57.134Z","1.1.0":"2025-11-17T18:19:27.122Z","1.1.1":"2025-11-17T22:03:45.156Z","1.1.2":"2025-11-17T22:06:44.681Z","1.2.0":"2025-12-31T17:20:04.192Z"},"bugs":{"url":"https://github.com/alejotoro-o/payload-real-time/issues"},"author":{"name":"Alejandro Toro Ossaba"},"license":"MIT","homepage":"https://github.com/alejotoro-o/payload-real-time#readme","keywords":["payload","cms","real-time","plugin"],"repository":{"type":"git","url":"git+https://github.com/alejotoro-o/payload-real-time.git"},"description":"This plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.","maintainers":[{"name":"alejotoro-o","email":"alejotoro.o@gmail.com"}],"readme":"# Payload Real-time Plugin\r\n\r\nThis plugin provides an implementation of websockets to enable real-time events in Payload CMS collections.\r\n\r\n## Installation\r\n\r\nInstall the package running:\r\n\r\n```sh\r\nnpm install @alejotoro-o/payload-real-time\r\n```\r\n\r\n**NOTE:** On some implementation you can get the error ```[TypeError: bufferUtil.unmask is not a function]```, in that case you need to install the ```bufferutil``` package with ```        npm install bufferutil```.\r\n\r\n## What This Plugin Does\r\n\r\n- Emits real-time events when documents are created or updated.\r\n- Scopes events to custom rooms (e.g. per user, per chat).\r\n- Provides a React hook (`useRealtime`) for subscribing to events.\r\n- Includes a flexible client for custom event handling.\r\n\r\n## How to use the plugin\r\n\r\nFirst configure the plugin in ```payload.config.ts```. The plugin accepts a configuration object with the following shape:\r\n\r\n```ts\r\nexport type PayloadRealTimeConfig = {\r\n    collections?: { [K in CollectionSlug]?: {\r\n        room: (\r\n            doc: Extract<DefinedCollections[number], { slug: K }>['fields'],\r\n            operation?: 'create' | 'update',\r\n            previousDoc?: Extract<DefinedCollections[number], { slug: K }>['fields'],\r\n        ) => string | undefined,\r\n        events?: Array<'create' | 'update'>\r\n    } }\r\n    serverOptions?: {\r\n        port?: number,\r\n        cors?: {\r\n            origin: string | string[],\r\n            methods?: string | string[],\r\n        }\r\n    }\r\n    requireAuth?: boolean,\r\n    disabled?: boolean,\r\n}\r\n```\r\n\r\n- `collections`: Define which collections should emit real-time events. For each collection, you can specify:\r\n\r\n    - `events`: Limit which operations trigger events. Use `'create'`, `'update'`, or both. If omitted, all operations will emit.\r\n    - `room`: A function that receives the resulting document, the operation being performed in the collection and the previous document; the function returns a room string. This scopes the event to a specific room (e.g. `user:{userId}`).\r\n\r\n- `serverOptions`: Customize the WebSocket server:\r\n\r\n    - `port`: Port to run the server on (default is `3001`)\r\n    - `cors`: CORS configuration (e.g. `{ origin: '*' }`)\r\n\r\n- `requireAuth`: Set to `true` to enable JWT authentication for socket connections. Default is `false`.\r\n- `disabled`: Set to `true` to disable the plugin entirely.\r\n\r\nHere is an example configuring the plugin to emit events when documents are created or updated in the notifications collection.\r\n\r\n```ts\r\nimport payloadRealTime from '@alejotoro-o/payload-real-time'\r\n\r\nexport const config = buildConfig({\r\n    // ... Payload config options\r\n    plugins: [\r\n        payloadRealTime({\r\n            collections: {\r\n                notifications: {\r\n                    room: (doc: Notification) => {\r\n                        const user = doc.user\r\n                        const userId = typeof user === 'number' ? user : user?.id\r\n                        return userId ? `user:${userId}` : undefined\r\n                    },\r\n                    events: ['create', 'update'],\r\n                },\r\n            },\r\n            requireAuth: true\r\n        }),\r\n    ],\r\n})\r\n```\r\n\r\nUse the ```useRealtime``` hook to subscribe to events in your frontend:\r\n\r\n```ts\r\n'use client'\r\n\r\nimport { User } from \"payload-types.js\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { useRealtime } from \"../../../src/client/useRealtime.js\"\r\n\r\nexport default function Page() {\r\n\r\n    const [user, setUser] = useState<User>()\r\n    const [token, setToken] = useState()\r\n    const realtime = useRealtime(user?.id.toString() ?? '', token ?? '')\r\n    const [message, setMessage] = useState()\r\n\r\n    useEffect(() => {\r\n        const getUser = async () => {\r\n            const response = await fetch('http://localhost:3000/api/users/me')\r\n            if (response.ok) {\r\n                const user = await response.json()\r\n                setUser(user.user)\r\n                setToken(user.token)\r\n            } else {\r\n                console.log('Error')\r\n            }\r\n        }\r\n        getUser()\r\n    }, [])\r\n\r\n    // Websockets\r\n    useEffect(() => {\r\n        if (!user || !realtime) return\r\n        realtime.join(`user:${user.id}`)\r\n        realtime.onCollection('notifications', (data) => {\r\n            console.log(data.data)\r\n            setMessage(data.data.message)\r\n        })\r\n    }, [user, realtime])\r\n\r\n    return (\r\n        <div>\r\n            <div>\r\n                {user?.email}\r\n            </div>\r\n            <div>\r\n                {message}\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n```\r\n\r\n## API Overview\r\n\r\n### `useRealtime(userId: string, token?: string): PayloadRealtimeClient`\r\n\r\nA React hook that initializes a real-time client, identifies the user for presence tracking, and returns a `PayloadRealtimeClient` instance.\r\n\r\nUse this in components to manage socket lifecycle automatically:\r\n\r\n```tsx\r\nconst realtime = useRealtime(user.id, user.token)\r\n```\r\n\r\n### `PayloadRealtimeClient`\r\n\r\nYou can also instantiate the client manually:\r\n\r\n```ts\r\nimport { PayloadRealtimeClient } from '@alejotoro-o/payload-real-time'\r\n\r\nconst client = new PayloadRealtimeClient({ url, token })\r\n```\r\n\r\n#### Constructor Options\r\n\r\n```ts\r\ntype RealtimeClientOptions = {\r\n    url?: string        // WebSocket server URL (default: http://localhost:3001)\r\n    token?: string      // Optional JWT for authentication\r\n}\r\n```\r\n\r\n### Client Methods\r\n\r\n\r\n| Method | Description |\r\n|--------|-------------|\r\n| `identify(userId: string)` | Identifies the user and registers them for presence tracking. Should be called once after connecting. |\r\n| `join(roomId: string)` | Joins a specific room (e.g. `user:123`, `chat:abc`). Enables receiving events scoped to that room. |\r\n| `leave(roomId: string)` | Leaves a previously joined room. Useful for cleaning up listeners when navigating away. |\r\n| `onCollection(slug: string, callback: (data) => void)` | Subscribes to real-time events for a specific collection. Events are emitted as `realtime:{slug}`. |\r\n| `on(event: string, callback: (data) => void)` | Subscribes to any custom event. Useful for chat messages, typing indicators, etc. |\r\n| `emit(event: string, data: any)` | Emits a custom event to the server. The payload should include a `roomId` if it's meant to be scoped. |\r\n| `disconnect()` | Gracefully disconnects the socket. Useful on logout or component unmount. |\r\n\r\n### Example: Custom Event\r\n\r\n```ts\r\nclient.emit('chat-message', {\r\n    roomId: 'chat:abc123',\r\n    content: 'Hello world!',\r\n})\r\n```\r\n\r\n```ts\r\nclient.on('chat-message', (data) => {\r\n    console.log('New message:', data.content)\r\n})\r\n```\r\n\r\n## Server-side Usage\r\n\r\nThe plugin attaches the Socket.IO server instance to `payload.io`, allowing you to emit events from any hook or endpoint:\r\n\r\n```ts\r\nconst io = (payload as any).io\r\n\r\nio.to(`user:${userId}`).emit('custom-event', { message: 'Hello!' })\r\n```\r\n","readmeFilename":"README.md"}