{"_id":"brakit","_rev":"118-762d36c88e79cf52549153720a9d5255","name":"brakit","dist-tags":{"latest":"0.10.2"},"versions":{"0.6.0":{"name":"brakit","version":"0.6.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","http-proxy","reverse-proxy","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.6.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"eecde1492c55c90e6eb7e3824ca8eda90591877a","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.6.0.tgz","fileCount":9,"integrity":"sha512-8Wx1Lv8NwK+mQKyXhoLDv1fDUbwYIArn2fgVvi0T/FXFzAetpEMR/oem8qrgZAT49qfl4mA+ZC++0JH/wDNy0Q==","signatures":[{"sig":"MEQCIF4zh0v89qko12Ygg0LKUKPTGPI0X+taRPqRWENaqePQAiADrzMXLnVA9o0Y35uKlFSoYAo1CJcCLGwQJ76Zkq12HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318602},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4b9f24dd2f1b557f054c951b1194c4d91b34756c","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.6.0_1771616385263_0.5518109567774876","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"brakit","version":"0.6.1","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","http-proxy","reverse-proxy","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.6.1","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"a80dfc534e4894b2640d081630dacaeaf6406048","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.6.1.tgz","fileCount":9,"integrity":"sha512-5hO5b1qMCXlV2Mu0FWVcQTNOEI3gGkjbkr5WaW9u6eK4f3e0N0FSv2B1MWv2MndYMo5qIfF8wf5zvDWEKv1A7Q==","signatures":[{"sig":"MEQCIE49O0RnxMolARJSA3SHu9lJ7Uu8gV2YdJsAo8J8Tnf1AiAO34RPECQ8XDLUsAvc7GU80W/lWUalhpy0pldmHKPRkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"923c00d6d174a6bd19be1226fe56035c6a511700","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.6.1_1771626448802_0.48305991891077626","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"brakit","version":"0.6.2","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","http-proxy","reverse-proxy","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.6.2","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d86f5f4ff286518f698fe652f08edc6ab89a8f7a","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.6.2.tgz","fileCount":9,"integrity":"sha512-Ng9c1wpa4rZTXaawXinwZTEEltYYlatt4YxGiAZa0E4LXSe41FnqFUuMob6datTBLH5lhOb4UebzXbHKk8536A==","signatures":[{"sig":"MEUCIQC6ssljgji2V2g4sTBA7E7NjeTrwh0ef+OUuVDHF9k0owIgepet/ZxonwHYfWaxVpFxmMCqTVByrYDxSH+xux2f3+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316794},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"70cadcadedfd4cb381143df46e969f393ec0c6d7","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.6.2_1771658829851_0.1944459243796013","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"brakit","version":"0.7.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d6ccbc9905c2f2051cbaa595fccb61f002f1ec0c","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.0.tgz","fileCount":9,"integrity":"sha512-qolj4uffaaCsTMqxl4aH0HLDqmCsJqdmIA69ur2hu2DkHpgLVFMzPQI62IZQHFfY0R3SzkGuNB2eTvYJmsu5yA==","signatures":[{"sig":"MEUCIQC78vpHX4od1vGJkYUs3QB2gO2aC29jX3aRibNrkzhTuAIgaw6D9/9LcBMIE9LfTRXIvxiPqf8EHHm/XgNlOk5JwHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345412},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"58feee8aa691e5db9cce18bb8064ffe436e38217","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.0_1772050799427_0.7676483559182339","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"brakit","version":"0.7.1","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.1","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"86d8527b2894ce08d4aa5dd0f4db9e8fccea2b6b","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.1.tgz","fileCount":9,"integrity":"sha512-SvssHghjfi9XxA9hTPjPasWbL2aRm+WW11xcxI1xcBQzadGD0JqsIHiliYsTlt6dww50OkXK4vUyZMfJFnSgHw==","signatures":[{"sig":"MEUCIQC5fPic98vRxheTspfrLMyctkAaBHtZCcwjKRZK9s1exQIgTDariPZeuRRoT7usjI1gsAe2CEj0IIm2rHr2nwzSaGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344570},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"cfcd9c90251eb98433c9da4609bf8d041c9b5668","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.1_1772052398355_0.7147032084249778","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"brakit","version":"0.7.2","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.2","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"163b2d7646f683f2ffad561e0a447beafd6913ce","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.2.tgz","fileCount":9,"integrity":"sha512-ZLpK4/mIXDbQp86KPb594dny68scqsyKVpqJuKNwGDljAYZaw4mFzIXq6S322mP6b5iRdMSy/Ltagylu0eC3Ww==","signatures":[{"sig":"MEQCIDM3jS02+MmGheIW8jfKYb0PSUZPe338Z0/taRBN72cRAiBYETpMEsXQLG5NMQ9gM/7a/jMU1MQVE2NheRLYp/uqLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344428},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"3f8b8b65ca8755a43186d8a7ebe3a93c83e97325","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.2_1772052988768_0.7508568064454495","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"brakit","version":"0.7.3","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.3","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d694dd3f05244cf1c5f1f66381a65d8d3c485771","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.3.tgz","fileCount":9,"integrity":"sha512-Lcu7Cy/svDChQVMXsjUNyPZxq2ndM9USVpJRpRjilI79LWmKCmshrZGkAkeZeBnrg3EaQ4fhA+5iLS6GqMDFfw==","signatures":[{"sig":"MEUCIBW/ji0BBbeJqYz/0rRB7X1+dIRgK7m8Gq+sfpF35WljAiEAsZXdPd6xjhss8YftFbZVbF+76hw7hhu++QteMxl+x6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344941},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"c5b7a128c2240fc093bb6ee8ab528bbdef540f9f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.3_1772055652421_0.913960816359479","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"brakit","version":"0.7.4","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.4","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d2e365354d73f42da57c602e33e581f2017b2c08","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.4.tgz","fileCount":9,"integrity":"sha512-ulaBTt8hh8CzT3xZvtMVQexTA1dtLtgbmQ/Z75S695Ng98ucs2fdPAY4wYDkfMNVMsvwCYKgRb11TM/rgcIn+g==","signatures":[{"sig":"MEUCIDKG3x8jt7eNpOUlqLq/TnNkq1lM6YJDGMFsQOx64GpkAiEAv28FnEnRX3sruFSI6HXqI0rIVd/wM+7LKE4eWJCycI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345170},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"c5b7a128c2240fc093bb6ee8ab528bbdef540f9f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.4_1772056013623_0.2599827370611194","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"brakit","version":"0.7.5","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.5","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"f6bd5b1afdfadbf573abc93e52cb678e5bdf01fa","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.5.tgz","fileCount":9,"integrity":"sha512-Whu4Er45OVG/f/jvAmdkoKXoFVAizKWGEM6HDXzvAeMPOIIq04EvaGHRkidjG/wG/IlsWFb1lXjlKBBS318SGw==","signatures":[{"sig":"MEQCIEuZ+rsgOIDWRiVUrZEtt/z18RNYCCpssleIk0N6SrLyAiBxxc0UYsDqv/VMprZprgy5tWh3gYyR2vEE9jZ1DkcVhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380534},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"4a0a429560efe7c900010c7b381438a199a257ed","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.5_1772062270274_0.6389598950315025","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"brakit","version":"0.7.6","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.7.6","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"de0fc7c0b799083afc83ada9ebe3c771638926f9","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.7.6.tgz","fileCount":9,"integrity":"sha512-y0CzlNRz5bQ7oUYMEtFyYYJAr9jzL9TwqxwzIGC5zfPVUIubv00dbGlljDGv9B8LdBFxf0FleZtE112D9Xutxw==","signatures":[{"sig":"MEYCIQDDZUjyBRhmijVgK0rXL1I5oOElXkc8mqpfXba7qFiReAIhAK1VfvPxSg8RzD67q5+fMFQtDPNKskR0ZKACW2o/4euB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380786},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"91154d070f3fbb791f1ee9af714e957a359bd86d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.7.6_1772139654202_0.6557531608507801","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"brakit","version":"0.8.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"98d19d47d6a59b090b55c8d239eba502f703bfb0","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.0.tgz","fileCount":11,"integrity":"sha512-6w39RHrVqT/X8Rfp2Quk6w/F3xRNVGEoYnBNnwZ1WKKyY/9Ym52Ru7gl5Pn9+6so9/qQFkRps4XZgzdzz01pRg==","signatures":[{"sig":"MEUCIH3RoShBBSUX2iYtbfR06X9wSWnNIvzBSXrN3/szidwQAiEAhr3gZZhi22/eYLPvMhGHICVrvY0vfAl6Eg/z+AwrZ2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458941},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"0007a9851f381ee8776f1ae2fc098f38f5d93408","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.0_1772231574792_0.19008808616426132","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"brakit","version":"0.8.1","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.1","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"4591306591e8b90cc52ec5689f639d0690fa2a7a","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.1.tgz","fileCount":11,"integrity":"sha512-ERJD28gVOy0osXRht/yjaOsrgSw8etWYD+e3ZPIZlPMOL0xgmfcdNNSsylEJNRlXOYtQZE2yQH5ghxmx+CAMQw==","signatures":[{"sig":"MEQCIHCl4s885vZC4AZPWdeOZzhPGFnGC0EYANWuWoZx5lYTAiBvQPPIoiZX9g169djZTcunOiF5vkwTthxW6CTXD7LxHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473860},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"e651191b8f312d1e6acc25e384f45343c1e6a45f","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.1_1772269225484_0.22791939688681362","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"brakit","version":"0.8.2","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.2","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"5c30bbbe2833d3f6e8885513a16794eab52c8117","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.2.tgz","fileCount":11,"integrity":"sha512-tuX0ksFTK2dQ0Aj2tR+vuljgsnJU5ErawcXB9l763oPQj2bGzsae7ke30cytaB6FXSi+s+ZvQOZKJA+BgL2vpQ==","signatures":[{"sig":"MEYCIQDuWtarsTK9z9UjYBdmsVuQHpDP2FG/nkJicFyG/GjYqwIhAKVaraZiOHT3kFbhPwSqP6s2SfQUzRCxYzOhaHIn5+yv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":476264},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"5f8162e4d4181aa5198ee256ae378c460cce1a1a","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.2_1772491573396_0.5322896073538219","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"brakit","version":"0.8.3","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.3","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"dd87d3dc781da5ceb1b3c2b13115c6d2639bb42c","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.3.tgz","fileCount":11,"integrity":"sha512-tIoVA8Af5Qw1rO0W2AY6Z0MfZWKdbsxPMnU+bwXyT81G+qv6/8SjnVuLb1OQg+kO4vJ42K7bhqBuENEm5W9dMQ==","signatures":[{"sig":"MEYCIQCGEuxRvbqNJbs6blwHKhPH+/cbAsfeePxXvMYEBYd8iwIhAKoZlm0x5udK5t71MYSmFiUyQMEsU9PIpQxLC/j6j0ZH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":476014},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"5f8162e4d4181aa5198ee256ae378c460cce1a1a","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.3_1772492509776_0.696114348091962","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"brakit","version":"0.8.4","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.4","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"9d4290fda9a2d9923116ba1b5ceea643863b7fb4","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.4.tgz","fileCount":11,"integrity":"sha512-p232witeCrF5sChLYF5h6GrrWKzl8EQc+ZSsbL6j3DyxEMv69reVNpY2ecrSQ7XADYoH1Dw5lNHWYyPzXFgWCQ==","signatures":[{"sig":"MEUCIQDLQYhEtqVGPhxZf6+n1/MURHZReYFGcjEtuCCE47aQFAIgYtdwcVjgwIQBCE0QwLz1Hxnw7+1ZgOuCgV6CRkgp3sQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484234},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"5f8162e4d4181aa5198ee256ae378c460cce1a1a","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.4_1772826793951_0.7634469813083302","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"brakit","version":"0.8.5","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.5","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"9dc2e5684ec71ca6e3d8924e5c04c31d7cf61189","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.5.tgz","fileCount":12,"integrity":"sha512-vnUI22tzuyQcJY6ZF/dWfrCjjKrubflB5f3McrK/MWBJ7qL8NnhGSc8oPSlVtrclLSjLMbikZDCiEjIoyDls+Q==","signatures":[{"sig":"MEUCIACd+kHTAalU/jeRQQNTy82CbHtYo7XirLY886r3i1q4AiEAqZ/2nziaU+yRV+6S4TZ5jj0JEbS0E049h7FhhaJcJmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":651393},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"b091e6cdc865c60e79988bad0b9421870fb97001","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.5_1773202312829_0.02086271995017097","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"brakit","version":"0.8.6","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.6","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"72a876e16c766305c728265bcbb65c7bf5494514","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.6.tgz","fileCount":12,"integrity":"sha512-w/fxZ76jvwZvoIUMeT5wvoKZVZdMFfkqu379JH58Io6NiE8bCE23NMZ1INxW85L0TcQ+wb0E7LZ+OugxhiAOhg==","signatures":[{"sig":"MEQCIFsILh+Sk9zfyDkl5hPGJvDCQK/h5W9awqP2n7j5Jz+iAiBQNVwQ42cqEAcCJkTGcG1X+4u3Qio15sQWVdO6GsGE8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":663390},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"f7256bd9a5524ec7eca7acd93bf8d8d255c5006b","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"citty":"^0.1.6","picocolors":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.6_1773261917008_0.9844232446210333","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"brakit","version":"0.8.7","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.8.7","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"be0d89628731d1b3e469368372acaaa21cdc6a4f","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.8.7.tgz","fileCount":13,"integrity":"sha512-HZP074KjzADBwyuDy3d3l3lhrcxo5uTQOZKSGnJLRyAA+v2eJl7ALj76R6doWPkAeOUF9XyVgUBUFouTtPsTjQ==","signatures":[{"sig":"MEUCIQDB70LnkqTG4fnWLMDcKssgt04N3uVJjQcmQ/s2gGVwsAIgSejTO6MzVHdlRRR0wkJM1PEsk1JM4gZPiW4CpaxGIwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664571},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"140759f0f59c4f4741e0eccfef0b74c19ba8a1d5","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.8.7_1773786706166_0.5511668950695072","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"brakit","version":"9.0.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@9.0.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d0cf0b7ff6cc18677e02376b30c558e81f1f3941","tarball":"https://registry.npmjs.org/brakit/-/brakit-9.0.0.tgz","fileCount":13,"integrity":"sha512-wcOYmYPexQq1se6+4I8xcvwrUbmYFfsfoK7nYN8j+6uSo9rjHSBsWoopnesf9yTnAZdOXLfTrehZ31Z+m59B6A==","signatures":[{"sig":"MEYCIQDK/2elk+4wFroG/iNlFeQOg+jsLRhbXIcYjaPqK9NXAgIhALF4vwIILMVTSEnKfNMR1EfQysfyikjv5ZQINajM67MR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677465},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"32ff3cad29df8517bc6baf003b90aa4725260aed","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_9.0.0_1774032312590_0.13126348773199847","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"brakit","version":"0.9.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.9.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"d9c2fcd55d5d0440ab9ab69de501760a6815008d","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.9.0.tgz","fileCount":13,"integrity":"sha512-xDzAZBZ+XvfESukUveX6uY2eCIL3Xjd/LaweL+cayq9phGzA31tQuBCnr9TKEZgceWhcD9mE0eGCRUfGjFAheQ==","signatures":[{"sig":"MEQCIEKc6ZKwES5QxXJOux8lNB0k+oZ5O5A0VuhBTd7aM7tEAiAwyd7AMLa8fCD8oMNu6P3AFN5OJ1b1sWTkqntsQxrAUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699995},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"56d1565500c42d58ba943c34449a13c115b70e7d","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.9.0_1774068021488_0.1525594404349968","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"brakit","version":"0.9.1","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.9.1","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"a782e3ca9c125f32d155525534672c84521cd2e3","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.9.1.tgz","fileCount":13,"integrity":"sha512-ALWt8qZTrZMbX9mJIaEyg3JsBx6vUKINhQLlwHATKu2eTgsNhUPbblAzn0yZzC5Whbq5gq6wAKKG4RRBTlxgGQ==","signatures":[{"sig":"MEYCIQD0TP23iQ62QB+HG7ebTCO7NmfFUNX82PTSyJZPmQpG7QIhAKLyqq/ljn/ShasF8WYDKubptB88EJ7Vh4HJrBPJDQbd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708765},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"f94dd3843693188d20f9398d09e817cf6477577c","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.9.1_1774153512453_0.42577432135492743","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"brakit","version":"0.9.2","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.9.2","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"20446dffcabc1bcb2b908d27f8e09c4f779ac14c","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.9.2.tgz","fileCount":13,"integrity":"sha512-actqd6vagY3OIf6PCHBBKoqYyLgZgXTvGFVdj+rSkOFda71bqbU4MIB/l+nS1gLBNJ3hsx6wCt/o7Tx6/SBW5Q==","signatures":[{"sig":"MEQCIFcAsdkap7WKqkqk9UOyKBT/C7/vQi4XN6ACVEXMG1cmAiAYY/lC8TzKDMn3YQXMtCDKUZVyDEkl50kJEUJCHCXZSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709798},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"0583073378ab594d8907985bc72febf287d626ed","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.9.2_1774419669649_0.26764872593601785","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"brakit","version":"0.10.0","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.10.0","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"f09c0a8779e6a1c04b8db010bd2db17b072429d6","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.10.0.tgz","fileCount":13,"integrity":"sha512-F8CrXR/CaxlY0KSYjMbeGyLPgv3XC/+nfpgfWlaLHDLLXaHFj52MSA0+cFxc5JX3QRDiQ1QQgx0CP/1sdBuyqQ==","signatures":[{"sig":"MEQCIBrYTu3CDxDMf6ZtrHtT74IFKBNleq3u8bssoXOGBYY9AiAbSKoqKk8ysoY8tA7Tjf1pwVmyCCqfGRqr4w9w4iAgjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":832328},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"f93635db35d2c1838974e5c16c6c6f5238669c72","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.10.0_1774643589854_0.209128340267289","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"brakit","version":"0.10.1","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"author":{"url":"https://brakit.ai","name":"Brakit","email":"dev@brakit.ai"},"license":"MIT","_id":"brakit@0.10.1","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"bin":{"brakit":"dist/bin/brakit.js"},"dist":{"shasum":"626e49f79b72c7ee86bbb3f1c82d754a336eddec","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.10.1.tgz","fileCount":13,"integrity":"sha512-Ha63gJ6HfXicsfTFybeL2w2yDlrjy6ZPe16hU4mX/gry8gBihnyanwx/zndR9ii1Jagq/LOBVwTTpxsAOG7HpQ==","signatures":[{"sig":"MEQCIHknHDwzIA9RYaGPJK3GKF2HJRH41128MDfXP9j9g68NAiBHAJOoX3niLn4LWALvpzMyCEOCGEmdnuJa3UgTljF5MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859695},"main":"./dist/runtime/index.js","type":"module","types":"./dist/api.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/api.d.ts","import":"./dist/runtime/index.js"}},"gitHead":"e90245710fb2f18c4f9ff40d01704c1c22813685","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup && npx tsx scripts/export-dashboard.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","test:contracts":"vitest run tests/contracts tests/adapters","build:dashboard":"npx tsx scripts/export-dashboard.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"repository":{"url":"git+https://github.com/brakit-ai/brakit.git","type":"git"},"_npmVersion":"10.9.4","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","dependencies":{"lit":"^3.3.2","citty":"^0.1.6","picocolors":"^1.1.1","@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/brakit_0.10.1_1774764420513_0.6824299634838684","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"brakit","version":"0.10.2","description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","type":"module","bin":{"brakit":"dist/bin/brakit.js"},"main":"./dist/runtime/index.js","types":"./dist/api.d.ts","exports":{".":{"import":"./dist/runtime/index.js","types":"./dist/api.d.ts"}},"publishConfig":{"access":"public"},"sideEffects":true,"scripts":{"build":"tsup && npx tsx scripts/export-dashboard.ts","build:dashboard":"npx tsx scripts/export-dashboard.ts","dev":"tsup --watch","prepublishOnly":"node -e \"const b = require('child_process').execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); if(b !== 'main'){console.error('Publishing is only allowed from the main branch. Current branch: ' + b); process.exit(1);}\" && npm run build","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:contracts":"vitest run tests/contracts tests/adapters","test:integration":"vitest run tests/integration","ci":"npm run typecheck && npm test && npm run build","lint":"tsc --noEmit"},"repository":{"type":"git","url":"git+https://github.com/brakit-ai/brakit.git"},"homepage":"https://brakit.ai","bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"author":{"name":"Brakit","email":"dev@brakit.ai","url":"https://brakit.ai"},"dependencies":{"@lit/context":"^1.1.6","@modelcontextprotocol/sdk":"^1.0.0","citty":"^0.1.6","lit":"^3.3.2","picocolors":"^1.1.1"},"devDependencies":{"@types/node":"^22.0.0","tsup":"^8.4.0","typescript":"^5.7.0","vitest":"^3.0.0"},"engines":{"node":">=18"},"license":"MIT","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"_id":"brakit@0.10.2","gitHead":"5a9d11fded48ffd119c3af5178f001d9508c9314","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-breJi3yLUqqQQOXxnJyncf/VjdWgtknEdgj2EMsIJSxuQ+ZPkXu5m/c4hyjvqlUsmk1/5OBuguhJPed4H5w+fQ==","shasum":"e7b152763e9f044d78455553bc50670a38f61bce","tarball":"https://registry.npmjs.org/brakit/-/brakit-0.10.2.tgz","fileCount":13,"unpackedSize":880736,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQClJOPmYLnmxuZkR9J2zZUfBRPA+b0M9J93rFlo1xGTRwIhANTYdg/3tsvI6cDDYocBIzw09k8Eb0y0reiCpHBi6+UW"}]},"_npmUser":{"name":"brakit_ai","email":"dev@brakit.ai"},"directories":{},"maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/brakit_0.10.2_1775422487233_0.8973142036278121"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T19:39:45.131Z","modified":"2026-04-05T20:54:47.550Z","1.0.0":"2025-10-11T07:35:46.172Z","1.0.1":"2025-10-11T07:45:56.804Z","1.0.2":"2025-10-11T07:51:59.218Z","1.0.3":"2025-10-11T07:55:11.302Z","1.0.4":"2025-10-11T08:04:52.967Z","1.0.5":"2025-10-11T08:12:28.750Z","1.0.6":"2025-10-13T04:51:20.730Z","0.1.0":"2025-10-13T16:50:53.347Z","0.1.1":"2025-10-13T23:00:58.277Z","0.1.2":"2025-10-13T23:08:41.659Z","0.2.0":"2025-10-16T21:54:54.907Z","0.3.0":"2025-10-21T16:32:15.933Z","0.3.1":"2025-10-21T17:42:15.047Z","0.3.2":"2025-10-21T21:13:31.235Z","0.3.3":"2025-10-31T09:49:21.636Z","0.3.4":"2025-11-01T01:40:03.105Z","0.4.0":"2025-11-01T01:42:14.596Z","0.4.1":"2025-11-02T05:36:02.950Z","0.4.2":"2025-11-06T02:35:46.348Z","0.4.3":"2025-11-06T03:36:42.411Z","0.4.4":"2025-11-06T04:14:43.581Z","0.4.5":"2025-11-06T04:33:49.210Z","0.4.6":"2025-11-06T04:46:51.305Z","0.4.7":"2025-11-06T09:14:44.399Z","0.5.0":"2025-11-08T18:50:19.729Z","0.5.1":"2025-11-10T18:07:18.730Z","0.5.2":"2025-11-12T17:31:04.732Z","0.5.3":"2025-11-14T06:03:12.524Z","0.5.4":"2025-11-14T13:32:15.452Z","0.5.5":"2025-11-14T14:17:11.844Z","0.5.6":"2025-11-14T17:47:26.895Z","0.5.7":"2025-11-14T18:15:51.058Z","0.5.8":"2025-11-15T16:50:17.349Z","0.5.9":"2025-11-18T17:02:12.615Z","0.5.10":"2025-11-19T17:13:26.817Z","0.5.11":"2025-11-21T10:22:50.979Z","0.5.13":"2025-11-23T09:15:51.962Z","0.6.0":"2026-02-20T19:39:45.463Z","0.6.1":"2026-02-20T22:27:28.956Z","0.6.2":"2026-02-21T07:27:10.000Z","0.7.0":"2026-02-25T20:19:59.599Z","0.7.1":"2026-02-25T20:46:38.511Z","0.7.2":"2026-02-25T20:56:28.954Z","0.7.3":"2026-02-25T21:40:52.642Z","0.7.4":"2026-02-25T21:46:53.899Z","0.7.5":"2026-02-25T23:31:10.439Z","0.7.6":"2026-02-26T21:00:54.377Z","0.8.0":"2026-02-27T22:32:54.960Z","0.8.1":"2026-02-28T09:00:25.621Z","0.8.2":"2026-03-02T22:46:13.577Z","0.8.3":"2026-03-02T23:01:49.963Z","0.8.4":"2026-03-06T19:53:14.097Z","0.8.5":"2026-03-11T04:11:53.031Z","0.8.6":"2026-03-11T20:45:17.286Z","0.8.7":"2026-03-17T22:31:46.359Z","9.0.0":"2026-03-20T18:45:12.765Z","0.9.0":"2026-03-21T04:40:21.678Z","0.9.1":"2026-03-22T04:25:12.607Z","0.9.2":"2026-03-25T06:21:09.875Z","0.10.0":"2026-03-27T20:33:10.058Z","0.10.1":"2026-03-29T06:07:00.703Z","0.10.2":"2026-04-05T20:54:47.450Z"},"bugs":{"url":"https://github.com/brakit-ai/brakit/issues"},"author":{"name":"Brakit","email":"dev@brakit.ai","url":"https://brakit.ai"},"license":"MIT","homepage":"https://brakit.ai","keywords":["api-monitoring","api-security","request-tracing","n-plus-one","n+1-detection","duplicate-detection","security-scanning","devtools","developer-tools","nextjs","prisma","postgresql","mysql","database-queries","query-analysis","instrumentation","in-process","dashboard","performance","runtime-analysis","zero-config","observability"],"repository":{"type":"git","url":"git+https://github.com/brakit-ai/brakit.git"},"description":"See what your API is really doing. Security scanning, N+1 detection, duplicate calls, DB queries — one command, zero config.","maintainers":[{"name":"brakit_ai","email":"dev@brakit.ai"}],"readme":"<h1 align=\"center\"><img src=\"docs/images/icon.png\" height=\"24\" alt=\"\" />&nbsp;&nbsp;Brakit</h1>\n\n<p align=\"center\">\n  <b>AI writes your code. Brakit watches what it does.</b> <br />\n  Every request, query, and API call mapped to the action that triggered it. See your entire backend at a glance. <br />\n  <b>Open source · Local first · Zero config · AI-native via MCP</b>\n</p>\n\n<h3 align=\"center\">\n  <a href=\"docs/design/architecture.md\">Architecture</a> &bull;\n  <a href=\"https://brakit.ai\">Website</a> &bull;\n  <a href=\"CONTRIBUTING.md\">Contributing</a>\n</h3>\n\n<h4 align=\"center\">\n  <a href=\"LICENSE\">\n    <img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT License\" />\n  </a>\n  <a href=\"https://nodejs.org\">\n    <img src=\"https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg\" alt=\"Node >= 18\" />\n  </a>\n  <a href=\"https://typescriptlang.org\">\n    <img src=\"https://img.shields.io/badge/built%20with-TypeScript-3178c6.svg\" alt=\"TypeScript\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/brakit\">\n    <img src=\"https://img.shields.io/npm/v/brakit\" alt=\"npm version\" />\n  </a>\n  <a href=\"CONTRIBUTING.md\">\n    <img src=\"https://img.shields.io/badge/PRs-Welcome-brightgreen\" alt=\"PRs welcome!\" />\n  </a>\n</h4>\n\n---\n\n<p align=\"center\">\n  <img width=\"700\" src=\"docs/images/actions.png\" alt=\"Brakit Actions — endpoints grouped by user action\" />\n  <br />\n  <sub>Every endpoint grouped by the action that triggered it — see \"Sign Up\" and \"Load Dashboard\", not 47 raw requests</sub>\n</p>\n\n<p align=\"center\">\n  <img width=\"700\" src=\"docs/images/dashboard.png\" alt=\"Brakit Dashboard — issues surfaced automatically\" />\n  <br />\n  <sub>Brakit catches N+1 queries, PII leaks, and slow endpoints as you develop</sub>\n</p>\n\n<p align=\"center\">\n  <img width=\"700\" src=\"docs/images/vscode.png\" alt=\"Claude reading Brakit findings in VS Code\" />\n  <br />\n  <sub>Claude reads issues via MCP and fixes your code</sub>\n</p>\n\n## Quick Start\n\n### Node.js\n\n```bash\nnpx brakit install\nnpm run dev\n```\n\n### Python (FastAPI / Flask)\n\n```bash\npip install brakit\n```\n\n```python\nimport brakit  # must be before framework import\nfrom fastapi import FastAPI\n\napp = FastAPI()\n```\n\nDashboard at `http://localhost:<port>/__brakit`. Issues in the terminal.\n\n> **Full setup guide:** [brakit.ai/docs/introduction](https://brakit.ai/docs/introduction)\n\n> **Requirements:** Node.js >= 18. Python SDK requires Python >= 3.9.\n\n---\n\n## What You Get\n\n- **Live dashboard** at `/__brakit` — performance overview, request history, scatter charts, real-time via SSE\n- **8 security rules** scanned against live traffic — leaked secrets, PII in responses, missing auth flags\n- **Time breakdown** — every endpoint shows where time goes: DB, Fetch, or App code\n- **N+1 query detection** — same query pattern repeated 5+ times in a single request\n- **Regression detection** — p95 latency or query count increased vs. previous session\n- **Action-level visibility** — see \"Sign Up\" and \"Load Dashboard\", not 47 raw HTTP requests\n- **Duplicate detection** — same API called twice? Flagged with redundancy percentage\n- **Full server tracing** — fetch calls, DB queries, console logs, errors — zero code changes\n- **Response overfetch** — large JSON responses with many fields your client doesn't use\n- **Performance tracking** — health grades and p95 trends across dev sessions\n- **AI-native via MCP** — Claude Code and Cursor can query issues, inspect endpoints, and verify fixes directly\n\n---\n\n## You Don't Know What Your API Is Doing\n\nYou ship a signup flow. It works. But behind the scenes — 3 duplicate fetches, an N+1 query hitting the DB 12 times, and your user's email sitting in the response body unmasked. You'd never know without digging through network tabs and server logs for an hour.\n\nBrakit watches every action your app takes — not raw HTTP noise, but what actually happened: \"Sign Up\" took 847ms, fired 4 queries (one is an N+1), called Clerk twice (one failed), and leaked a secret in the response. One glance. No `console.log`. No guessing.\n\n---\n\n## Security Scanner\n\n8 high-confidence rules that scan your live traffic and flag real issues — not theoretical ones:\n\n|              | Rule               | What it catches                                                                  |\n| ------------ | ------------------ | -------------------------------------------------------------------------------- |\n| **Critical** | Exposed Secret     | Response contains `password`, `api_key`, `client_secret` fields with real values |\n| **Critical** | Token in URL       | Auth tokens in query parameters instead of headers                               |\n| **Critical** | Stack Trace Leak   | Internal stack traces sent to the client                                         |\n| **Critical** | Error Info Leak    | DB connection strings, SQL queries, or secret values in error responses          |\n| Warning      | PII in Response    | API echoes back emails, returns full user records with internal IDs              |\n| Warning      | Insecure Cookie    | Missing `HttpOnly` or `SameSite` flags                                           |\n| Warning      | Sensitive Logs     | Passwords, secrets, or token values in console output                            |\n| Warning      | CORS + Credentials | `credentials: true` with wildcard origin                                         |\n\n---\n\n## Who Is This For\n\n- **AI-assisted developers** — Using Cursor, Copilot, or Claude Code to generate API code you don't fully review? Brakit catches the issues they introduce.\n- **Console.log debuggers** — Wish you could just see every action your API executes without adding log statements everywhere? That's literally what brakit does.\n- **Anyone shipping Node.js APIs** — If you want to catch security and performance issues before they reach production, brakit surfaces them as you develop.\n\n---\n\n## How It Works\n\n```\nimport 'brakit'  →  hooks into http.Server  →  captures everything\n                          |\n                          +-- Dashboard UI    (/__brakit)\n                          +-- Live SSE stream (real-time updates)\n                          +-- Terminal output  (insights as you develop)\n                          +-- MCP server      (AI assistant integration)\n```\n\n`import 'brakit'` runs inside your process. It patches `http.Server.prototype.emit` to intercept all requests — capturing request/response pairs, grouping them into actions, and streaming everything to the dashboard at `/__brakit` on your existing port. No proxy, no second process, no different port.\n\nInstrumentation hooks capture fetch calls, DB queries, console output, and errors automatically — zero code changes.\n\n### Production Safety\n\nBrakit never runs in production. 7 independent layers ensure it:\n\n| #   | Layer                        | How it blocks                             |\n| --- | ---------------------------- | ----------------------------------------- |\n| 1   | `shouldActivate()`           | Checks `NODE_ENV` + 15 cloud/CI env vars  |\n| 2   | `instrumentation.ts` guard   | Its own `NODE_ENV !== 'production'` check |\n| 3   | devDependency                | Pruned in production builds               |\n| 4   | `try/catch` on import        | Missing module = silent no-op             |\n| 5   | Localhost-only dashboard     | Non-local IPs get 404 on `/__brakit`      |\n| 6   | `safeWrap` + circuit breaker | 10 errors = brakit self-disables          |\n| 7   | `BRAKIT_DISABLE=true`        | Manual kill switch                        |\n\n### Supported Frameworks\n\n| Framework | Status                     |\n| --------- | -------------------------- |\n| Next.js   | Full support (auto-detect) |\n| Remix     | Auto-detect                |\n| Nuxt      | Auto-detect                |\n| Vite      | Auto-detect                |\n| Astro     | Auto-detect                |\n| Express   | Auto-detect                |\n| Fastify   | Auto-detect                |\n\n### Supported Databases\n\n| Driver  | Status    |\n| ------- | --------- |\n| pg      | Supported |\n| mysql2  | Supported |\n| Prisma  | Supported |\n| SQLite  | Planned   |\n| MongoDB | Planned   |\n| Drizzle | Planned   |\n\n---\n\n## Uninstall\n\n```bash\nnpx brakit uninstall\n```\n\nRemoves the instrumentation file, MCP configuration, `.brakit` data directory, `.gitignore` entry, and devDependency. Your app is unchanged.\n\n---\n\n## Development\n\n```bash\ngit clone https://github.com/brakit-ai/brakit.git\ncd brakit\n\nnpm install\nnpm run build       # Build with tsup\nnpm run dev         # Watch mode\nnpm run typecheck   # Type-check without emitting\nnpm test            # Run tests with vitest\n```\n\nMinimal production dependencies. Everything else is Node.js built-ins.\n\n### Architecture\n\n```\nsrc/\n  runtime/        In-process entry point, interceptor, capture, safety\n  analysis/       Insights engine and security scanner\n    insights/     InsightRule implementations (one file per rule)\n    rules/        SecurityRule implementations (one file per rule)\n  cli/            CLI commands (install, uninstall)\n  constants/      Shared thresholds, route paths, limits\n  dashboard/\n    api/          REST handlers — requests, flows, telemetry, metrics\n    client/       Browser JS generated as template strings\n      views/      Tab renderers (overview, flows, graph, etc.)\n    styles/       CSS modules\n  detect/         Framework auto-detection\n  instrument/     Database adapters and instrumentation hooks\n    adapters/     BrakitAdapter implementations (one file per library)\n    hooks/        Core hooks (fetch, console, errors, context)\n  mcp/            MCP server for AI tool integration (Claude, Cursor)\n    tools/        Tool implementations (one file per tool)\n  output/         Terminal insight listener\n  store/          In-memory telemetry stores + persistent metrics\n  types/          TypeScript definitions by domain\n  utils/          Shared utilities (collections, format, math, endpoint)\n```\n\n---\n\n## Contributing\n\nBrakit is early and moving fast. The most common contributions — adding a\ndatabase adapter, a security rule, or an insight rule — each require exactly\none file and one interface. See [CONTRIBUTING.md](CONTRIBUTING.md) for\nstep-by-step guides.\n\nSome areas where help would be great:\n\n- **Database adapters** — Drizzle, Mongoose, SQLite, MongoDB\n- **Insight rules** — New performance patterns, custom thresholds\n- **Security rules** — More patterns, configurable severity\n- **MCP tools** — New AI-facing tools for the MCP server\n- **Dashboard** — Request diff, timeline view, HAR export\n\nPlease open an issue first for larger changes so we can discuss the approach.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}