{"_id":"@almadar/logger","_rev":"13-f9ed69063ed8322511225cf3219c67ca","name":"@almadar/logger","dist-tags":{"latest":"1.12.0"},"versions":{"1.0.0":{"name":"@almadar/logger","version":"1.0.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.0.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"508ad1bed89e927fa2c226b9be49946cfac824f4","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.0.0.tgz","fileCount":6,"integrity":"sha512-Cxs5BR/tOv4kg3ItuzVTgSu39hLafqJLAP97ZP/+yqs0d1ZQAu1+FIvxl/4b9y8aqg2ZJB/CjzmM79qN1GirTw==","signatures":[{"sig":"MEYCIQCEmq8vsj+U0YIHHKa6HQkP8ycRvetVOXGzjMzM55UgQwIhAODkR/nod2/Ubut/a0i38wfIrRMp2fXJkvFhJ8NDMQdC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22739},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/f1d742d699c395b9befab6365224ae7e/almadar-logger-1.0.0.tgz","_integrity":"sha512-Cxs5BR/tOv4kg3ItuzVTgSu39hLafqJLAP97ZP/+yqs0d1ZQAu1+FIvxl/4b9y8aqg2ZJB/CjzmM79qN1GirTw==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.7","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@almadar/core":">=7.12.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.0_1778551970524_0.341031888984918","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@almadar/logger","version":"1.1.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.1.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"46f4e0cd6b8b6049563948861b3072014fcbd243","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.1.0.tgz","fileCount":6,"integrity":"sha512-Qp4H/CxGOimztq8dnBbnjYrzmplkHUFUcQhlVCnpKDnh51qzn5KqMbhGqpgiMnrTRgXeTpgs8B9mQPTpor12hg==","signatures":[{"sig":"MEQCIEH7Ofbf6sQMQkbngQS7stazYXI6jton1uRfT8sXagn/AiB8lMZmXvKvGl3bYJS82vTnIc/u51WuPA3C5TzV+FmpKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22739},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/8c1f9a1b365733d00a62ace7ce895548/almadar-logger-1.1.0.tgz","_integrity":"sha512-Qp4H/CxGOimztq8dnBbnjYrzmplkHUFUcQhlVCnpKDnh51qzn5KqMbhGqpgiMnrTRgXeTpgs8B9mQPTpor12hg==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.7","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.1.0_1778553267200_0.43265357012555494","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@almadar/logger","version":"1.2.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.2.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"0a94cb3877a6c6e6942d57a8d950e91b4a54e1a1","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.2.0.tgz","fileCount":6,"integrity":"sha512-xmUkafP6d57uTUY/A26nJXYpmrzjGWZTni3ojNen0Hek6hOYVYgvzS1JcmaoUakaihzOZ7a8JFzOjIEqUrbnsw==","signatures":[{"sig":"MEYCIQDWHCGdO3LLR90h+0Z+dBuksTsmdnjmCYUu7y9HfJoW2AIhAL0rmoY27ORgbGT0BLKUTPYEMt+u2R6+JAmPQr85eN/R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24772},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/1a12da2b2df0d1cb3cb4cf2b6e527e66/almadar-logger-1.2.0.tgz","_integrity":"sha512-xmUkafP6d57uTUY/A26nJXYpmrzjGWZTni3ojNen0Hek6hOYVYgvzS1JcmaoUakaihzOZ7a8JFzOjIEqUrbnsw==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.7","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.2.0_1778559981206_0.39294721166640967","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@almadar/logger","version":"1.3.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.3.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"8ea9ec6a96faf0ac45686baa4dfaa912ebda5619","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.3.0.tgz","fileCount":6,"integrity":"sha512-6WhnbfjQqHEy2hoRlvZM0RYr8trAra5t82IhOOIRPIoc2/jbpoIqINZ/dGlbndoa3g1aC+4LrdH35H0TzKdEhw==","signatures":[{"sig":"MEQCIEp0EGsjd4r4n97UnNsbArbQXhgOLxnWhQiE5EN7zc+jAiB4a7byLPi1wSnocyu7tsUMms9QowYupLzWjYw8MYF12g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43480},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/e726ceec5fa91cd2296a51975998e723/almadar-logger-1.3.0.tgz","_integrity":"sha512-6WhnbfjQqHEy2hoRlvZM0RYr8trAra5t82IhOOIRPIoc2/jbpoIqINZ/dGlbndoa3g1aC+4LrdH35H0TzKdEhw==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.7","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.3.0_1778560284302_0.4563209719451673","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@almadar/logger","version":"1.4.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.4.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"94df78e206cb55cdfa29903ae408f0191b5e1ceb","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.4.0.tgz","fileCount":9,"integrity":"sha512-S/D7ltwYTOH8j4k/rj+O2gI7dtWxHXnHdzoigdnKHE0KfJAj7YfuZG2pErjzv7BhOvWuhnSSmSRvXeeKMHMeZQ==","signatures":[{"sig":"MEUCIQC8SWcoiXakT7PwH98MXr3bvB096mVBgVLR/CBL9eiT3gIgVU+ncLVB8qGYW6M1TyNXb3vQArXeKQsiOzaZCy3SUFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51192},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/86fee17bbc5d7f0db2e8030e3feed16c/almadar-logger-1.4.0.tgz","_integrity":"sha512-S/D7ltwYTOH8j4k/rj+O2gI7dtWxHXnHdzoigdnKHE0KfJAj7YfuZG2pErjzv7BhOvWuhnSSmSRvXeeKMHMeZQ==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.4.0_1781155073317_0.4874232792896238","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@almadar/logger","version":"1.5.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.5.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"ad5cc541aae30bbfbea83125cc9f83e758786a4a","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.5.0.tgz","fileCount":9,"integrity":"sha512-cC9qwLSL0a6LjKgT5MAXsy3dcedhU+Lk5EbiXlKc4WxFVDCWTkl0W1AK50tS+2b7d72IaHgdJZQQtqHfTtZAVg==","signatures":[{"sig":"MEUCIBrSmD1JZ36Fr7doCNiktTnypDEj4r3E7OIGjXTgXjqcAiEAu/vaqfrzAaoT9B/IES/OHST9XXS6yHLTGVDZsGwZcZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51216},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/4849e06f7fb2dcae42e6af6fbc658c5e/almadar-logger-1.5.0.tgz","_integrity":"sha512-cC9qwLSL0a6LjKgT5MAXsy3dcedhU+Lk5EbiXlKc4WxFVDCWTkl0W1AK50tS+2b7d72IaHgdJZQQtqHfTtZAVg==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.5.0_1783120950664_0.2857316726989394","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@almadar/logger","version":"1.6.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.6.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"1eba7341d19024ba35925c2b2caa1f22d4528dcf","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.6.0.tgz","fileCount":9,"integrity":"sha512-DtFJ9UP51fNm07KQ5un7ziIVmY5YcnSfRK+eEgDcEG4+vjZ6bLhl9wcnp0ASI48sWbm0lPo+bV7VAVxqEEaclQ==","signatures":[{"sig":"MEUCIQC2tcJmWbdAniKUM8CVqRPsvuPzVPg22YQL7C0OjDZl7QIgT5HsI779DBx4eTmGYBpuP/fodf8bGR5Rh4syMAQzWF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51216},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/1fef2b0d8f21273b75df052e48aa9539/almadar-logger-1.6.0.tgz","_integrity":"sha512-DtFJ9UP51fNm07KQ5un7ziIVmY5YcnSfRK+eEgDcEG4+vjZ6bLhl9wcnp0ASI48sWbm0lPo+bV7VAVxqEEaclQ==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.6.0_1783124933989_0.7319103980624764","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@almadar/logger","version":"1.7.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.7.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"008ccc95a0ba409a397db7049912a21c5557d81a","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.7.0.tgz","fileCount":9,"integrity":"sha512-ckSFtpvGzw4Q6QaSwspAtDD8W/B01rdEUvxuQD1QrpclOSELuAbOupHzt0N5MTkssfs5tQKwkmCGwEL1AaVBwQ==","signatures":[{"sig":"MEUCICDQhUPwUxo/F+qg61b/iHFm4727lJhnvAEtg0L7E48WAiEApVQBi0fHocQOpZb+XUrEBxZrrkDzK09GPbFhh11DdsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51216},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/dddd49be132acf7d2ed0ffd274faa22c/almadar-logger-1.7.0.tgz","_integrity":"sha512-ckSFtpvGzw4Q6QaSwspAtDD8W/B01rdEUvxuQD1QrpclOSELuAbOupHzt0N5MTkssfs5tQKwkmCGwEL1AaVBwQ==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.7.0_1783174442664_0.5771485792818578","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@almadar/logger","version":"1.8.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.8.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"af4e5313258edabde90b9bb773d10929a08e077e","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.8.0.tgz","fileCount":9,"integrity":"sha512-NhjOW7g2bSNop3mSEi+7PUeajLPkpUQ9AVjnlT45e4SyhpP1jbIwTWJnxPQQtzLzRYD3XZ2w0TkZK4qbaKLKMw==","signatures":[{"sig":"MEUCIQD6D9l8YsrGwye45qnhA2hurgsK62UVqtU3mzeefFXRbQIgcKXJVk8KgZkiN8lGMW9vYs1yjGe3NbaKT900z9u1vvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51216},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/caf41278c91f6e617279959d72b8eb94/almadar-logger-1.8.0.tgz","_integrity":"sha512-NhjOW7g2bSNop3mSEi+7PUeajLPkpUQ9AVjnlT45e4SyhpP1jbIwTWJnxPQQtzLzRYD3XZ2w0TkZK4qbaKLKMw==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.8.0_1783584044777_0.43805840555929243","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@almadar/logger","version":"1.9.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.9.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"7a2c3ae4c4a5363466661aea10dcad864ef73f0c","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.9.0.tgz","fileCount":9,"integrity":"sha512-863+UD4n3cP4tXReJFk6VpAc0mHzQxR6ehAroLKfy3ns09Yjs1v6y2oROiBMo0M18AmkwtitErNT+wqA5bj4sA==","signatures":[{"sig":"MEUCIQDR1mRDf7bQzItmnkMxT4hkyNAt7MQkUrpD4QhuqDkF5wIgDvaoDU7oXan4/72Jto7CGoo6Fql9vSOKxWzoykCYCPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51216},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/2952c65f1fa3727d98241798876f06f4/almadar-logger-1.9.0.tgz","_integrity":"sha512-863+UD4n3cP4tXReJFk6VpAc0mHzQxR6ehAroLKfy3ns09Yjs1v6y2oROiBMo0M18AmkwtitErNT+wqA5bj4sA==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":">=7.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0","@almadar/eslint-plugin":">=2.7.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.9.0_1783586978115_0.910839930573649","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@almadar/logger","version":"1.10.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.10.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"25632e31832db1ae402635384f32cce5b21eec70","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.10.0.tgz","fileCount":9,"integrity":"sha512-QEAEiDg72wRkdYgpaa4pipx+Cd/QBHkNUSyCTj98EpTtIrziLek765qwDbAivEwjuKfS79CPUs3sF4baiZAgwQ==","signatures":[{"sig":"MEQCIDoXHP4Fi9q4Mnr8lxf8D7MGhsbQFa0acLliCktXZ4pxAiAoWnkGNYivF+8tUfWEFEM72E6OG9/R1bL+DILjRVWa3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51296},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/0f69ab15e1d05bc2d572859aa4f72cd1/almadar-logger-1.10.0.tgz","_integrity":"sha512-QEAEiDg72wRkdYgpaa4pipx+Cd/QBHkNUSyCTj98EpTtIrziLek765qwDbAivEwjuKfS79CPUs3sF4baiZAgwQ==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":"^10.34.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^22.0.0","@typescript/native":"npm:typescript@^7.0.2","@almadar/eslint-plugin":"^2.15.0","@typescript-eslint/parser":"8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.10.0_1784943044275_0.9004783201966466","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@almadar/logger","version":"1.11.0","keywords":["almadar","logger","logging","structured-logging"],"license":"BSL-1.1","_id":"@almadar/logger@1.11.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"8a2ff0929e5ebdbd078bdd8b3829a4752305966d","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.11.0.tgz","fileCount":10,"integrity":"sha512-rl1NszSOd4iMr759J9OpwaB0hISq22Tnwx0A2cItjXyCO0+nBwVY3gFpHuP52dSRKvZ9iPmxPhhk8ATDVAlQuQ==","signatures":[{"sig":"MEUCIQDt99jgYT8QoGZqe+Lwirywub+KIpuKaIxPdr7d/qEsIgIgO98nyuHQdkn2shffoBb98fuoMGaMC4b6pt/zzts8oHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56833},"main":"./dist/index.js","type":"module","_from":"file:almadar-logger-1.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/3430ced1551cfe181098d51a8f87937f/almadar-logger-1.11.0.tgz","_integrity":"sha512-rl1NszSOd4iMr759J9OpwaB0hISq22Tnwx0A2cItjXyCO0+nBwVY3gFpHuP52dSRKvZ9iPmxPhhk8ATDVAlQuQ==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@almadar/core":"^10.49.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^22.0.0","@typescript/native":"npm:typescript@^7.0.2","@almadar/eslint-plugin":"^2.15.0","@typescript-eslint/parser":"8.65.0"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.11.0_1785588618954_0.05311299382455292","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"_id":"@almadar/logger@1.12.0","bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"dist":{"shasum":"521ecf727ef0af8fc4f080bd195b4bf61e88d59a","tarball":"https://registry.npmjs.org/@almadar/logger/-/logger-1.12.0.tgz","fileCount":10,"integrity":"sha512-LcNpduM3Mx36u2b9G7ofR0ekYZuJCB8eGTYq9THe00gpnkVJVewbvJxsEza1bRcUa5e81MbYs0NCZsTSWio6Xg==","signatures":[{"sig":"MEUCIBvB/sRAxPDtJT5FIQ0lNkg1xF5g6VTPTOjvfmvf6cH5AiEAo8vtd+zXEyP/hE6T0Uk83C00ZBGKuaF/rhaUga7eHGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAvMOss5RfVadwu/WKKjYYHOqstSq+4CeUztJQN/DhP2AiEAlzEp1iAWBxEzwbldWayFtxoAMZQOEAt6QaW2GBhZ7Q0="}],"unpackedSize":56833},"main":"./dist/index.js","name":"@almadar/logger","type":"module","_from":"file:almadar-logger-1.12.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./timing":{"types":"./dist/timing.d.ts","import":"./dist/timing.js","require":"./dist/timing.js"}},"license":"BSL-1.1","scripts":{"lint":"eslint src/","test":"vitest --run","build":"tsup","typecheck":"tsc --noEmit","build:watch":"tsup --watch"},"version":"1.12.0","_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"homepage":"https://github.com/almadar-io/almadar#readme","keywords":["almadar","logger","logging","structured-logging"],"_resolved":"/tmp/610805f452a9e971ebce146c251b3960/almadar-logger-1.12.0.tgz","_integrity":"sha512-LcNpduM3Mx36u2b9G7ofR0ekYZuJCB8eGTYq9THe00gpnkVJVewbvJxsEza1bRcUa5e81MbYs0NCZsTSWio6Xg==","repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"_npmVersion":"10.9.8","description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","directories":{},"maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@almadar/core":"^10.76.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","turbo":"^2.8.17","eslint":"10.0.0","vitest":"^2.1.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^22.0.0","@typescript/native":"npm:typescript@^7.0.2","@almadar/eslint-plugin":"^2.17.0","@typescript-eslint/parser":"8.65.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/logger_1.12.0_1788165594548_0.6386864175260203"}}},"time":{"created":"2026-05-12T02:12:50.331Z","modified":"2026-08-31T08:39:54.829Z","1.0.0":"2026-05-12T02:12:50.668Z","1.1.0":"2026-05-12T02:34:27.375Z","1.2.0":"2026-05-12T04:26:21.368Z","1.3.0":"2026-05-12T04:31:24.455Z","1.4.0":"2026-06-11T05:17:53.446Z","1.5.0":"2026-07-03T23:22:30.807Z","1.6.0":"2026-07-04T00:28:54.140Z","1.7.0":"2026-07-04T14:14:02.798Z","1.8.0":"2026-07-09T08:00:44.921Z","1.9.0":"2026-07-09T08:49:38.250Z","1.10.0":"2026-07-25T01:30:44.420Z","1.11.0":"2026-08-01T12:50:19.098Z","1.12.0":"2026-08-31T08:39:54.640Z"},"bugs":{"url":"https://github.com/almadar-io/almadar-logger/issues"},"license":"BSL-1.1","homepage":"https://github.com/almadar-io/almadar#readme","keywords":["almadar","logger","logging","structured-logging"],"repository":{"url":"git+https://github.com/almadar-io/almadar-logger.git","type":"git","directory":"docs/packages/logger"},"description":"Shared logging gate for @almadar/* packages — namespace-based, three-layer gated, with runtime override.","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"readme":"# @almadar/logger\n\nShared structured-logging gate for `@almadar/*` packages. Strict types\n(`LogMeta` from `@almadar/core`), three-layer gating\n(compile-time / env / runtime override), and zero React deps. Works in\nNode, Vite, Webpack, and plain browsers.\n\n```ts\nimport { createLogger } from '@almadar/logger';\n\nconst log = createLogger('almadar:runtime:sm');\n\nlog.debug('transition', { from: 'idle', to: 'loading', event: 'FETCH' });\nlog.info('saved', { id: 42 });\nlog.warn('rate limited');\nlog.error('persist failed', { code: 'EPERSIST' });\n```\n\n## Public API\n\n```ts\nimport type { LogLevel, Logger, LogData } from '@almadar/logger';\nimport {\n  createLogger,\n  generateCorrelationId,\n  // runtime tuning\n  getLogLevel,\n  setLogLevel,\n  setNamespaceLevel,\n  getNamespaceLevel,\n  getNamespaceLevels,\n  isLogLevelEnabled,\n  getRuntimeNamespaceFilter,\n  setRuntimeNamespaceFilter,\n  // persistence + observation\n  enableLogPersistence,\n  disableLogPersistence,\n  clearLogPersistence,\n  onLogConfigChange,\n} from '@almadar/logger';\n```\n\n- `LogLevel` = `'DEBUG' | 'INFO' | 'WARN' | 'ERROR'`.\n- `LogData` = `LogMeta | (() => LogMeta)`. Pass a thunk to defer payload\n  construction until after the gate decides to fire.\n- `Logger` has `debug`, `info`, `warn`, `error` methods, each taking\n  `(message, data?, correlationId?)`.\n- `generateCorrelationId()` returns `evt-<ts>-<n>` strings for tracing\n  related lines.\n\n## Three-layer gate\n\n1. **Compile-time default** (read once at module load):\n   `NODE_ENV=production` → `MIN_PRIORITY=WARN`. Otherwise DEBUG.\n   `LOG_LEVEL=info|debug|warn|error` overrides in both cases.\n2. **Env namespace filter** (read once):\n   `ALMADAR_DEBUG=\"almadar:runtime:*,almadar:ui:flow-canvas\"`.\n   Supports `*`, `prefix:*`, comma-separated exact matches.\n3. **Runtime namespace override** (re-read each call):\n   `globalThis.__ALMADAR_DEBUG__`. `undefined` = fall back to layer 2,\n   `''` = silence all DEBUG/INFO regardless, `'*'` = enable everywhere.\n\nOnly DEBUG and INFO go through layers 2 and 3 — WARN and ERROR always\nfire if they pass layer 1.\n\n## Lazy thunks\n\nWhen the level filters a call out, the thunk is never evaluated. This\nlets hot paths shed object-construction cost even when callers don't\nmanually guard:\n\n```ts\nlog.debug('emit', () => ({\n  type,\n  payloadKeys: Object.keys(payload),\n  listenerCount: bus.listenerCount(type),\n}));\n```\n\nIn production with `NODE_ENV=production` (level forced to WARN), the\nthunk above costs one comparison and an early return.\n\n## Runtime toggle from a browser console\n\n```js\nglobalThis.__ALMADAR_DEBUG__ = 'almadar:runtime:sm';   // narrow filter\nglobalThis.__ALMADAR_DEBUG__ = '*';                    // verbose\nglobalThis.__ALMADAR_DEBUG__ = '';                     // silence DEBUG/INFO\ndelete globalThis.__ALMADAR_DEBUG__;                   // restore env filter\n```\n\nThe override re-reads on every `Logger` method call, so flips take\neffect immediately without restart or rebuild.\n\n## Level policy (which method to call)\n\nPick the level by **how often the call site fires** and **how much\nwork the payload costs to build**. The contract: production sets\n`LOG_LEVEL=info` (or leaves the default at WARN) and expects that to\nbe cheap. So anything frequent or heavy belongs at DEBUG, gated under\nan explicit operator opt-in.\n\n| Level | Use for | Frequency budget | Examples |\n|---|---|---|---|\n| `error` | Caught exception, contract violated, operation failed unrecoverably. | Any. | persist failed; listener threw; SExpr returned wrong shape. |\n| `warn` | Recoverable issue, fallback fired, drift detected. | Any. | emit with zero listeners; rate-limited retry; cache miss in nominally-hot path. |\n| `info` | One-shot lifecycle event or user-initiated business action. | **O(1) per user action.** Never per render, never per emit, never per transition. | App start; integration init; entity create/update/delete; auth success; route mount. |\n| `debug` | Hot-path diagnostic. Fires per emit, per render, per transition, per binding interpolation, per effect dispatch. | Unlimited. Production filters it out by level; namespace gates further. | EventBus.emit; trait transition; SExpr eval; render-ui dispatch; slot write; binding resolve. |\n\n**The lazy-thunk rule:** if the data argument contains\n`JSON.stringify`, `Object.keys` on something potentially large, an\n`Array.map` over more than a handful of items, or any other O(N) work,\nwrap the data argument in a thunk. This applies even to INFO calls —\nWARN-only production still skips the thunk:\n\n```ts\n// BAD: stringify runs on every event, even when filtered out\nlog.debug('processEvent', { event, payload: JSON.stringify(payload) });\n\n// GOOD: stringify only runs when DEBUG actually fires\nlog.debug('processEvent', () => ({ event, payload: JSON.stringify(payload) }));\n```\n\n**When in doubt, use DEBUG.** Promoting a DEBUG call to INFO later is\ntrivial; demoting an INFO call after it's already shipped means the\nlog volume spike was already on someone's bill.\n\n## Consumer-side tuning\n\nSix knobs, in priority order at every log call:\n\n1. **`setNamespaceLevel(pattern, level)`** — per-namespace priority\n   floor. Use to bring a noisy namespace below the global threshold,\n   or to enable just one namespace at DEBUG while everything else\n   stays at WARN. Pattern accepts exact namespaces or `prefix:*`.\n   ```ts\n   setNamespaceLevel('almadar:runtime:sm', 'DEBUG');   // only this\n   setNamespaceLevel('almadar:ui:flow-canvas', 'WARN'); // quiet a noisy one\n   setNamespaceLevel('almadar:runtime:*', null);        // clear override\n   ```\n\n2. **`setLogLevel(level)`** — global priority floor at runtime. The\n   env-based `LOG_LEVEL` only sets the *initial* value; this lets you\n   flip it from a settings UI or a feature flag without restarting.\n   ```ts\n   setLogLevel('DEBUG'); // app-wide turn on\n   ```\n\n3. **`setRuntimeNamespaceFilter(pattern)`** — the namespace allowlist\n   (DEBUG/INFO only — WARN/ERROR always pass). Same semantics as\n   `globalThis.__ALMADAR_DEBUG__`.\n\n4. **`enableLogPersistence(key?)`** — wires the above three knobs to\n   `localStorage` so dev toggles survive page reloads. Idempotent;\n   browser-only (no-op in Node).\n   ```ts\n   // app/main.tsx — once at entry\n   enableLogPersistence();   // key defaults to 'almadar:logger:prefs'\n   ```\n\n5. **`isLogLevelEnabled(level, namespace)`** — read-only gate check.\n   Use to skip an even-heavier diagnostic when the call site wouldn't\n   fire anyway:\n   ```ts\n   if (isLogLevelEnabled('DEBUG', 'almadar:ui:flow')) {\n     log.debug('expensive', deepProbeOfReactFiberTree());\n   }\n   ```\n\n6. **`onLogConfigChange(fn)`** — observer for any of the above\n   changing. Returns an unsubscribe. Use it to build a debug panel\n   that reflects current state.\n\n### Recommended consumer setup (apps/builder, playground, etc.)\n\n```ts\n// once at app entry — restores stored prefs and persists future flips\nimport { enableLogPersistence, setNamespaceLevel } from '@almadar/logger';\nenableLogPersistence();\n\n// e.g. silence one chatty namespace by default; users can re-enable from devtools\nsetNamespaceLevel('almadar:runtime:sm', 'WARN');\n```\n\n```ts\n// settings UI — flip from a toggle\nimport { setLogLevel } from '@almadar/logger';\nfunction onDebugModeToggle(enabled: boolean) {\n  setLogLevel(enabled ? 'DEBUG' : 'INFO');\n}\n```\n","readmeFilename":"README.md"}