{"_id":"@spfn/monitor","_rev":"36-8637e3ecd94f2bbb335f0f823b29a57c","name":"@spfn/monitor","dist-tags":{"beta":"0.2.0-beta.3","latest":"0.2.0-beta.3"},"versions":{"0.1.0-beta.1":{"name":"@spfn/monitor","version":"0.1.0-beta.1","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.1","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"4d2e05df0baf12ede6f39518a1dac3090f7c52ec","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.1.tgz","fileCount":19,"integrity":"sha512-/fBzB/MVTqPvm+gGSqUYb+r1bpxiaJU+qbCfSXjlV1tKmrpq4gfGAGuyiyaFbGvI1CnuSML+yXNBFpsjlzhi8g==","signatures":[{"sig":"MEYCIQCE5f1gyVtyeTK39RX7OifPFcpBM8tyWDNmYf8dXC30mwIhALJcUPm2br4hnMko/Gl/hLTS/jJmmIpm6NcyUmCXzVZL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635872},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/b2edff7820a1f47130d510fe08f518ff/spfn-monitor-0.1.0-beta.1.tgz","_integrity":"sha512-/fBzB/MVTqPvm+gGSqUYb+r1bpxiaJU+qbCfSXjlV1tKmrpq4gfGAGuyiyaFbGvI1CnuSML+yXNBFpsjlzhi8g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.20","@spfn/core":"0.2.0-beta.16","@spfn/notification":"0.1.0-beta.3"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.1_1771400193598_0.15384955386264076","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"@spfn/monitor","version":"0.1.0-beta.2","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.2","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"7c75920e97f8aaf4775229773a84da69ae4f97c2","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.2.tgz","fileCount":19,"integrity":"sha512-lEC0B8rq8IKQKE5kO27zV3CLbhqRBHRsOEMbTcfAq3g/e80YIh1vApiilI3rm2YEKqQv0fLEROKktCyDDLb0qA==","signatures":[{"sig":"MEQCIC+Y9ram9TkD8WkdzwT63RK8muwuOqLY3ZTEqxDXM/85AiAPPrF/4FnDhp0ftcS8xYNE3QGfodU60va6wp8IuJXqPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":636920},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/4a7263b98b9dd5c20fe3e7636a9c0d96/spfn-monitor-0.1.0-beta.2.tgz","_integrity":"sha512-lEC0B8rq8IKQKE5kO27zV3CLbhqRBHRsOEMbTcfAq3g/e80YIh1vApiilI3rm2YEKqQv0fLEROKktCyDDLb0qA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.20","@spfn/core":"0.2.0-beta.17","@spfn/notification":"0.1.0-beta.3"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.2_1771427575238_0.17749913186239996","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.3":{"name":"@spfn/monitor","version":"0.1.0-beta.3","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.3","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"eddbdd6bd25e3dfcd620d3b6eab2962a35a29883","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.3.tgz","fileCount":19,"integrity":"sha512-icupR3Zw3+6js1qleN96fvguL60qBYy9M+kmUW40Kn/YRhi70ydv0h0TVNNYfYg/O46XjCBdwGO0kla4Nf1BjQ==","signatures":[{"sig":"MEQCIBdVGuL9r/SNM1Obt7otgOzDOHzpDoeIh6rMCxB/GVorAiB2IaV+1vv1JFWINeX8OHxi409DoNyViYSQaUGYDis7QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637349},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/617406c30b0645fa421743d956ec01b9/spfn-monitor-0.1.0-beta.3.tgz","_integrity":"sha512-icupR3Zw3+6js1qleN96fvguL60qBYy9M+kmUW40Kn/YRhi70ydv0h0TVNNYfYg/O46XjCBdwGO0kla4Nf1BjQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.21","@spfn/core":"0.2.0-beta.19","@spfn/notification":"0.1.0-beta.6"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.3_1771586246813_0.7350291153835509","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"@spfn/monitor","version":"0.1.0-beta.4","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.4","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"6d7f03398c58d6a70670b0dc8a44b496908ce75a","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.4.tgz","fileCount":19,"integrity":"sha512-Y9JLnw1t2NH/4sWJVy4coX461M6W0STCdPSDoSBfZbd7W5gYd/NDoZK4j4LvCUuEejnBrk5vMh6xMMMKQ3hUtQ==","signatures":[{"sig":"MEQCIGyc4p6Z0w6SbXPNqtSOakJ0SqlLmtnrmFSYS4mmFRxlAiB4YtRrBrQlkEt66Ovg01aTYs2MrnRTfMtccfKwEMAgbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637349},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/1ff8437b8a1b3a8175314875bc7fcb9f/spfn-monitor-0.1.0-beta.4.tgz","_integrity":"sha512-Y9JLnw1t2NH/4sWJVy4coX461M6W0STCdPSDoSBfZbd7W5gYd/NDoZK4j4LvCUuEejnBrk5vMh6xMMMKQ3hUtQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.22","@spfn/core":"0.2.0-beta.20","@spfn/notification":"0.1.0-beta.8"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.4_1771736781828_0.7753857882401534","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.5":{"name":"@spfn/monitor","version":"0.1.0-beta.5","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.5","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"4d027f3ff9b91bc8933b8f27bb27c4435828f5a0","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.5.tgz","fileCount":19,"integrity":"sha512-d7m6pBdb7rMKMkf1LS7U+r4vbLMyvWkgkiBD+qoTup67BlSQqw9RUnVjFUa7aR7CzO7Ygy+H0kL6FjzZeMIqFA==","signatures":[{"sig":"MEYCIQC5/Mu1SkPqFRnb9xCdriGc0/Qq6R9+Ub7LsHNefu6KtQIhAItHnuF9VWk+flErmkqLrz7QsrLQOk4jGp1auTmw/eWB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637349},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/ee12576bb649487b52943f4d21604bae/spfn-monitor-0.1.0-beta.5.tgz","_integrity":"sha512-d7m6pBdb7rMKMkf1LS7U+r4vbLMyvWkgkiBD+qoTup67BlSQqw9RUnVjFUa7aR7CzO7Ygy+H0kL6FjzZeMIqFA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.23","@spfn/core":"0.2.0-beta.21","@spfn/notification":"0.1.0-beta.9"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.5_1771745366955_0.12156105538616946","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.6":{"name":"@spfn/monitor","version":"0.1.0-beta.6","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.6","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"2fad86a55d1a2acca397d198d52507c5d5f94002","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.6.tgz","fileCount":19,"integrity":"sha512-l3zpRjpj5bXFCCIdBabtSpjjhhIBC94pi+2wJDLXBZO/bEPrNaCqjLrWmRe7brjp5leMP/XT9i/1+lGhkcsxMA==","signatures":[{"sig":"MEUCIGSvxp16xNB/UwyttGCjBVKMtgROr6muVu7pbCuHhhTxAiEAxELWmV/DqyfG5SeuQQ2DLcAAMBuS3VohlltlMS5FGPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637350},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/4d5f802ecbaff7b9c24c100d4a7e84c4/spfn-monitor-0.1.0-beta.6.tgz","_integrity":"sha512-l3zpRjpj5bXFCCIdBabtSpjjhhIBC94pi+2wJDLXBZO/bEPrNaCqjLrWmRe7brjp5leMP/XT9i/1+lGhkcsxMA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.24","@spfn/core":"0.2.0-beta.22","@spfn/notification":"0.1.0-beta.10"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.6_1771752929931_0.2115350494736472","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.7":{"name":"@spfn/monitor","version":"0.1.0-beta.7","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.7","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"30f72e721f38e87e6b0e5fbe74cc6294df9dea27","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.7.tgz","fileCount":19,"integrity":"sha512-rhsISsnZ5UoDWjn7Ba5qDiAJtHCR28mGY+wwUpO/aCouBQTP8URkI14fJlDRBUN5QsoQdaCHYOtBvpPm6jhIRQ==","signatures":[{"sig":"MEUCIGh0fd7vKuRj7ygrzEPgSjq1XpuM89e9Pctof8guMzUAAiEA/H894cm0dUDkMz041VQpgprhVtvb8JJFFzkqVOxWGpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637350},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c73100a8e6fd3809986f0db4b65f1924/spfn-monitor-0.1.0-beta.7.tgz","_integrity":"sha512-rhsISsnZ5UoDWjn7Ba5qDiAJtHCR28mGY+wwUpO/aCouBQTP8URkI14fJlDRBUN5QsoQdaCHYOtBvpPm6jhIRQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.26","@spfn/core":"0.2.0-beta.23","@spfn/notification":"0.1.0-beta.11"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.7_1771833632686_0.5149373229653671","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.8":{"name":"@spfn/monitor","version":"0.1.0-beta.8","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.8","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"62706a6f3d653370d25d4c26369313bfc60b54ff","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.8.tgz","fileCount":19,"integrity":"sha512-Bxqk/hP7WQHqMGb7H0+nuKveltKckXYJnuSH0kqCwm2wk4VTmXz+mhaYi/60uyNm83D3nbWSBacJmWqFEtFahA==","signatures":[{"sig":"MEUCIQDcuV/AAJN82dH+3epl3gdmU+1MwDfLCDL+UEfppsSFwAIgcd3Ui35YAA00zh3Pdvowb3YNZxjit1whDVYXJa/VPio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637350},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/ea5329d0d76ba79140906b647606a9c9/spfn-monitor-0.1.0-beta.8.tgz","_integrity":"sha512-Bxqk/hP7WQHqMGb7H0+nuKveltKckXYJnuSH0kqCwm2wk4VTmXz+mhaYi/60uyNm83D3nbWSBacJmWqFEtFahA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.10.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.27","@spfn/core":"0.2.0-beta.23","@spfn/notification":"0.1.0-beta.11"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.8_1771947088615_0.7708756919238378","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.9":{"name":"@spfn/monitor","version":"0.1.0-beta.9","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.9","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"95b3992eb9a11de364c20540764c61d90e224a62","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.9.tgz","fileCount":19,"integrity":"sha512-gpE63bOY6S+NtOEO4sS8I+ZytIco7O17zDw4ffr0Rrr+ll+p7vv4lvXyR1htgf/Wp/bj03QQSlS14k8zxxcE+Q==","signatures":[{"sig":"MEUCIEWWrUc7wZAV/wfXLfoyJo51ZLL8X2rcMm+RDcQI5tHrAiEA47KWCkw7hJtN57RkxxO5WMfX2op2xZUb6jjLlqOUAnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637357},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c8649686adf5d8bd0e2b4ef1f6dd7553/spfn-monitor-0.1.0-beta.9.tgz","_integrity":"sha512-gpE63bOY6S+NtOEO4sS8I+ZytIco7O17zDw4ffr0Rrr+ll+p7vv4lvXyR1htgf/Wp/bj03QQSlS14k8zxxcE+Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.11.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.35","@spfn/core":"0.2.0-beta.27","@spfn/notification":"0.1.0-beta.11"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.9_1772527473515_0.20416845842673603","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.10":{"name":"@spfn/monitor","version":"0.1.0-beta.10","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.10","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"036844eca3bbd80b2f51dc9df32b074534977a4f","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.10.tgz","fileCount":19,"integrity":"sha512-lqM8lhK7XYjT80pHlxxZXKSOtQ0auUWyaRC3pYeWHVN7MNcdQ2LNBeaNOmR19sds6B4S/qJ4sDZOF1oG4PtDlw==","signatures":[{"sig":"MEQCIH0d2MeHoW+Zzd1FCG6vt5OaSZzexkuTGRkYjHqfBKNhAiBm2osbv7omesfM+tfgp9SLXh6Cry2+NFNTZK7T3kAdTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637358},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/712c308446caffc11eafebf2e71150ea/spfn-monitor-0.1.0-beta.10.tgz","_integrity":"sha512-lqM8lhK7XYjT80pHlxxZXKSOtQ0auUWyaRC3pYeWHVN7MNcdQ2LNBeaNOmR19sds6B4S/qJ4sDZOF1oG4PtDlw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.11.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.37","@spfn/core":"0.2.0-beta.29","@spfn/notification":"0.1.0-beta.12"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.10_1772811549073_0.1984260954896171","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.11":{"name":"@spfn/monitor","version":"0.1.0-beta.11","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.11","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c87c528c4453ba1581b2150e0e90dfbbe9080cf6","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.11.tgz","fileCount":19,"integrity":"sha512-CF5FRVELT1p/1Gz5SA+vTplCa5AeDdBRyqD7PialDw8785DYsU1WO8NduZKPdzdP8Xhauc3V/QJHhWpBWcoRAg==","signatures":[{"sig":"MEYCIQD5XJHIx5QTc7cE0QrtJcL3TkbuA/5bQXxxW624ZUCq6gIhAMswYV3aMgKQleow46WU7PoTCPOHzMh4BpqXrZW3FDee","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637358},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.11.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/85fe4b6bc6df4bc5357a2ad93ded8d56/spfn-monitor-0.1.0-beta.11.tgz","_integrity":"sha512-CF5FRVELT1p/1Gz5SA+vTplCa5AeDdBRyqD7PialDw8785DYsU1WO8NduZKPdzdP8Xhauc3V/QJHhWpBWcoRAg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.11.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.38","@spfn/core":"0.2.0-beta.30","@spfn/notification":"0.1.0-beta.13"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.11_1772812412797_0.18788983064952736","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.12":{"name":"@spfn/monitor","version":"0.1.0-beta.12","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.12","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"1824e542f518c1fb1a6b3d4008ab7da8d083f89c","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.12.tgz","fileCount":19,"integrity":"sha512-nkG2cugMV0nd9ZvdTyNBYAT3IXLkoad8FaR71IIh7D69kN5YGcTvV3o9fAfR2JiHelQ3rVTdG4fs6JWRa56QHg==","signatures":[{"sig":"MEQCIBkteAfn65pYDAQdcyfMsGFG6Mx+5zr232r8mreU6zn2AiA40XByfQERWszbVMf+XpwJ2IL/D4q8fpGt17g7z/7JNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637358},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.12.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/10e050bfedb4c551f4a730371ccdb87f/spfn-monitor-0.1.0-beta.12.tgz","_integrity":"sha512-nkG2cugMV0nd9ZvdTyNBYAT3IXLkoad8FaR71IIh7D69kN5YGcTvV3o9fAfR2JiHelQ3rVTdG4fs6JWRa56QHg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.11.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.39","@spfn/core":"0.2.0-beta.31","@spfn/notification":"0.1.0-beta.14"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.12_1772855944678_0.3944826040674778","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.13":{"name":"@spfn/monitor","version":"0.1.0-beta.13","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.13","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d4d29eed557b2df9ff70d324e30458678d079c2b","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.13.tgz","fileCount":19,"integrity":"sha512-Dv7ag6pAWfrurvuNQEXpqedsrhP7C3KVSII7V8omIPjoMJIt7bGiqkVUchpBRW4//CSo/rCs6WFTQCvb5gkR/g==","signatures":[{"sig":"MEUCIERH3xpi90AG2L+c3ZAl0dYHx23fTaJdchU5vFs+lL/NAiEAh0mtXgWiruBqGQm7ymyT1V5j1+t7TVHRXY10SS58+44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637358},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.13.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/8d5e563d5aaff3102a0e02f74ddd740c/spfn-monitor-0.1.0-beta.13.tgz","_integrity":"sha512-Dv7ag6pAWfrurvuNQEXpqedsrhP7C3KVSII7V8omIPjoMJIt7bGiqkVUchpBRW4//CSo/rCs6WFTQCvb5gkR/g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.11.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@spfn/auth":"0.2.0-beta.46","@spfn/core":"0.2.0-beta.32","@spfn/notification":"0.1.0-beta.16"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.13_1773220879711_0.06498917026414963","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.14":{"name":"@spfn/monitor","version":"0.1.0-beta.14","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.14","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"dbd9f2f22753a9d053261a943d2ef170ae5a053d","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.14.tgz","fileCount":21,"integrity":"sha512-MH/tX/s5p6YAYl5YvVHVQTGEmAo37OMLFRqCuH2+jzipOE994PewJDySAs9qbtrM/dE3Aq/k+yGofwX8uCLa8w==","signatures":[{"sig":"MEQCIEkBEZtp6wDk1sBB8YqSjiR1mB+SqXGN5bXS/e4S9GjvAiAEYFslrjUNR9gx6HKc1OhYah0jLAHY7YXKgbCikENqhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":649216},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.14.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/4c59ec5ca79629e42c11a48354da012b/spfn-monitor-0.1.0-beta.14.tgz","_integrity":"sha512-MH/tX/s5p6YAYl5YvVHVQTGEmAo37OMLFRqCuH2+jzipOE994PewJDySAs9qbtrM/dE3Aq/k+yGofwX8uCLa8w==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.12.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@spfn/auth":"0.2.0-beta.55","@spfn/core":"0.2.0-beta.36","@spfn/notification":"0.1.0-beta.16"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.14_1774403306250_0.6785310403555562","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.15":{"name":"@spfn/monitor","version":"0.1.0-beta.15","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.15","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c8de58a5f24a7248773ff0510a80b371366ddab2","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.15.tgz","fileCount":21,"integrity":"sha512-PYA+bqYDxjQqSXhy/XslLMH7j4iHsLOv9Uwtd9UK3lrmzUkKG7EOF2jYBinYmDgEl//baY+R4d0IPARvxZwKrQ==","signatures":[{"sig":"MEUCIFPtqxxNFVli1zc6sV4r4B9aeZDfzW8PMBNWXGa+7mA/AiEA/eFi3IL4hyDMx6V9hGY7BQ8LyQnD8hDqoH8NKQg5Zng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":649216},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.15.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/dd09bf4204f6f3cf0772474f8cecc524/spfn-monitor-0.1.0-beta.15.tgz","_integrity":"sha512-PYA+bqYDxjQqSXhy/XslLMH7j4iHsLOv9Uwtd9UK3lrmzUkKG7EOF2jYBinYmDgEl//baY+R4d0IPARvxZwKrQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.12.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@spfn/auth":"0.2.0-beta.56","@spfn/core":"0.2.0-beta.37","@spfn/notification":"0.1.0-beta.17"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.15_1774592481484_0.5710399487395412","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.16":{"name":"@spfn/monitor","version":"0.1.0-beta.16","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.16","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b5ea41c41e134b56f8a226acbeb86e05d037d01a","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.16.tgz","fileCount":21,"integrity":"sha512-rgk6Lfcwbq00EzvLhqAXDv/5yW05tYGTvRjXsJJNanyuaFB7SRmC5uVhVPTk726UdPI7iJGR53Er5bR/Qwe0Hg==","signatures":[{"sig":"MEUCIDotU8E2498SOoaJAzQTgsdZzscy0HtY8phNFPr14mgVAiEAkbJC/JKmIH7ICbaK5EXalV6W8mvmzFCCLzOGqmR19ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":650210},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.16.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/1610b4a3a67a1f02f198438cc5fbc0dc/spfn-monitor-0.1.0-beta.16.tgz","_integrity":"sha512-rgk6Lfcwbq00EzvLhqAXDv/5yW05tYGTvRjXsJJNanyuaFB7SRmC5uVhVPTk726UdPI7iJGR53Er5bR/Qwe0Hg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.12.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@spfn/auth":"0.2.0-beta.57","@spfn/core":"0.2.0-beta.40","@spfn/notification":"0.1.0-beta.17"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.16_1774887028569_0.6002572820953309","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.17":{"name":"@spfn/monitor","version":"0.1.0-beta.17","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.17","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"7d8b58dd105a4ea8f5cb2956db1c5b06cfaf6433","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.17.tgz","fileCount":21,"integrity":"sha512-xDdTuvREHtcxIQXHzRHFNm26s8cYEDnw/gdYXUCE80MoepyvdkNZLW12N6I6w8IFbDw73jfqRgblq21vPx/0vQ==","signatures":[{"sig":"MEUCIQCrpznQnB5AmAGRhVuOTGPcYcvqSUBjAAJTuI+NNJEsUgIgJsP9wsHcJgvdgh/icCb8NX8Sz2MBs93YkRCpywKTJhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":650391},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.17.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/3f1199f3dcd76aa2eed97307ddc91167/spfn-monitor-0.1.0-beta.17.tgz","_integrity":"sha512-xDdTuvREHtcxIQXHzRHFNm26s8cYEDnw/gdYXUCE80MoepyvdkNZLW12N6I6w8IFbDw73jfqRgblq21vPx/0vQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.12.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@spfn/auth":"0.2.0-beta.57","@spfn/core":"0.2.0-beta.40","@spfn/notification":"0.1.0-beta.17"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.44.2","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.17_1774887252049_0.550653406936696","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.18":{"name":"@spfn/monitor","version":"0.1.0-beta.18","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.18","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"03a4079252a52d5ff7f454a7d7943701b4e91677","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.18.tgz","fileCount":21,"integrity":"sha512-JEfRAQvuDJv0WMNKov1bsPC8p9KYABLNZkPY5g7b6npljh/g10vDdTwTDU3tx8FFQcO56wrjMLf7Y62DEufWGw==","signatures":[{"sig":"MEQCIHcKpbMFnmzUSbHOjvStsC9bdxUjHDyEFAmcGCnqkXyPAiA7HtoTfTeEHcoj48LEIiilG8A0iTyZw5X6Fk+jVMO8fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662255},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.18.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/3f7dc4b5dbf6a2b40895a2bbc1cef5e7/spfn-monitor-0.1.0-beta.18.tgz","_integrity":"sha512-JEfRAQvuDJv0WMNKov1bsPC8p9KYABLNZkPY5g7b6npljh/g10vDdTwTDU3tx8FFQcO56wrjMLf7Y62DEufWGw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.16.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.66","@spfn/core":"0.2.0-beta.49","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.19"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.66","@spfn/core":">=0.2.0-beta.49","@spfn/notification":">=0.1.0-beta.18"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.18_1781107600952_0.5646784237322138","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.19":{"name":"@spfn/monitor","version":"0.1.0-beta.19","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.19","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"71a51a3b1883dab4012c6ecc2a70bd825f9f1702","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.19.tgz","fileCount":21,"integrity":"sha512-qyy76OiRx3eY9DQd3g4evAfGj2Qw3+rqwhMo8RAPZuKtIWnMUoscUlP7ZnIrUQxBYzqRgAtf2641pYOJeKXj3A==","signatures":[{"sig":"MEUCIQCruTm34gC8FVHp4ocynVu29WFyL7ru0mYxeQAu8dnjbAIgAVITyhEAT1rYddAntBW5DmM94xQ3kZxDm/Dwgm+i5Y8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662396},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.19.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/44e0d9d2177ed460705295ba85ee5a08/spfn-monitor-0.1.0-beta.19.tgz","_integrity":"sha512-qyy76OiRx3eY9DQd3g4evAfGj2Qw3+rqwhMo8RAPZuKtIWnMUoscUlP7ZnIrUQxBYzqRgAtf2641pYOJeKXj3A==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.67","@spfn/core":"0.2.0-beta.50","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.20"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.66","@spfn/core":">=0.2.0-beta.49","@spfn/notification":">=0.1.0-beta.18"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.19_1781600602785_0.8548836480801167","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.20":{"name":"@spfn/monitor","version":"0.1.0-beta.20","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.20","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"892e3a6ebb561a062f098ba4c9504feafa5c697d","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.20.tgz","fileCount":21,"integrity":"sha512-PXPMKvB81NPqkWodn96HNuV53o5LGvD1IDXx2IOpzZBtBkSCncAISVgzEujeFPvQ0fAyy4hMAoRbckSspo0qTA==","signatures":[{"sig":"MEUCIQD648m4fX8Xz31mdSa/r3h8T8RV/z7cswxY1Mc91tWzYQIgTmqQmWFakP3VUfHlUqFjVE+MS576NtQIRlE3bzxRj8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662396},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.20.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/a3c8d6041f3d79a9d5f2a074766427cf/spfn-monitor-0.1.0-beta.20.tgz","_integrity":"sha512-PXPMKvB81NPqkWodn96HNuV53o5LGvD1IDXx2IOpzZBtBkSCncAISVgzEujeFPvQ0fAyy4hMAoRbckSspo0qTA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.69","@spfn/core":"0.2.0-beta.54","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.21"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.20_1782548705865_0.2483839753411181","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.21":{"name":"@spfn/monitor","version":"0.1.0-beta.21","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.21","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"db2cc2a00ef03f1d471dcb19f982086cb230dd2c","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.21.tgz","fileCount":21,"integrity":"sha512-Ytu37dK51Ntxwo+5cCaOobeWwaiSpwIU9pFlm848ZZqNvAQgGwWhJ+CNKE2OzIAfOQ+0X4AG6AJK6h/GL0zwjw==","signatures":[{"sig":"MEUCIQCBXQ4isvnmmvSTQneSNz8lbxGx6j0VuyNH1LL4PeNP+QIgDHJzD39g6fUguz1orniYV1PGu9ItAmAzIG04prChvZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662396},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.21.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c123c093912ba5dae2d7258ef5791901/spfn-monitor-0.1.0-beta.21.tgz","_integrity":"sha512-Ytu37dK51Ntxwo+5cCaOobeWwaiSpwIU9pFlm848ZZqNvAQgGwWhJ+CNKE2OzIAfOQ+0X4AG6AJK6h/GL0zwjw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.70","@spfn/core":"0.2.0-beta.55","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.22"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.21_1782549747953_0.15502297222049655","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.22":{"name":"@spfn/monitor","version":"0.1.0-beta.22","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.22","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d7528944691a053f6f0ad3fd3581a1299e55e51f","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.22.tgz","fileCount":21,"integrity":"sha512-fq1NMb0NE5KOXUDRutdlZS6I8sMj4uWrRIQgWoSktTt37VQlnfczSoxtCygzmfWXJOgfdmGVntExduJQjn5ExQ==","signatures":[{"sig":"MEQCIGmE/mUOcB4MyFsE71AZZEBPZVa13vw/gtw2MPps8JIcAiBfC3VLwDPs/NY6ZIPymikecVf4mydNU4n14ZqOJaFrzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":665124},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.22.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/510f686788c96114c16dccd000bc0343/spfn-monitor-0.1.0-beta.22.tgz","_integrity":"sha512-fq1NMb0NE5KOXUDRutdlZS6I8sMj4uWrRIQgWoSktTt37VQlnfczSoxtCygzmfWXJOgfdmGVntExduJQjn5ExQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.71","@spfn/core":"0.2.0-beta.56","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.23"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.22_1782567706815_0.09425375339710995","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.23":{"name":"@spfn/monitor","version":"0.1.0-beta.23","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.23","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"6a6d87db17ba75dd46fc74aa15d6e0ce1313ec01","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.23.tgz","fileCount":21,"integrity":"sha512-gj+F0uA9ptj+QpmQLi/0ObmWK0igBIlv/Eo+bdXL3YE44lk92p+o3pVWEx9uZYU24C/5uRVb+cDJ+ZfcCgM7Zg==","signatures":[{"sig":"MEUCID4ArlhvaDEIUKdgFybw5/O4DzMyak2IFR9gsE26U6krAiEA5xRe1kE8KN5aEvbXUgzSb8bYQtyzMrLDh5aFu7Ix6yQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":667742},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.23.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/edebfeb8255e4c9cded153710b53069d/spfn-monitor-0.1.0-beta.23.tgz","_integrity":"sha512-gj+F0uA9ptj+QpmQLi/0ObmWK0igBIlv/Eo+bdXL3YE44lk92p+o3pVWEx9uZYU24C/5uRVb+cDJ+ZfcCgM7Zg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.72","@spfn/core":"0.2.0-beta.56","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.24"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.23_1782572006091_0.8807198766854858","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.24":{"name":"@spfn/monitor","version":"0.1.0-beta.24","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.24","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"43cdafa373a7e1188fac9eb92cb958443e64bda1","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.24.tgz","fileCount":23,"integrity":"sha512-4TsU3frGMfOKCqqBx/iZqLFYj+4duKObrPZgiM8KgOVRv+WddPyoygCItjZoSm1EyMUCd8MpLW5Ztx9u0hzbGg==","signatures":[{"sig":"MEUCIQCpITEwpdPk2l9s3ETV6QB6Buc4574p3bXeeNe4EMJmsQIgKiwT+qOlu1Nb/1eszME37xLnrByMlKF45kybzmQqhNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684493},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.24.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/d1fe5fe74c0c62b29c1c9c742c4cf468/spfn-monitor-0.1.0-beta.24.tgz","_integrity":"sha512-4TsU3frGMfOKCqqBx/iZqLFYj+4duKObrPZgiM8KgOVRv+WddPyoygCItjZoSm1EyMUCd8MpLW5Ztx9u0hzbGg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.72","@spfn/core":"0.2.0-beta.56","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.25"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.24_1782573304957_0.3592186230044796","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.25":{"name":"@spfn/monitor","version":"0.1.0-beta.25","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.25","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"843f13b5c693a77730eb4ea6ca585270f44e1e12","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.25.tgz","fileCount":23,"integrity":"sha512-40CQpLjp/gN0TpCw6e3pstLrCgbCrlisnogS32PBDy4+RgSYR6zXsNsE4ACmJ3jNiC8UFplSwcnefBYSqwSEGw==","signatures":[{"sig":"MEYCIQDUHeV3ub3+l6GADvqsgYmjzvY7VoeuP4aba+da+iq+oQIhALK3RUEClwWh9zg03fDiXwJjfh+NZfiCSCV9M1oz34m2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684920},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.25.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/fe53ecd9eaae13f434b12e1bba7f64ee/spfn-monitor-0.1.0-beta.25.tgz","_integrity":"sha512-40CQpLjp/gN0TpCw6e3pstLrCgbCrlisnogS32PBDy4+RgSYR6zXsNsE4ACmJ3jNiC8UFplSwcnefBYSqwSEGw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.17.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.72","@spfn/core":"0.2.0-beta.57","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.25"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.25_1782575260282_0.8074460675703776","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.26":{"name":"@spfn/monitor","version":"0.1.0-beta.26","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.26","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5dc19053b5e6dc0c4a77240b93c8a09112a8bb55","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.26.tgz","fileCount":23,"integrity":"sha512-3/BSN0avJs5g6Qfi4WMgNjqymHIsnPfOfF1W5r5Y5GQmd7BBIvsv+8ohEzdthORRWPYcFnt4xhO+BdhYc/HM8A==","signatures":[{"sig":"MEYCIQCiB/O2laQLz0RZLno9epikA4XcAZH1wKfi3OlcGOiwTgIhAJeaDw4p0zTNC0MiY1GVQPvSdHTpIcjn5Q/X6RaPJ5Ms","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684920},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","_from":"file:spfn-monitor-0.1.0-beta.26.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c7b75a22dc39d72d8b64afd32de82477/spfn-monitor-0.1.0-beta.26.tgz","_integrity":"sha512-3/BSN0avJs5g6Qfi4WMgNjqymHIsnPfOfF1W5r5Y5GQmd7BBIvsv+8ohEzdthORRWPYcFnt4xhO+BdhYc/HM8A==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"11.18.0","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"0.2.0-beta.74","@spfn/core":"0.2.0-beta.59","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","drizzle-orm":"^0.45.0","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"0.1.0-beta.26"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.26_1782991385403_0.9056516892009558","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.27":{"name":"@spfn/monitor","version":"0.1.0-beta.27","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.27","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"beac9db5aca456c40be97800353d384f9478f613","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.27.tgz","fileCount":23,"integrity":"sha512-1WkiQ5hCFBBVqwxkmEhIdAXTq9e0b4TRwAKz5yVYp+FOzPrIXHAdjWt+nvT4VVcRBJgEjHXdnktWG4MajtUj6g==","signatures":[{"sig":"MEUCIQDwnX+fjUOeHCS/xqCObOzMB4Ag/r9hCJDgf/ypEywuPwIgWmzV+xaQLMP6/yWlNIu2dkIPMflDLzxtvEth30mKHbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":685859},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"gitHead":"4a09250c7a88158aacb0bd5559cf36347a06e2a9","scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"npm publish --access public --tag beta","publish:alpha":"npm publish --access public --tag alpha","check:circular":"madge --circular --extensions ts src/","prepublishOnly":"pnpm run clean && pnpm run build","publish:latest":"npm publish --access public"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"12.0.1","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"workspace:*","@spfn/core":"workspace:*","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"workspace:*"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","drizzle-orm":">=1.0.0-rc.4 <2","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.27_1784827630498_0.3096722622061199","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.28":{"name":"@spfn/monitor","version":"0.1.0-beta.28","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.1.0-beta.28","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"5034ca6da7b4738ebbdcd9249e596f97c32e920e","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.1.0-beta.28.tgz","fileCount":23,"integrity":"sha512-+rcL8chLdlAOPoTULEyW4Q8M6WERZYTjmZdCxXK/7+3MNojLZd6/Gi3FjYyk2gruRKvQ0bL60JYAcuKGk8vkIg==","signatures":[{"sig":"MEQCIG4MqFoHo+jm8hce+tLIlQ1yMnKdjS0raaBgjVNxC7eWAiB6W59XI/yZet3GW7x5ICGSP5nexvGfcJ4n7JShSUNI5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.1.0-beta.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":686756},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"gitHead":"ca8000ded77e7d22536a5bbbec21fbe10e32206c","scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"node ../../scripts/publish-package.mjs beta","publish:alpha":"node ../../scripts/publish-package.mjs alpha","check:circular":"madge --circular --extensions ts src/","prepublishOnly":"pnpm run clean && pnpm run build","publish:latest":"node ../../scripts/publish-package.mjs latest"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"12.0.2","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"workspace:*","@spfn/core":"workspace:*","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"workspace:*"},"peerDependencies":{"next":"^16.2.11","@spfn/auth":">=0.2.0-beta.69","@spfn/core":">=0.2.0-beta.54","drizzle-orm":">=1.0.0-rc.4 <2","@spfn/notification":">=0.1.0-beta.21"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.1.0-beta.28_1785913622860_0.1414521177946082","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.1":{"name":"@spfn/monitor","version":"0.2.0-beta.1","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.2.0-beta.1","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"e8df819c4e11b0b00ef63ab6348668f0a4a06eda","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.2.0-beta.1.tgz","fileCount":23,"integrity":"sha512-2xzzFarWRAp5oFVrg+gX+yoUuV934uImNGahv/qOMeKTQdbU+n50Qx+JOZfeXnFJ5qSNyudowhumttfhFtXGVg==","signatures":[{"sig":"MEYCIQCj/j9SzhwTb16pqkInrBoXw0lEzYK9m6mpjX8kZPDLBwIhALUjMA2BK1Urr15dF7tIJfZJkHAlIGxoamVCG7GwL24+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.2.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":685763},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"gitHead":"88b84be28687dbbd7b2917cb76384f7f6a9e154c","scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"node ../../scripts/publish-package.mjs beta","publish:alpha":"node ../../scripts/publish-package.mjs alpha","check:circular":"madge --circular --extensions ts src/","prepublishOnly":"pnpm run clean && pnpm run build","publish:latest":"node ../../scripts/publish-package.mjs latest"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"12.0.2","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"workspace:*","@spfn/core":"workspace:*","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"workspace:*"},"peerDependencies":{"next":"^16.2.11","@spfn/auth":">=0.3.0-beta.1 <0.4.0","@spfn/core":">=0.3.0-beta.1 <0.4.0","drizzle-orm":">=1.0.0-rc.4 <2","@spfn/notification":">=0.2.0-beta.1 <0.3.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.2.0-beta.1_1786013374901_0.2102361235211483","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.2":{"name":"@spfn/monitor","version":"0.2.0-beta.2","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/monitor@0.2.0-beta.2","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"25a7ee6c25d528c392e58f29bac86620a9bc4980","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.2.0-beta.2.tgz","fileCount":23,"integrity":"sha512-1q8TgEUOc6Ta5r72gcixl4YlwOhiDPtPW/+ey16wZx6oZG9Eq+IXe91jxh1dzj2ulf9r8Db1E5z6Ud3wY0Khjw==","signatures":[{"sig":"MEYCIQDp9AsE2xhw0dRgSZeVNl6KpfkB1wlNsWI+9XVk/nzQqQIhAM2TcespxCMGODpKXK0YSpRFOvC11rL5nih88VGFVYr+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.2.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":685761},"main":"./dist/index.js","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"gitHead":"53eeff9cbd8461bfc69b7c1279d536d6e077eb79","scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"node ../../scripts/publish-package.mjs beta","publish:alpha":"node ../../scripts/publish-package.mjs alpha","check:circular":"madge --circular --extensions ts src/","prepublishOnly":"pnpm run clean && pnpm run build","publish:latest":"node ../../scripts/publish-package.mjs latest"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"12.0.2","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"workspace:*","@spfn/core":"workspace:*","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"workspace:*"},"peerDependencies":{"next":"^16.3.3","@spfn/auth":">=0.3.0-beta.1 <0.4.0","@spfn/core":">=0.3.0-beta.1 <0.4.0","drizzle-orm":">=1.0.0-rc.4 <2","@spfn/notification":">=0.2.0-beta.1 <0.3.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/monitor_0.2.0-beta.2_1789404873711_0.9212210256590945","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.3":{"_id":"@spfn/monitor@0.2.0-beta.3","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"b487303335b140d836ec65e2365d52b12b109e8a","tarball":"https://registry.npmjs.org/@spfn/monitor/-/monitor-0.2.0-beta.3.tgz","fileCount":23,"integrity":"sha512-gETzAlJ3jjf/Vzk+fNdo5nN0kuzTeFyDwv+krl0CX7C+I0Ea4VgoF2Wb88OlSl7wraENKTDAc03zq7TdXkFWfQ==","signatures":[{"sig":"MEUCIGmNS0C9Ds59TVwOF3iBqB8HVL8BF9fH61BOESTa64y1AiEAz1xkgn4e7RprRTSt+nliHhsmblkXPLd1WhSeliom08E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFrtnvnL2nXbVsRVD9jyD+R01DS1iWaqu4WxjXVLOhChAiBOEUvwGz8kvN4+Ze1302qawvVekkt229VTCd36wUesQA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fmonitor@0.2.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":687002},"main":"./dist/index.js","name":"@spfn/monitor","spfn":{"schemas":["./dist/server/entities/*.js"],"migrations":{"dir":"./migrations"}},"type":"module","types":"./dist/index.d.ts","author":{"name":"Ray Im","email":"rayim@fxy.global"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.js"},"./nextjs/client":{"types":"./dist/nextjs/client.d.ts","import":"./dist/nextjs/client.js","require":"./dist/nextjs/client.js"}},"gitHead":"842f21e961ba356bf68cbe1f392781191b515fbf","license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest run","build":"pnpm check:circular && tsup && tsup --config tsup.client.config.ts","clean":"rm -rf dist","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:watch":"vitest","type-check":"tsc --noEmit","db:generate":"drizzle-kit generate","publish:beta":"node ../../scripts/publish-package.mjs beta","publish:alpha":"node ../../scripts/publish-package.mjs alpha","check:circular":"madge --circular --extensions ts src/","prepublishOnly":"pnpm run clean && pnpm run build","publish:latest":"node ../../scripts/publish-package.mjs latest"},"version":"0.2.0-beta.3","_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"_npmVersion":"12.0.2","description":"Error tracking, log management, and monitoring dashboard for SPFN","directories":{},"maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"_nodeVersion":"22.23.2","publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@spfn/auth":"workspace:*","@spfn/core":"workspace:*","typescript":"^5.3.3","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@sinclair/typebox":"^0.34.30","@spfn/notification":"workspace:*"},"peerDependencies":{"next":"^16.3.3","@spfn/auth":">=0.3.0-beta.1 <0.4.0","@spfn/core":">=0.3.0-beta.14 <0.4.0","drizzle-orm":">=1.0.0-rc.4 <2","@spfn/notification":">=0.2.0-beta.1 <0.3.0"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/monitor_0.2.0-beta.3_1790072187731_0.2637661996200005"}}},"time":{"created":"2026-02-18T07:36:33.400Z","modified":"2026-09-22T10:16:28.208Z","0.1.0-beta.1":"2026-02-18T07:36:33.755Z","0.1.0-beta.2":"2026-02-18T15:12:55.404Z","0.1.0-beta.3":"2026-02-20T11:17:26.992Z","0.1.0-beta.4":"2026-02-22T05:06:21.986Z","0.1.0-beta.5":"2026-02-22T07:29:27.105Z","0.1.0-beta.6":"2026-02-22T09:35:30.090Z","0.1.0-beta.7":"2026-02-23T08:00:32.864Z","0.1.0-beta.8":"2026-02-24T15:31:28.789Z","0.1.0-beta.9":"2026-03-03T08:44:33.652Z","0.1.0-beta.10":"2026-03-06T15:39:09.280Z","0.1.0-beta.11":"2026-03-06T15:53:32.973Z","0.1.0-beta.12":"2026-03-07T03:59:04.864Z","0.1.0-beta.13":"2026-03-11T09:21:19.864Z","0.1.0-beta.14":"2026-03-25T01:48:26.402Z","0.1.0-beta.15":"2026-03-27T06:21:21.654Z","0.1.0-beta.16":"2026-03-30T16:10:28.734Z","0.1.0-beta.17":"2026-03-30T16:14:12.228Z","0.1.0-beta.18":"2026-06-10T16:06:41.173Z","0.1.0-beta.19":"2026-06-16T09:03:22.926Z","0.1.0-beta.20":"2026-06-27T08:25:06.028Z","0.1.0-beta.21":"2026-06-27T08:42:28.106Z","0.1.0-beta.22":"2026-06-27T13:41:46.953Z","0.1.0-beta.23":"2026-06-27T14:53:26.358Z","0.1.0-beta.24":"2026-06-27T15:15:05.134Z","0.1.0-beta.25":"2026-06-27T15:47:40.427Z","0.1.0-beta.26":"2026-07-02T11:23:05.545Z","0.1.0-beta.27":"2026-07-23T17:27:10.641Z","0.1.0-beta.28":"2026-08-05T07:07:03.111Z","0.2.0-beta.1":"2026-08-06T10:49:35.087Z","0.2.0-beta.2":"2026-09-14T16:54:33.864Z","0.2.0-beta.3":"2026-09-22T10:16:27.830Z"},"bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","homepage":"https://github.com/fxylabs/spfn/tree/main/packages/monitor#readme","keywords":["spfn","monitor","error-tracking","logging","dashboard"],"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/monitor"},"description":"Error tracking, log management, and monitoring dashboard for SPFN","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"readme":"# @spfn/monitor — error tracking, logging, and a dashboard you don't build\n\n> **Find out something broke without sending your errors to someone else's server**\n\nA deployed product fails in ways local development never shows, and the usual answer is a\nthird-party service: another account, another bill, and your users' data leaving your\ninfrastructure. `@spfn/monitor` keeps it in your own PostgreSQL instead.\n\nErrors are captured from the server's error handler, deduplicated by fingerprint so one\nbroken route is one entry rather than ten thousand, and pushed to Slack when a state\nchanges. A pluggable developer-log store, superadmin-only admin routes and ready-made React\ndashboard components come with it — this is the one dashboard you don't have to build,\nbecause it is generic. Operating on your own data is a different job; that is\n[`@spfn/mcp`](../mcp/README.md).\n\nIt integrates into an SPFN server through `defineServerConfig()` (an `onError` middleware\nplus lifecycle) and a package router mounted with `.packages([...])`.\n\n## Install\n\n```bash\npnpm add @spfn/monitor drizzle-orm@1.0.0-rc.4\n```\n\nPeer dep: `next` (`^16.3.3`, optional — only needed for the `nextjs/client` components).\nWorkspace deps `@spfn/core`, `@spfn/auth`, `@spfn/notification` come transitively.\n\nThe migrations run `CREATE EXTENSION IF NOT EXISTS pg_trgm`, which the trigram GIN index\non the error-group search needs. A managed PostgreSQL that does not allow the extension\nfails the migration rather than degrading, so check the provider before installing.\n\n## Import paths\n\nThere are **four** entry points (from `package.json` `exports`):\n\n```typescript\n// Client-safe: API client + shared types/consts\nimport { monitorApi, type MonitorRouter, type MonitorStats } from '@spfn/monitor';\n\n// Server-only: router, integrations, services, repos, entities (uses node:crypto, DB)\nimport { monitorRouter, createMonitorErrorHandler, writeLog } from '@spfn/monitor/server';\n\n// Config: code-level overrides + env getters + schema\nimport { configureMonitor, getMonitorConfig } from '@spfn/monitor/config';\n\n// React components ('use client') — Next.js only\nimport { MonitorDashboard } from '@spfn/monitor/nextjs/client';\n```\n\nImporting `@spfn/monitor/server` runs `@spfn/monitor/config` as a side effect (env registry\nis built). Never import `/server` or `/config`'s `env`-touching code into client/edge bundles.\n\n---\n\n## Setup (SPFN server)\n\nThree integration points, all on `defineServerConfig()` + the app router:\n\n```typescript\n// src/server/server.config.ts\nimport { defineServerConfig } from '@spfn/core/server';\nimport {\n    createMonitorErrorHandler,\n    createMonitorLifecycle,\n} from '@spfn/monitor/server';\nimport { appRouter } from './router';\n\nexport default defineServerConfig()\n    .middleware({ onError: createMonitorErrorHandler() })\n    .routes(appRouter)\n    .lifecycle(createMonitorLifecycle())\n    .build();\n```\n\nMount `monitorRouter` as a **package router** on your app router (so its `/_monitor/admin/*`\nroutes are served, but stay out of `AppRouter`'s client types — call them via `monitorApi`):\n\n```typescript\n// src/server/router.ts\nimport { defineRouter } from '@spfn/core/route';\nimport { monitorRouter } from '@spfn/monitor/server';\nimport { authRouter } from '@spfn/auth/server';\n\nexport const appRouter = defineRouter({ /* your routes */ })\n    .packages([authRouter, monitorRouter]);\n```\n\n> `monitorRouter` is built with `defineRouter({...})` — there is no `mergeRouters` export in\n> `@spfn/core/route`. Use `.packages([monitorRouter])`, not `mergeRouters(...)`.\n\n### Database migration\n\n`monitorSchema = createSchema('@spfn/monitor')` → the PostgreSQL schema **`spfn_monitor`**\nwith tables `error_groups`, `error_events`, `logs`.\n\n```bash\npnpm spfn db push                       # dev: push schema directly\n# or, with migration history (production):\npnpm spfn db generate && pnpm spfn db migrate\n```\n\n`@spfn/monitor` ships pre-generated SQL under `migrations/` (declared via `package.json`\n`spfn.migrations.dir`); SPFN's CLI picks up the package's entities (`spfn.schemas`).\n\n---\n\n## Configuration\n\n### Environment variables\n\nAll optional. Resolution order is **code config > env > built-in default**.\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `SPFN_MONITOR_SLACK_WEBHOOK_URL` | — | Slack webhook for error notifications (falls back to `@spfn/notification` default) |\n| `SPFN_MONITOR_ERROR_RETENTION_DAYS` | `90` | Days to retain error events |\n| `SPFN_MONITOR_LOG_RETENTION_DAYS` | `30` | Days to retain logs |\n| `SPFN_MONITOR_MIN_STATUS_CODE` | `500` | Minimum HTTP status code tracked as an error |\n\nThe webhook URL is a secret — keep it in `.env.server` (server-only), never a committed file.\n\n### Code config\n\n```typescript\nimport { configureMonitor } from '@spfn/monitor/config';\n\nconfigureMonitor({\n    slackWebhookUrl: process.env.SPFN_MONITOR_SLACK_WEBHOOK_URL, // override\n    errorRetentionDays: 90,\n    logRetentionDays: 30,\n    minStatusCode: 500,\n});\n```\n\n`MonitorConfig` keys: `slackWebhookUrl?`, `errorRetentionDays?`, `logRetentionDays?`,\n`minStatusCode?`. Getters resolve config > env > default:\n`getMonitorConfig()`, `getSlackWebhookUrl()`, `getErrorRetentionDays()`,\n`getLogRetentionDays()`, `getMinStatusCode()`. The validated env proxy is exported as `env`,\nthe schema as `monitorEnvSchema`.\n\n> Retention values are *exposed* config, but this package does **not** ship a purge\n> scheduler. `LogStore.purge(olderThan)` and `logsRepository.deleteOlderThan(date)` exist;\n> wire up your own cron/job if you want automatic retention enforcement.\n\n---\n\n## Error tracking\n\n`createMonitorErrorHandler(options?)` returns an `onError` callback (signature\n`(err: Error, ctx) => Promise<void>`) — a drop-in replacement for\n`createErrorSlackNotifier` from `@spfn/notification`. On each error at/above `minStatusCode`\nit calls `trackError`, which does state-based deduplication:\n\n| Existing group state | Action | Slack? |\n|----------------------|--------|--------|\n| none (new fingerprint) | create group + event | yes (`new`) |\n| `active` / `ignored` | increment count + create event | no |\n| `resolved` | reopen → `active`, increment, create event | yes (`reopened`) |\n\nErrors below `minStatusCode` are skipped. Slack/event failures are caught and logged — they\nnever break the response.\n\n```typescript\ncreateMonitorErrorHandler({\n    minStatusCode: 500,                 // default: getMinStatusCode() (env or 500)\n    environment: process.env.NODE_ENV,  // shown in the Slack title, e.g. \"[production]\"\n    extractMetadata: (err, ctx) => ({   // stored on the error_event row\n        serverInstance: process.env.HOSTNAME,\n    }),\n});\n```\n\n`MonitorErrorHandlerOptions`: `minStatusCode?`, `environment?`, `extractMetadata?(err, ctx)`.\n\n### Fingerprinting\n\n`generateFingerprint(name, message, path)` → `SHA-256(name:message:path)` sliced to the\nfirst **16 hex chars**. Same name+message+path ⇒ same group. The `path` component means the\nsame error from different routes is grouped separately.\n\n### Manual tracking\n\n```typescript\nimport { trackError } from '@spfn/monitor/server';\n\nawait trackError(\n    error,                              // Error\n    {                                   // ErrorTrackingContext\n        statusCode: 500,\n        path: '/api/example',\n        method: 'POST',\n        requestId: 'req_123',           // optional\n        userId: 'user_42',              // optional, string\n        headers: { /* ... */ },         // optional\n        query: { /* ... */ },           // optional\n        environment: 'production',      // optional\n    },\n    { custom: 'metadata' },             // optional 3rd arg → error_event.metadata\n);\n```\n\n`ErrorTrackingContext` requires `statusCode`, `path`, `method`; the rest are optional.\n\n### Status management\n\n```typescript\nimport { updateErrorGroupStatus } from '@spfn/monitor/server';\n\nawait updateErrorGroupStatus(groupId, 'resolved');  // sets resolved_at\nawait updateErrorGroupStatus(groupId, 'ignored');\nawait updateErrorGroupStatus(groupId, 'active');     // reopen\n```\n\nThrows if the group id does not exist. Statuses: `ERROR_GROUP_STATUSES` =\n`['active', 'resolved', 'ignored']` (type `ErrorGroupStatus`).\n\n---\n\n## Developer logging\n\n```typescript\nimport { writeLog, queryLogs, monitor } from '@spfn/monitor/server';\n\nawait writeLog({\n    level: 'info',                      // LogLevel: debug|info|warn|error|fatal\n    message: 'User signed in',\n    source: 'auth',                     // optional\n    requestId: 'req_123',               // optional\n    userId: 'user_42',                  // optional, string\n    metadata: { provider: 'google' },   // optional\n});\n\nawait monitor.log({ level: 'warn', message: 'Rate limit approaching' }); // shorthand → writeLog\n\nconst logs = await queryLogs({          // LogFilters\n    level: 'error',\n    source: 'payment',\n    search: 'timeout',                  // ILIKE over message + source\n    requestId, userId,\n    dateFrom: new Date('2024-01-01'),\n    dateTo: new Date(),\n    limit: 50,                          // unbounded if omitted\n    offset: 0,\n});\n```\n\n`writeLog` / `queryLogs` return `Log` / `Log[]`. `LOG_LEVELS` =\n`['debug','info','warn','error','fatal']` (type `LogLevel`).\n\n### Custom log store\n\nSwap the default DB store for any backend implementing `LogStore`:\n\n```typescript\nimport { setLogStore, getLogStore, type LogStore } from '@spfn/monitor/server';\n\nconst s3Store: LogStore = {\n    async write(entry)     { /* NewLog → Log */ },\n    async query(filters)   { /* LogFilters → Log[] */ },\n    async purge(olderThan) { /* Date → number deleted */ },\n};\n\nsetLogStore(s3Store);\n```\n\n`setLogStore` is process-global and affects `writeLog`/`queryLogs` immediately. The default\nstore writes to the `logs` table. The admin `GET /_monitor/admin/logs` route also goes\nthrough the current store.\n\n---\n\n## Admin API routes\n\nMounted by `monitorRouter`. Every route requires authentication **and** the `superadmin`\nrole (`authenticate` + `requireRole('superadmin')` from `@spfn/auth/server`).\n\n| Method | Path | Query / body | Description |\n|--------|------|--------------|-------------|\n| GET | `/_monitor/admin/errors` | `status, path, search, dateFrom, dateTo, limit(1-100), offset` | List error groups (limit default 20) |\n| GET | `/_monitor/admin/errors/:id` | — | Group detail + recent 20 events |\n| PATCH | `/_monitor/admin/errors/:id` | body `{ status }` | Update status (resolve/ignore/reopen) |\n| GET | `/_monitor/admin/errors/:id/events` | `limit(1-100), offset` | Events for a group (limit default 20) |\n| GET | `/_monitor/admin/logs` | `level, source, search, requestId, userId, dateFrom, dateTo, limit(1-100), offset` | Query logs (limit default 50) |\n| GET | `/_monitor/admin/stats` | — | `MonitorStats` dashboard aggregate |\n\n`:id` and `limit`/`offset` are numbers; `dateFrom`/`dateTo` are ISO strings.\n\n### API client\n\n```typescript\nimport { monitorApi } from '@spfn/monitor';\n\nconst stats  = await monitorApi.getStats.call({});\nconst errors = await monitorApi.listErrors.call({ query: { status: 'active', limit: 20 } });\nconst detail = await monitorApi.getErrorDetail.call({ params: { id: 42 } });\nconst events = await monitorApi.listErrorEvents.call({ params: { id: 42 }, query: { limit: 50 } });\nconst logs   = await monitorApi.listLogs.call({ query: { level: 'error' } });\nawait monitorApi.updateErrorStatus.call({ params: { id: 42 }, body: { status: 'resolved' } });\n```\n\n`monitorApi` is built with `createApi<typeof monitorRouter>` from `@spfn/core/nextjs`.\nRoute keys: `listErrors`, `getErrorDetail`, `updateErrorStatus`, `listErrorEvents`,\n`listLogs`, `getStats`.\n\n### `MonitorStats` shape\n\n```typescript\ninterface MonitorStats\n{\n    errors: { total: number; active: number; resolved: number; ignored: number };\n    recentErrors: ErrorGroup[];                       // latest 10 active groups\n    logs: { total: number; byLevel: Record<LogLevel, number> };\n    trends: { errorsLast24h: number; errorsLast7d: number; logsLast24h: number };\n}\n```\n\n---\n\n## Dashboard components\n\n`'use client'` React components from `@spfn/monitor/nextjs/client`. They fetch through\n`monitorApi` (so the admin routes must be served and the caller must be a superadmin) and\nstyle with Tailwind CSS (dark-mode aware).\n\n```tsx\n// app/admin/monitor/page.tsx\nimport { MonitorDashboard } from '@spfn/monitor/nextjs/client';\n\nexport default function MonitorPage()\n{\n    return <MonitorDashboard />;   // no props — tabs (errors/logs) + stats + drill-down\n}\n```\n\nIndividual components and their props:\n\n| Component | Props | Notes |\n|-----------|-------|-------|\n| `MonitorDashboard` | — | Full dashboard: stats + Errors/Logs tabs + detail drill-down |\n| `StatsOverview` | — | Error/log count + trend cards |\n| `ErrorListView` | `onSelect?: (id: number) => void` | Filterable error-group table |\n| `ErrorDetailView` | `errorId: number`, `onBack?: () => void` | Detail + event timeline + status actions |\n| `LogViewer` | — | Searchable log list with expandable metadata |\n\n```tsx\n<ErrorListView onSelect={(id) => router.push(`/admin/monitor/errors/${id}`)} />\n<ErrorDetailView errorId={42} onBack={() => router.back()} />\n```\n\n---\n\n## Pitfalls & anti-patterns\n\n- **`mergeRouters` does not exist.** Some older docs/JSDoc show\n  `.routes(mergeRouters(appRouter, monitorRouter))` — `@spfn/core/route` exports no such\n  function. Mount the monitor router with `.packages([monitorRouter])` on your app router.\n- **Package routes are excluded from `AppRouter` client types.** After\n  `.packages([monitorRouter])`, the `/_monitor/admin/*` routes are served but **not** on the\n  `api` client — always call them through `monitorApi`, not `api`.\n- **Don't import `/server` or `/config` into client/edge bundles.** `/server` pulls in\n  `node:crypto`, DB access, and (via the config side-effect) the env registry. The only\n  browser-safe entry points are `@spfn/monitor` (client API + types) and\n  `@spfn/monitor/nextjs/client` (components).\n- **`onError` only fires for thrown/error responses ≥ `minStatusCode` (default 500).** 4xx\n  results that don't throw aren't tracked. Lower `minStatusCode` (env or option) to widen.\n- **Fingerprint includes `path`.** The *same* error surfacing on two routes becomes two\n  groups; a templated path with embedded ids (`/users/123`) fragments groups — normalize the\n  path before it reaches tracking if you need them merged.\n- **No automatic retention/purge.** `*_RETENTION_DAYS` are just config values read by getters;\n  nothing deletes old rows on its own. Schedule `logStore.purge()` /\n  `logsRepository.deleteOlderThan()` (and an equivalent for error events) yourself.\n- **No Slack webhook ⇒ silent skip, not an error.** `notifyErrorToSlack` logs a warning and\n  returns when the URL is unset; tracking still persists to the DB.\n- **`setLogStore` is global and unconditional.** It replaces the store for the whole process\n  (including the admin log route). There is no per-call store override.\n- **`userId` is a string everywhere here** (`error_events.user_id`, `logs.user_id`,\n  `WriteLogParams.userId`). The error handler stringifies the auth context's `userId` for you;\n  in manual calls pass a string.\n\n---\n\n## Complete example\n\n```typescript\n// src/server/router.ts\nimport { defineRouter } from '@spfn/core/route';\nimport { authRouter } from '@spfn/auth/server';\nimport { monitorRouter } from '@spfn/monitor/server';\n\nexport const appRouter = defineRouter({ /* app routes */ })\n    .packages([authRouter, monitorRouter]);\n```\n\n```typescript\n// src/server/server.config.ts\nimport { defineServerConfig } from '@spfn/core/server';\nimport { createMonitorErrorHandler, createMonitorLifecycle } from '@spfn/monitor/server';\nimport { configureMonitor } from '@spfn/monitor/config';\nimport { appRouter } from './router';\n\nconfigureMonitor({ minStatusCode: 500, logRetentionDays: 14 });\n\nexport default defineServerConfig()\n    .middleware({\n        onError: createMonitorErrorHandler({ environment: process.env.NODE_ENV }),\n    })\n    .routes(appRouter)\n    .lifecycle(createMonitorLifecycle())\n    .build();\n```\n\n```tsx\n// app/admin/monitor/page.tsx — superadmin-gated route\nimport { MonitorDashboard } from '@spfn/monitor/nextjs/client';\n\nexport default function MonitorPage()\n{\n    return <MonitorDashboard />;\n}\n```\n\n```typescript\n// anywhere server-side: structured logging\nimport { monitor } from '@spfn/monitor/server';\n\nawait monitor.log({ level: 'info', message: 'job done', source: 'cron', metadata: { took: 120 } });\n```\n\n---\n\n## Exports reference\n\n```typescript\n// '@spfn/monitor' (client-safe)\nmonitorApi\ntype MonitorRouter, MonitorStats, ErrorGroupStatus, LogLevel\nERROR_GROUP_STATUSES, LOG_LEVELS\n\n// '@spfn/monitor/server'\nmonitorRouter\ncreateMonitorErrorHandler, createMonitorLifecycle              // integration\ntrackError, updateErrorGroupStatus, generateFingerprint       // error tracking\nwriteLog, queryLogs, setLogStore, getLogStore, monitor        // logging\ngetMonitorStats                                               // stats\nerrorGroupsRepository, errorEventsRepository, logsRepository  // repositories\nerrorGroups, errorEvents, logs, monitorSchema                 // entities\nERROR_GROUP_STATUSES, LOG_LEVELS, monitorLogger\ntype ErrorTrackingContext, MonitorErrorHandlerOptions, MonitorLifecycleConfig,\n     LogStore, WriteLogParams, MonitorStats, ErrorGroupFilters, LogFilters,\n     ErrorGroup, NewErrorGroup, ErrorGroupStatus, ErrorEvent, NewErrorEvent,\n     Log, NewLog, LogLevel\n\n// '@spfn/monitor/config'\nconfigureMonitor, getMonitorConfig\ngetSlackWebhookUrl, getErrorRetentionDays, getLogRetentionDays, getMinStatusCode\nenv, monitorEnvSchema\ntype MonitorConfig\n\n// '@spfn/monitor/nextjs/client'\nMonitorDashboard, StatsOverview, ErrorListView, ErrorDetailView, LogViewer\n```\n\n## Related\n\n- [@spfn/core/route](../core/src/route/README.md) — `defineRouter`, `.packages()`, route DSL\n- [@spfn/core/server](../core/src/server/README.md) — `defineServerConfig`, `onError` middleware\n- [@spfn/core/env](../core/src/env/README.md) — env schema / registry used by `/config`\n- [@spfn/notification](../notification/README.md) — `sendSlack`, `createErrorSlackNotifier`\n- [@spfn/auth](../auth/README.md) — `authenticate`, `requireRole` guarding the admin routes\n","readmeFilename":"README.md"}