{"_id":"@prsm/devtools","_rev":"36-b7a71809be9444dc1b547637bdf9a121","name":"@prsm/devtools","dist-tags":{"latest":"1.17.1"},"versions":{"1.0.0":{"name":"@prsm/devtools","version":"1.0.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.0.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"c947cd9ba851124551713f35b96664897f4305c2","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.0.0.tgz","fileCount":7,"integrity":"sha512-MK93wjV2W7lG7pLjqg9i7rfzy+YwfWWrVZ9To+/l71DzoEP/muQf1mpH8YGJhLU1/Nxdp5nxI5zobCMgif0l0g==","signatures":[{"sig":"MEYCIQD5R6u/5XVu2rBpgNbLY8EgTmPESOO5uTboiLj699XFRAIhAPB8lZQBgWPhtd05NYTi1kcwQHg3z66Lk3TOjQvSJ0yc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342351},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"54d7f0a10d3123a885774420fd286e9777621d15","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.2","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.15.1","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.0.0","@prsm/limit":"^1.1.0","@prsm/queue":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.0.0_1773796830799_0.9188643840384145","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@prsm/devtools","version":"1.0.1","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.0.1","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"e27c9936ab7c3f786f89654ef3f3da124fe35fc3","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.0.1.tgz","fileCount":7,"integrity":"sha512-eecj+hJGoyyC5Q20suTv4ZS9LmokwDWcm2APnQ8XK4xe72fWsesYcVdbJKZphpuPnBW/Odaw9aVpq52UONs8pA==","signatures":[{"sig":"MEUCIErRTV1r/iEK2X4nUBVeb+HWm0bbw977QLtfESoDxx92AiEAulXTDF4LgJZejfYRDK/lsNjqLC/RXC/FnrkoqM9ErP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342343},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"4a7f1bc797206ad156f54ad47f4a6834a1ef830c","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.2","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.15.1","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.0.2","@prsm/limit":"^1.1.0","@prsm/queue":"^3.0.7"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.0.1_1774107866623_0.43038922130160007","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@prsm/devtools","version":"1.0.2","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.0.2","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"26da72dee030ff45de9bf5036813dd998866a871","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.0.2.tgz","fileCount":7,"integrity":"sha512-MruvpNgje2V0LyF2GEnay1GT9tny5ROSk+LoSpUVsfBIw/9DBfRj24/n0S78W6wvInFOaJ+AS3upCbH8IDSHIA==","signatures":[{"sig":"MEYCIQCfURIVp7Zce/yObZ8ExNCNpe549kCGQb5X1khdj9ydWQIhAK0WugXjZQpaF6RfzbxJjdOvwcadPlfzPqChg2xFbknQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342343},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"b41a96e0bbb703128d3bbdf45f2cc2f9403f419f","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.2","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.15.1","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.0.3","@prsm/limit":"^1.1.1","@prsm/queue":"^3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.0.2_1774107970484_0.44950053384612065","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@prsm/devtools","version":"1.1.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.1.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"a863e259447fffa30ecf9a9c8ca1b064dfafe925","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.1.0.tgz","fileCount":7,"integrity":"sha512-r0OYF9wA4SfnkAihvdMLmP2saqRvZRmfB8htJy1oBFMfKBGyNqCSlHwbMseuiU51t7M98Lc0cZRVOViftZ5qig==","signatures":[{"sig":"MEQCIADvYyalPdX5f+Fo9rNwD/dXf6dbEXKwly7yF+Tb9THOAiBkOGV2DlsTDsgJPHkFsho0B8R+NFq+syP2FzbpnTixTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365738},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"60737fb68cbfd77f938a64950e81ab409cb1d510","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.0.3","@prsm/cells":"^1.2.0","@prsm/limit":"^1.1.1","@prsm/queue":"^3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.1.0_1779540300377_0.8532872559886711","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@prsm/devtools","version":"1.2.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.2.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"59dd5d6589c3ae0e380ecf4c21295683f4896d95","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.2.0.tgz","fileCount":7,"integrity":"sha512-OkH+TSjGkoGeEB4zS/V+7fs0jzHEeP4tth1yJsX6CN6SeLWJyX19o1RZsAlzbgC2+n7QS/Z8gu16MLm8vqO/vA==","signatures":[{"sig":"MEQCIGL+0eL7DWeOX6CZCl4rjTchjP1+/Ub1ACU3jjx663zVAiARSqv95soEaBPxBK6a8OZVYEEYQEcxl1+htYgGT2q46A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":525306},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"daf878057d1143bb3d8fc1bf244b2f0c7ac18c75","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.1.0","@prsm/lock":"^1.1.0","@prsm/cells":"^1.2.0","@prsm/limit":"^1.2.0","@prsm/queue":"^3.0.8","@prsm/workflow":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.2.0_1779541056886_0.48186595375663943","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@prsm/devtools","version":"1.3.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.3.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"4598b624594cfeac162f91772ecce9bc372dbf3b","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.3.0.tgz","fileCount":7,"integrity":"sha512-lcofNLj4FFkVlYAZeH2UREoOC1XMWABYOveF/9pqhyHmtRl1x4p/hJSTv5jWNwidSQYgzl+rfZHDGJ6Rfv9NQA==","signatures":[{"sig":"MEUCIQC1+B5NeqpEzlzYyEUaxlXULCGWiQ7VfJc8v3oUb3WBBwIgXSWnoW6iR1Kdcs276upNcDcSHdSXXzY8nUtyHYlwksQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544281},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"12edb8cabfdab196449c77ab7919b8f37dd9c025","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.1.0","@prsm/lock":"^1.1.0","@prsm/cache":"^1.0.2","@prsm/cells":"^1.2.0","@prsm/limit":"^1.2.0","@prsm/queue":"^3.0.8","@prsm/realtime":"^1.0.5","@prsm/workflow":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.3.0_1779547505109_0.678595588302388","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@prsm/devtools","version":"1.4.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.4.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"c6c6d837a23dfd9d40b9c85abff8ab3c0a672edf","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.4.0.tgz","fileCount":7,"integrity":"sha512-PfYsrZ/5vvBGODv3GqtYqwbS+Ju4nAZyFLBILXy86h7ul9boyH8FFNHSRkwBgkMDeCH5LSQ3ImsGWeC+5vnKtw==","signatures":[{"sig":"MEUCIEKG1BjHnHzPj0z+N3SiRaxpAypTlPdg0oSclHUjoE7DAiEArXvK/W8CbS6DtWTUak7vvhKMpouM6GsFUfNx2wfnbnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566187},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"9668b9450005c67a88dab1889dc132f0eecf44b1","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.2.0","@prsm/lock":"^1.2.0","@prsm/cache":"^1.1.0","@prsm/cells":"^1.3.0","@prsm/limit":"^1.3.0","@prsm/queue":"^3.1.0","@prsm/trace":"^1.0.0","@prsm/realtime":"^1.1.0","@prsm/workflow":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.4.0_1779551037941_0.11964423358970988","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@prsm/devtools","version":"1.5.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.5.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"b6907c13aa299632ed4fa916a4d5fcd9594e5933","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.5.0.tgz","fileCount":7,"integrity":"sha512-ISLnz9ZKLKqlczhGqgEtzCGLzOO7pQQlImbk3BXzFBhKh9c10sLpb3EvzLgaIX1Mzk6rrqX6sgee4ZpabBqMtw==","signatures":[{"sig":"MEUCIQDjmqn4BhLY70veLbhBpJO/jAc5bhLXMDFqmL1n1SeWEAIgAmAoBGZx4Mi6kM2Es2usdf10awGNr6LwAHp8QL/FQlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573784},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"ba14ad1252aa70a9a14b23fb53b2c547da2521ce","scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","@prsm/cron":"^1.2.0","@prsm/lock":"^1.2.0","@prsm/cache":"^1.1.0","@prsm/cells":"^1.3.0","@prsm/limit":"^1.3.0","@prsm/queue":"^3.1.1","@prsm/trace":"^1.1.0","@prsm/realtime":"^1.1.0","@prsm/workflow":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.5.0_1779564071496_0.9338366954223203","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@prsm/devtools","version":"1.6.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.6.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"2de2f07fdcb68e7bead709c75544833532c21f90","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.6.0.tgz","fileCount":7,"integrity":"sha512-H6qEBTFddhKShX6E3h+jsjmhf5tUVphTV7y7E+aP0L3Ee7O/oiahyjM89Ez/8vxjQ6jqv5vL7OJk3VBsUjh9yQ==","signatures":[{"sig":"MEUCIQCnboSC4aY97oEvOedfffDskaGVjsQt3Vq4iOrBtHKTBAIgDW0Df93XvanEBUlRzrU8CmRUDKcEle7LeTWGpPTImBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":574455},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"5dd19578d54971acf00b3267a7a9854a7d82491b","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.2","@prsm/lock":"^1.2.1","@prsm/cache":"^1.1.1","@prsm/cells":"^1.3.2","@prsm/limit":"^1.3.1","@prsm/queue":"^3.2.0","@prsm/trace":"^1.1.0","@prsm/realtime":"^1.2.0","@prsm/workflow":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.6.0_1779584259761_0.435084833495361","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@prsm/devtools","version":"1.7.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"734ed5f7b6405f7e16cc14e76dff8cfe81b0ab2c","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.0.tgz","fileCount":7,"integrity":"sha512-YZDjJWkUZeV9MaGKSRgmqsQpZSugHhYlu9vasUmQXKGVXWq3pfLz1DF6XY5eHNJqXy7QmRHuIxM7e4A8gsxTAw==","signatures":[{"sig":"MEQCIDEFK5Q/i+p7MGYqaPXt2yZlfl3NTrfFhbnM+8Tve7F5AiBLJHxGBAc9sCyc+DkKdvQ1286qsMF2D3WSx9C5swKk7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592893},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"4ecc04b5bc9d02016d19e2d8348897d76344c157","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.0_1779642777523_0.5123835170271438","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@prsm/devtools","version":"1.7.1","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.1","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"1040d8729deb18e926ba7e665e479ddcfb9b1e29","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.1.tgz","fileCount":7,"integrity":"sha512-T4lW6KzdWrkstAG+93mSyRkuBlck96CvEFr6FQXUJ2xg0VyCazMKU9MiQHpA4yZdx3My33pyYoyuMQpz6TEeag==","signatures":[{"sig":"MEYCIQCxu+Bmu6uNuDCjhanbaWITR6Z/Z38FfIB2yMQfD5UaswIhAOqnv+D5VGCFkX8tUeRFLp9EN9CL9YYRfk/vDMafsJOD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":590788},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"fb7c9bfec26e2dad1407d5f26ccc9a8606d0e0e4","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.1_1779643114522_0.8629137353906342","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@prsm/devtools","version":"1.7.2","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.2","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"82b18144288b681421571e9e02b0fddaeea533ab","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.2.tgz","fileCount":7,"integrity":"sha512-tvX0Yo6u5sN3D9lQOYPi869+vys3TyTnVTNp8lWA4DIgtmRbyD+UsY216qtr2Yy2frqnUmzXuWMGfu+pKU4ong==","signatures":[{"sig":"MEYCIQDLBDGDTkh2i37JAFbUJzMAIVWAFoYi5RjT8QjTA6U4igIhALr1Mz6EH9FjqPOOvurHabvM9NXXQtVZzLFJfv6u6LII","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591218},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"184e699b1f557b2c41b8fcef5fb32e1d768b5b41","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.2_1779643355813_0.3880435729078038","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"@prsm/devtools","version":"1.7.3","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.3","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"7f64a4beca3d4b79464af70169c1a2a829f7228f","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.3.tgz","fileCount":7,"integrity":"sha512-Ve2tKY2vlOtz9FcTY7ZEgCDrNNsMnSgVPEtz8pzXJJVzcEvYxqnbYaHcZbN2gnmrkuWU6u0q/jWmcLtdNABspQ==","signatures":[{"sig":"MEUCID5XAlCR0OCoQoqdL7RXdQbVhktDANkZ65Uf2AnAl+Q9AiEAnUEZm42FDE+ZUDIbV6Qyx6Gcw3yxHdXfg3G0PcSZq4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591133},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"3cac1e248817a96455ab64aa2e59d22549e3e0a7","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.3_1779643438178_0.6825907211980302","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"@prsm/devtools","version":"1.7.4","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.4","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"9b9cc30843c19c5289b8df83dd9ef15dc92bc89a","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.4.tgz","fileCount":7,"integrity":"sha512-L8vj105+zGuy/t6YwobM8RRMFCSvoX5qVvTb1BVLsNcZJY9fY4CNQW51IY2iqJmO1LGNwq8ElsGkKyM8DkUmRw==","signatures":[{"sig":"MEUCIDPoE4duq7DlfRTghjgNeXtTpY5nIeiDxF2wwHNI3XEEAiEAtokmOmbTt65KKQz82t347uythBxY/rIOBa2QecKd0oc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589607},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"9d48e61725c95295a13a00cbbbdc65ccfca5581d","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.4_1779644324644_0.7008492739960537","host":"s3://npm-registry-packages-npm-production"}},"1.7.5":{"name":"@prsm/devtools","version":"1.7.5","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.5","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"39a4832668c3e2213f276cedcd7c42fdadaffc93","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.5.tgz","fileCount":7,"integrity":"sha512-cuMY9WsQ+e58ra6D19v71q4JjJhkyPZfLt8QYfNV9zN0rTfXwfjk6lsST5FjtMZQFDGBNx1QCq+fTyLr8Cutmg==","signatures":[{"sig":"MEQCIFtY54N/lNVqMy8Av/a8iClHZBkkzQt9QwcNlvPuo+mtAiAX1fWVY/c/CJ/objT4YMW09DnxjTLHxMDKz2Voy8SCuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":590977},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"48d77b74d87af20f8036fa5f5bf592e79cefb420","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.5_1779644543277_0.45141431831709733","host":"s3://npm-registry-packages-npm-production"}},"1.7.6":{"name":"@prsm/devtools","version":"1.7.6","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.6","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"baaedf8d07d25995d665f1a53c2b928ec67ca4c0","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.6.tgz","fileCount":7,"integrity":"sha512-zfAlsd24NAO8FSHNHX573UcNARuei5ndZht+BIxMbhjZ+FwVzHoTR8qTpf9n3WODeawLi7xkOZ7pcHn2RDw5zg==","signatures":[{"sig":"MEUCIE9XsUSqQ2wt/UDELYC5W2P0gyWdeO+Rg/1TsGUjXoW0AiEAznISydeDs4vqXpBbJYQvXJpHsFpssXxm97PSPWCvQ7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":590977},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"8b384e55d6c7785c1941c31a6099ad78f875b10a","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.6_1779644770684_0.8836309490791696","host":"s3://npm-registry-packages-npm-production"}},"1.7.7":{"name":"@prsm/devtools","version":"1.7.7","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.7.7","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"bb54fe037317d1b8910e4edc611c072013c96757","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.7.7.tgz","fileCount":7,"integrity":"sha512-d04Eo2Ox60AW4Snw4/3vpIhGl9EXSPB9GaS7iwhkfDdEWyy3dwKsydJahvDxltYW6F+LyOhh+TkLOTR42jBipA==","signatures":[{"sig":"MEYCIQDc9FWE7/8ESazCLl5blpNtyNZjvAgAzeTAHuthVFW9DwIhAIfgoPpRp8LcGHF57w3A2GMrQdwh1Za6kaTysXsTf6hP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591032},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"73d5f27eac750f0d6f41eaa889fb03ff23886241","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.3.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.7.7_1779644955296_0.5301101882403421","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@prsm/devtools","version":"1.8.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.8.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"9d4d9328aebf1424ea85b85f75a5c408d42e8f78","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.8.0.tgz","fileCount":7,"integrity":"sha512-HvczGW5o4oTnw7iuH5LHyLMg/iJit25ZiT/lyOG+98HLKPhuRX8o+ZLlH37ORBFGEbi73iyos6I50bdQN74srQ==","signatures":[{"sig":"MEUCIErzpcpce238NWRSWtKJeSkNCl9uNAk7VrG2744XRYXLAiEA0FVNo2yzJhZ9qQnRshH+wQlFgbqLJBlYmF5tHdZ6p+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591366},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"0c64defca3d0466d79c028afb4025b7dc55749fa","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.2.4","@prsm/lock":"^1.2.2","@prsm/cache":"^1.1.2","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.8.0_1779645513470_0.692475872574005","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@prsm/devtools","version":"1.9.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.9.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"cf714fe60cfa948c06e1d55f23c2adc7c823bbbe","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.9.0.tgz","fileCount":7,"integrity":"sha512-SkHFYDE35YRe3lgZ4jznqDAeWIP1CgjX5mY466WsOD8+P4txH9dUzRE8xuNxgxVmMa1m/nsACH+ELT8xcmR9EA==","signatures":[{"sig":"MEQCIExoGlymUSApdpQrU6kA8tuzmTmeX2dAeRkQLVqCVo58AiA/CJSqb1D7NKrLPrbfqu2n3cYUejOLXdLUPVhuuRzbOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591366},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"a8d3f07f16e17553f85e613daf97d42a0e3f7231","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.9.0_1779646920356_0.6701145592480642","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@prsm/devtools","version":"1.9.1","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.9.1","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"8932410e4b62797a8f71138d80f24c71a5b3e763","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.9.1.tgz","fileCount":7,"integrity":"sha512-ntXWXh99EmJeVLb/0MYzmfyK+nsRknWivnM+l+WiJSl7bUf11yFShDFc2kaPRSJm1i6O8a3AXP9cMyo8i35dUQ==","signatures":[{"sig":"MEQCIART/vd4mvP8zaK6QUdcV6Ey2Bb2xEg2Ay38uezmv/GMAiA5OPJPrXy0s8CatuREYM/NCqCcxs6QPC1p3gWN5vVg4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591366},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"82e0174c80baa76d1ec928ba08813d5ec9312046","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.9.1_1779647821527_0.9399173402930703","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"@prsm/devtools","version":"1.9.2","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.9.2","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"1ed99237c9260a3507f56b6041de00b16258ac06","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.9.2.tgz","fileCount":7,"integrity":"sha512-Z2LLivLAD9a/VieI0N9YrSY9d5eyp5AWeq3K8O6E4qpX4DzQYszgLO6bO010bvX/saHQWCgrUAaybpR02vgjiQ==","signatures":[{"sig":"MEUCIQDrtgUBL0KVZO9UP3iFez/B2sFcbt5O5Fujn2gWai4VcAIgDxNZ9bGIdARNEEylWZTUdtqBkeXCAT68cQMmlh+/YgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592066},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"487e9083ac76a25996f35f29062e34f7837ea428","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.2.1","@prsm/workflow":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.9.2_1779648428610_0.8146773735699466","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@prsm/devtools","version":"1.10.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.10.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"8dd87645725235c0a3069fb4b976797f35c6ba96","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.10.0.tgz","fileCount":7,"integrity":"sha512-adlYX6bxXG3r4b/l+Gj2o5kt0thTvVqpqQlIcGiezSMz9XaYeRR29vJLEKczhjkztmE+LCMHxjD5pCGRFvaaPw==","signatures":[{"sig":"MEUCIQCOrN1pBTzL8xFJyyHwx86HNxNatWf2uLiS+phQ/W3lAAIgLCTXXQVEbn3zktgDARY8NaNcEicEJZMyYzqqXOrPK9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":593947},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"6cdfffbb5a57d90a75177ec0774a8267bf23663d","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.3.4","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.3.0","@prsm/workflow":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.10.0_1779650873442_0.6185951252485573","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@prsm/devtools","version":"1.11.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.11.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"18840fc7f51d06d42d39ea0bc57284a7de795ea2","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.11.0.tgz","fileCount":7,"integrity":"sha512-lVQYMGdHq6/Bes/8U/ZcGGgsYiqyeuAEiKY6m7X1CBff+Ltz3+8jYlX1L+Nk4NSQCrY+0sO4CBUT89rJM12PCg==","signatures":[{"sig":"MEUCIB67alG3XYX2t3uBwWHBJoIHnoPrlsOAP6inBMak334BAiEAp3to3YJr1Dr1/Yjqb5k5TEGtDcJqjH3CBWyERkcM8cM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598633},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"ea83c03e2916963f3677dc99ce1bdd696f1e3924","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.3.0","@prsm/workflow":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.11.0_1779651666957_0.15518815047950318","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@prsm/devtools","version":"1.11.1","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.11.1","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"73d26293736d26640a13e40ba657a62305ebd9be","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.11.1.tgz","fileCount":7,"integrity":"sha512-aClOzAH5wio+VlwNOotfMJ4fNqqIL9v20QbqbimyVwllo4rvjLxY8L8/qqJ41G0QK0PEi6zYwXYgFl9H5e6vDw==","signatures":[{"sig":"MEQCIFX2z1wwGzEWdNY676DAgfNIoL1HXYL1oXtJKdEIn1l1AiBPgB9huqXQx+i/rmo3tbSBiSlS2D270oe/PNJDmkVQYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598633},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"aa3d81f470775a4f60534764a677632dcbec386b","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.4.0","@prsm/workflow":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.11.1_1779651928730_0.22655024797577017","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@prsm/devtools","version":"1.11.2","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.11.2","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"629a28656d8c59a8f9938706b3c824ab85fc90bb","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.11.2.tgz","fileCount":7,"integrity":"sha512-sbjB8IkuaHLNdYI3+uZn2wIBkAqkptgsjHSVe8F5d05B20S+K4gNLYGTs15fKu8DODZfYJVamrRHa8x2DaieJA==","signatures":[{"sig":"MEUCIQCSA/zGhpjLXSS2bUGYEygVlDTg/bc/OK7rIhwhw7TbHQIgZYDwO+5XNn8Hx8UL5EqE3bsCnxMgqff7dHN3RL4F9AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598732},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"2c93a415c5ff3113767a3feda14bf12e61cea1b8","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.4.0","@prsm/workflow":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.11.2_1779652652831_0.10235927747862328","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@prsm/devtools","version":"1.12.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.12.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"41a39bc53904439ae47e15ff00a0cc26efce6014","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.12.0.tgz","fileCount":7,"integrity":"sha512-Lmzbb8oGB7vD7q5cefPULgWGoGX/vLe9u4TgaZWMHwaQ9c69zZCVSYIQroJUsiDSYpzyscYO5zQ8zfBYay+YGQ==","signatures":[{"sig":"MEQCIE60/mYIOYwDFOdBGn7lSflfGdxd/GE9X51Vty17aIesAiA/6bYthB2TlX9lQ2w8Wz8dseHfgWoVbE95eNZzy3aeDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607684},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"3d49efa37082df5e05f06e07de1d7cc2eb0ef966","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/queue":"^3.4.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.6.0"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.12.0_1781027577554_0.6784296181588554","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@prsm/devtools","version":"1.13.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.13.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"7f5f03dbd12e669184b2182be15417d2f6cbb731","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.13.0.tgz","fileCount":7,"integrity":"sha512-O5CCWrWx2MqsN1FJo3AF17/yl0a/AehChKMlVBcK0zqjPAGm4r5MAJ3mdhtZBittQLTtG9vJZji8z8mZDYV6CA==","signatures":[{"sig":"MEYCIQDV/T9hXm1eL3MwEJ0IbNnx2YAexijvpKJ9hN506be6bwIhAL2g8XSW6Nl+wGzU2l5CtY8+GrodgOp31HYV72rEpjE2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":644573},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"a080bb57e9931a98b9d6c586551897a2f5d7a0b4","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.13.0_1781808000807_0.7987789397133391","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@prsm/devtools","version":"1.14.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.14.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"137a177f3ef5fc36542fcd98be6d9326544d6c68","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.14.0.tgz","fileCount":7,"integrity":"sha512-VKLTPFMdEbmyhkfvKrApd+DGpXeOoQBT8E0GHO24fSU8XS9WrRZ1pgWtSmLKkiQtKz14LuL4lgPt8lUGrJLhvQ==","signatures":[{"sig":"MEQCIF67elliW3AQ0Px/7k2ZcD7F0VLNWAUVhjzB0hQB69UGAiAYpspFZN+KTjRM6RS5wfampqcnp/1poRrYXasoZiQT5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":669086},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"7017e6aae04add2c0da2c701835e70c299752099","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.2.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.2.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.14.0_1781830736918_0.14387915278521768","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@prsm/devtools","version":"1.15.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.15.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"e22160f408d0e811526aef712a6b74b06706577e","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.15.0.tgz","fileCount":7,"integrity":"sha512-HGm09L3FNl6EznKKXsmXLjQIt3ZlpKgzqsuWvQ0E1VrL8mbMx+iHtr9LPEfCJSeqv3pGgjjxCkYQk8tiRO8x0w==","signatures":[{"sig":"MEQCIH2zioaomxzEBZmC4GWg2o9wQCsc57DFZ8+aodG880vEAiBSbiRGRqTI5HsRyJxI6/grKn7UOwJCAif59WZkpBSVKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676139},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"798da8b33f6bcb2b7e8c589d63123d2ea032b3c5","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.15.0_1781831577466_0.5079069619232222","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@prsm/devtools","version":"1.15.1","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.15.1","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"2e096599c1d8f678da46cace68fa59cace54ac28","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.15.1.tgz","fileCount":7,"integrity":"sha512-pPKCVrSTwUQe/on31TgpHPuHbrbmWqKCc/lIZaFAJIaQrAMZZT5b41ro092B9N3T8l025pa5hEbmecD7oY+mPA==","signatures":[{"sig":"MEUCIQDIQkcHPk9c9CaXkWX5LAb+Tt6nJOaw0nBhqOkbHo46iwIgGeo520aJNRhVzI4sAGJ0qVulFP1Y+x0qI9HnPbGq8qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676058},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"ee82acf78607ad94489611a8e904b95a6bc6fe13","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.15.1_1781831864095_0.7031803634290712","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@prsm/devtools","version":"1.15.2","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.15.2","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"b60eb7b7ae7b31bf0242c11bc80085bd3e3a5c2c","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.15.2.tgz","fileCount":7,"integrity":"sha512-dHa6UxrXtUm1QmXUXEU+Q1uSXHfZkPevJsqRQioMUCoY1bz1GILVgjWTaCJz/FHpv3nYLSiHMhMciZTryyTNjQ==","signatures":[{"sig":"MEUCIHipvFtkL6ZJaItHCAbrgPimA1PVWrN6bbxRiJwqHqbOAiEAiOyKz9dJKck51PGJIM2uOogTaXn+ojfyg6GWNUO84fA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676031},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"542872cb3e0846cf4bab868bc0659b818c6136fe","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.15.2_1781832042601_0.2988727585158959","host":"s3://npm-registry-packages-npm-production"}},"1.15.3":{"name":"@prsm/devtools","version":"1.15.3","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.15.3","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"db386863b3d3c5bd0d136118ca1b047eb3abc802","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.15.3.tgz","fileCount":7,"integrity":"sha512-vf/rG0Tf6zeCIMBzh9kvwgHLFH5oGYlOqBniQrNTdgxJa0FIp+IZC5Rxrh41A9dW+c8iqRgX1oJNNHQHtwY6rQ==","signatures":[{"sig":"MEUCIQCRX5YrqcmXHv87ciuZ7VTrJaaD7OLc0rGEDKHDSX5qYgIgaAyuISwt/V0kWV+noUzhs0ceuQEW4nqJ3Z+dOEhHc00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677033},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"dc936bb8a5a1e9c0119f351f41558718f6886605","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.15.3_1781832372226_0.0934312324905473","host":"s3://npm-registry-packages-npm-production"}},"1.15.4":{"name":"@prsm/devtools","version":"1.15.4","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.15.4","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"4bf48476f4838def28ec934fc456369a83414c89","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.15.4.tgz","fileCount":7,"integrity":"sha512-PhacOaBetm03kSPs00cUipz8RoUfGG0UyYDX7KH8I3cgUfV+cRfox0FxGUbZkruGy+yIGVtoIcCPPXp1DklcIQ==","signatures":[{"sig":"MEYCIQCDveiiq1ZP6pxbexG0+yFVUwXR/q1qu1unOD/+j0oegQIhANOEiCheU+4izLNYwzOMoI9Z1Vu6iRc8p1wmlsctEa9d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677506},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"8662ca82a228da506547ff933ec75707acceac93","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.15.4_1781833278743_0.24934509599920496","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@prsm/devtools","version":"1.16.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.16.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"3d9f34d58054906da18695f6afae105f24f0bc56","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.16.0.tgz","fileCount":7,"integrity":"sha512-TlJV+vE1UF07Wyr9jpCJ1puROk6N5OWlbsR7xKMpk9IXIuYW4X0FHmdfb4bcr5F32Fkygm41S7/Me1JXC9RWOQ==","signatures":[{"sig":"MEUCIHrlP9p7oaATaRe99ga1wjrUBDGpNmYo8Wa5MgT2eJtzAiEAoG5AF4+St162g3RGt4/Pd+FEubGCd86RKRcKQKnrrr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681376},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"b4c7c66dc3e1e470fd850557f11d1330c83648b6","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.16.0_1781889471206_0.7990939910637198","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@prsm/devtools","version":"1.17.0","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","_id":"@prsm/devtools@1.17.0","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"dist":{"shasum":"af1201036bd0b2522d653984f5c008d7a190736c","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.17.0.tgz","fileCount":7,"integrity":"sha512-hpBOYnPSE9dSVTpezW1UZ1MaF6uQZf06nNK8I5lC3gCVCvL2nvEb+42f1TyuoarDdF8xXAB9pAdQPKt6oHdJhA==","signatures":[{"sig":"MEQCIGVlkyiJyGpdq4QvR3JMzq3zWK6y5wm4L9PKcIhPkpcpAiBLBCpitEZvOKfBGEel83ryNuBqUosXL3ot8BhXEzjsLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736802},"type":"module","engines":{"node":">=18"},"exports":{".":{"default":"./src/index.js"}},"gitHead":"533bd2e37aacbfcd39231a9127bdbd5d54ab8d0d","scripts":{"test":"vitest run","build:client":"cd client && npm run build","prepublishOnly":"npm run build:client"},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"_npmVersion":"10.9.8","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","directories":{},"_nodeVersion":"22.22.3","dependencies":{"express":"^4.21.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.1","cors":"^2.8.6","dotenv":"^16.4.7","vitest":"^4.1.7","@prsm/auth":"^1.3.0","@prsm/cron":"^1.3.0","@prsm/lock":"^1.2.2","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/limit":"^1.3.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.5.0","@prsm/trace":"^1.2.0","@prsm/entitle":"^2.3.0","@prsm/realtime":"^1.6.1","@prsm/workflow":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/devtools_1.17.0_1782155601154_0.587126926189417","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"@prsm/devtools","version":"1.17.1","description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","type":"module","exports":{".":{"default":"./src/index.js"}},"scripts":{"build:client":"cd client && npm run build","prepublishOnly":"npm run build:client","test":"vitest run"},"keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"license":"MIT","dependencies":{"express":"^4.21.0"},"devDependencies":{"@prsm/auth":"^1.3.0","@prsm/cache":"^1.2.0","@prsm/cells":"^1.4.0","@prsm/cron":"^1.3.0","@prsm/entitle":"^2.3.0","@prsm/limit":"^1.3.2","@prsm/lock":"^1.2.2","@prsm/meter":"^1.3.0","@prsm/queue":"^3.6.0","@prsm/realtime":"^1.7.4","@prsm/trace":"^1.2.0","@prsm/workflow":"^3.7.3","cors":"^2.8.6","dotenv":"^16.4.7","pg":"^8.13.1","vitest":"^4.1.7"},"engines":{"node":">=18"},"_id":"@prsm/devtools@1.17.1","gitHead":"e95155bce28de230933034fa6ab3f9d6096e2ad1","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Z+pUxSFN8DlEgZP/dGu6xuyhrOIWgNfsRsTrIwimsa/zhIyFLl7QecOc7Mw12AEOQb3HIqe9BpP71fuSc4oJSA==","shasum":"8ba684bf266422a414a11004d4427b20a620d912","tarball":"https://registry.npmjs.org/@prsm/devtools/-/devtools-1.17.1.tgz","fileCount":7,"unpackedSize":738169,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDXvnP+ArDr+x3Dz2q2CgQOIC1R+8aQ76SHSZohQDN4KQIhAMz0oWCpwHLf1O0rqaB8uV6xOviiGxtwJ5poJXK7dSEA"}]},"_npmUser":{"name":"nvmsy","email":"jon@pye.rs"},"directories":{},"maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/devtools_1.17.1_1784086969180_0.3336741377086512"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T01:20:30.710Z","modified":"2026-07-15T03:42:49.456Z","1.0.0":"2026-03-18T01:20:30.951Z","1.0.1":"2026-03-21T15:44:26.842Z","1.0.2":"2026-03-21T15:46:10.657Z","1.1.0":"2026-05-23T12:45:00.536Z","1.2.0":"2026-05-23T12:57:37.113Z","1.3.0":"2026-05-23T14:45:05.336Z","1.4.0":"2026-05-23T15:43:58.130Z","1.5.0":"2026-05-23T19:21:11.705Z","1.6.0":"2026-05-24T00:57:39.998Z","1.7.0":"2026-05-24T17:12:57.833Z","1.7.1":"2026-05-24T17:18:34.697Z","1.7.2":"2026-05-24T17:22:35.959Z","1.7.3":"2026-05-24T17:23:58.356Z","1.7.4":"2026-05-24T17:38:44.827Z","1.7.5":"2026-05-24T17:42:23.478Z","1.7.6":"2026-05-24T17:46:10.891Z","1.7.7":"2026-05-24T17:49:15.505Z","1.8.0":"2026-05-24T17:58:33.645Z","1.9.0":"2026-05-24T18:22:00.622Z","1.9.1":"2026-05-24T18:37:01.713Z","1.9.2":"2026-05-24T18:47:08.809Z","1.10.0":"2026-05-24T19:27:53.581Z","1.11.0":"2026-05-24T19:41:07.136Z","1.11.1":"2026-05-24T19:45:28.914Z","1.11.2":"2026-05-24T19:57:33.019Z","1.12.0":"2026-06-09T17:52:57.723Z","1.13.0":"2026-06-18T18:40:01.011Z","1.14.0":"2026-06-19T00:58:57.105Z","1.15.0":"2026-06-19T01:12:57.717Z","1.15.1":"2026-06-19T01:17:44.306Z","1.15.2":"2026-06-19T01:20:42.776Z","1.15.3":"2026-06-19T01:26:12.388Z","1.15.4":"2026-06-19T01:41:18.884Z","1.16.0":"2026-06-19T17:17:51.431Z","1.17.0":"2026-06-22T19:13:21.360Z","1.17.1":"2026-07-15T03:42:49.340Z"},"license":"MIT","keywords":["devtools","dashboard","queue","cron","rate-limit","realtime","websocket","observability"],"description":"Read-only Express middleware dashboard for observing @prsm infrastructure at runtime","maintainers":[{"name":"nvmsy","email":"jon@pye.rs"}],"readme":"<p align=\"center\">\n  <img src=\".github/logo.svg\" width=\"80\" height=\"80\" alt=\"devtools logo\">\n</p>\n\n<h1 align=\"center\">@prsm/devtools</h1>\n\nExpress middleware that provides a live dashboard for observing prsm infrastructure at runtime. Most views are read-only; a few panels expose actions (release a lock, run a cron job, manage an auth account). Pass your instances and mount the router to get a full UI.\n\n<p align=\"center\">\n  <img src=\".github/record.png\" width=\"800\" alt=\"realtime records view\">\n</p>\n\n<p align=\"center\">\n  <img src=\".github/executions.png\" width=\"800\" alt=\"workflow executions view\">\n</p>\n\n## Installation\n\n```bash\nnpm install @prsm/devtools\n```\n\n## Quick Start\n\n```js\nimport express from 'express'\nimport { RealtimeServer } from '@prsm/realtime'\nimport Queue from '@prsm/queue'\nimport { Cron } from '@prsm/cron'\nimport { slidingWindow } from '@prsm/limit'\nimport WorkflowEngine from '@prsm/workflow'\nimport { createGraph } from '@prsm/cells'\nimport { prsmDevtools } from '@prsm/devtools'\n\nconst app = express()\n\nconst realtime = new RealtimeServer({ redis: { host: '127.0.0.1', port: 6379 } })\nconst queue = new Queue({ concurrency: 5 })\nconst cron = new Cron()\nconst apiLimiter = slidingWindow({ max: 100, window: '1m' })\nconst workflow = new WorkflowEngine()\nconst portfolio = createGraph({ prefix: 'portfolio:' })\n\napp.use('/devtools', prsmDevtools({\n  realtime,\n  queue,\n  cron,\n  limit: { api: apiLimiter },\n  workflow,\n  cells: { portfolio },\n}))\n\napp.listen(3000)\n// open http://localhost:3000/devtools\n```\n\nEverything is optional. Only pass what you have - tabs appear only for connected subsystems.\n\nTo watch several queues at once - for example one queue per namespace, each with its own concurrency - pass a named map instead of a single instance. Each queue is tracked and displayed separately under the name you give it:\n\n```js\nconst downloads = new Queue({ namespace: 'downloads', concurrency: 2 })\nconst llm = new Queue({ namespace: 'llm', concurrency: 10 })\n\napp.use('/devtools', prsmDevtools({\n  queue: { downloads, llm },\n}))\n```\n\nA single `queue: someQueue` is shorthand for `queue: { default: someQueue }`.\n\n## What You See\n\n**Overview** - unified event stream from all subsystems, live via SSE\n\n**Realtime** - full inspector for `@prsm/realtime` with sub-tabs:\n\n- **Rooms** - active rooms, members, per-member presence state\n- **Channels** - channels with active subscribers\n- **Collections** - collections with subscribers, expandable resolved records per connection\n- **Records** - subscribed records with live-updating data view (via SSE) and subscription mode per connection\n- **Metadata** - detailed connection view with rooms, channels, collections, records, and presence\n\nIncludes a connection picker sidebar for filtering all views by a specific client, and a registered patterns panel showing exposed channels, records, collections, presence, and commands.\n\n**Queue** - in-flight count (polled), completed/failed/retried counters (session), event log. Pass a single queue or a named map of queues - each named queue is tracked and shown separately, so a server running several queues (for example one per namespace) sees each one's depth and throughput on its own.\n\n**Cron** - registered jobs with next fire times, fire/error event log\n\n**Limits** - registered limiters, peek inspector (inspect a key without consuming)\n\n**Workflows** - registered workflow definitions with interactive graph view, step inspector, retry/timeout metadata\n\n**Executions** - workflow execution list with filters, live graph overlay showing execution progress, per-step state, output/error inspector, and journal timeline\n\n**Meter** - inspector for `@prsm/meter`. The catalog lists every metric with its unit and aggregate. Look up a subject to see its current-period usage across all metrics, then scope any metric to a window (a calendar period like `month`, a rolling duration like `30 days`, or an explicit date range) and check it against a quota.\n\n**Entitle** - inspector for `@prsm/entitle`. The plan catalog shows every plan's features and limits and the default plan. Resolve a subject to see its effective plan, feature flags, and limits after overrides, and check any limit against live usage when a meter is composed in.\n\n**Auth** - admin panel for `@prsm/auth`, bound to the object returned by `createAuthContext`. An overview row shows account, provider, and 2FA counts alongside 24-hour login and failure totals. The accounts table supports search and pagination; opening an account reveals its roles, status, linked OAuth providers, two-factor methods, and a detail summary. From the drawer you can grant or revoke roles, change account status (ban, lock, suspend), force a logout, change the password, or delete the account, each behind a confirmation. A separate activity tab streams the recent audit log. Password hashes and TOTP secrets never leave the server.\n\n**Cells** - one or more `@prsm/cells` graphs with two views per graph:\n\n- **Table** - every cell in the graph with current value, dependencies, status, and last-updated time. Click a row to open a detail panel below\n- **Graph** - DAG visualization with topologically-laid-out nodes and live propagation flashes when values change\n\nThe detail panel shows the cell's current value (syntax-highlighted JSON), source descriptor, metadata, template body (for templated cells), recent history (for cells with history enabled), and graph relationships. Pass a single graph or a named map of graphs - the panel includes a graph picker when more than one is provided.\n\n## API\n\n### `prsmDevtools(options)`\n\nReturns an Express `Router`. Mount it wherever you want.\n\n```js\napp.use('/devtools', prsmDevtools(options))\n```\n\n#### Options\n\n| Option | Type | Description |\n| --- | --- | --- |\n| `realtime` | `RealtimeServer` | A `@prsm/realtime` server instance |\n| `queue` | `Queue` or `Object<string, Queue>` | A `@prsm/queue` instance, or a named map of queues |\n| `cron` | `Cron` | A `@prsm/cron` instance |\n| `limit` | `Object<string, Limiter>` | Named limiters from `@prsm/limit` |\n| `workflow` | `WorkflowEngine` | An `@prsm/workflow` engine instance |\n| `cells` | `Graph` or `Object<string, Graph>` | A `@prsm/cells` graph instance, or a named map of graphs |\n| `meter` | `Meter` or `Object<string, Meter>` | A `@prsm/meter` instance, or a named map of meters |\n| `entitle` | `Entitlements` or `Object<string, Entitlements>` | A `@prsm/entitle` instance, or a named map of resolvers |\n| `auth` | `AuthContext` | The object returned by `@prsm/auth`'s `createAuthContext(config)` |\n| `realtimeChannelBufferSize` | `number` | How many recent messages to retain per realtime channel (default `100`) |\n\nAll options are optional. The dashboard adapts to what's provided.\n\n### Endpoints\n\nThe middleware exposes these under its mount path:\n\n| Endpoint | Description |\n| --- | --- |\n| `GET /api/config` | Which subsystems are connected |\n| `GET /api/events` | SSE stream (queue, cron, workflow, realtime record and channel message updates) |\n| `GET /api/queue` | Snapshot of every registered queue, keyed by name |\n| `GET /api/queue/:name` | Snapshot of one named queue |\n| `GET /api/queue/:name/history` | Recent complete/retry/failed events for one named queue |\n| `GET /api/cron` | Registered jobs with next fire times |\n| `GET /api/limits` | List of named limiters |\n| `GET /api/limits/:name/peek/:key` | Peek at a limiter key |\n| `GET /api/workflows` | Registered workflows with graph data |\n| `GET /api/workflows/describe` | One workflow definition |\n| `GET /api/workflow/executions` | Workflow executions, filterable by workflow/status |\n| `GET /api/workflow/executions/:id` | One workflow execution |\n| `GET /api/realtime/state` | Full realtime state snapshot |\n| `GET /api/realtime/connection/:id` | Detailed connection info |\n| `GET /api/realtime/room/:name` | Room members with metadata and presence |\n| `GET /api/realtime/channel/:channel/messages` | Recent messages observed on a channel |\n| `GET /api/realtime/record/:id` | Fetch a record's current value |\n| `GET /api/realtime/collection/:id/records` | Resolved records for a collection + connection |\n| `GET /api/cells/:graph` | All cells in the named graph with values, deps, status, metadata |\n| `GET /api/cells/:graph/:name/history` | Recent values for a cell (if history is enabled on it) |\n| `GET /api/meter/:name/catalog` | A meter's period and declared metric catalog |\n| `GET /api/meter/:name/subjects?limit=` | Subjects with recorded usage, most-recently-active first |\n| `GET /api/meter/:name/summary?subject=` | A subject's current-period usage across every metric |\n| `GET /api/meter/:name/usage?subject=&metric=&period=` | Windowed usage for one metric (also accepts `rangeStart`/`rangeEnd`) |\n| `GET /api/meter/:name/check?subject=&metric=&limit=` | Usage for one metric checked against a quota |\n| `GET /api/entitle/:name/catalog` | The plan catalog, default plan, and feature/limit universes |\n| `GET /api/entitle/:name/subjects?limit=` | Subjects with an assignment or override, most-recently-configured first |\n| `GET /api/entitle/:name/describe?subject=` | A subject's effective plan, features, and limits |\n| `GET /api/entitle/:name/check?subject=&key=` | A subject's limit checked against live meter usage |\n| `GET /api/auth/overview` | Account/provider/2FA counts, activity stats, and the role/status/mechanism maps |\n| `GET /api/auth/accounts?limit=&offset=&search=` | Paginated accounts (password hashes stripped) |\n| `GET /api/auth/accounts/:id` | One account with linked providers and two-factor methods (secrets stripped) |\n| `GET /api/auth/activity?limit=&accountId=` | Recent activity log entries |\n| `POST /api/auth/accounts/:id/status` | Change account status |\n| `POST /api/auth/accounts/:id/roles` | Add or remove a role (`{ role, op }`) |\n| `POST /api/auth/accounts/:id/force-logout` | Force logout of all sessions |\n| `POST /api/auth/accounts/:id/password` | Change the account password |\n| `DELETE /api/auth/accounts/:id` | Delete the account and all associated data |\n\n## How It Works\n\nThe middleware listens to events on the instances you pass and forwards them to connected browsers via Server-Sent Events. Realtime record updates stream live over SSE - when you expand a record in the UI, its value updates in place as it changes on the server. Polling endpoints read current state from the instances' public APIs.\n\nThe Vue SPA is pre-built at publish time and served as static files from the same mount point. No build step needed in your project.\n\nNo dependencies on any `@prsm` packages. The middleware reads from whatever objects you give it.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}