{"id":"@lssm-tech/lib.logger","slug":"lib.logger","name":"@lssm-tech/lib.logger","version":"5.0.4","path":"packages/platform/delivery/logger","manifestPath":"packages/platform/delivery/logger/package.json","manifestBlobSha":"cf68ac8a6a3ae37d89b9765b7a83aab685a3006d","layer":"platform","physicalArea":"delivery","primaryArea":"observability-and-testing","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Comprehensive logging library optimized for Bun with ElysiaJS integration","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["web","server"],"runtimes":["node","browser"],"entrypoints":[".","./context","./context.browser","./context.node","./elysia-plugin","./formatters","./index.browser","./logger","./logger.browser","./logger.feature","./logger.node","./timer","./tracer","./tracer.browser","./tracer.node","./types"],"documentation":[{"title":"Lib Logger documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.logger","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.logger","title":"Lib Logger","description":"Comprehensive logging library optimized for Bun with ElysiaJS integration","status":"active","useCases":["Adopt comprehensive logging library optimized for bun with elysiajs integration"],"aliases":["contractspec","logging","bun","elysia","tracing","performance","lib","logger"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.logger","symbols":[]},{"from":"@lssm-tech/lib.logger/context","symbols":[]},{"from":"@lssm-tech/lib.logger/context.browser","symbols":[]},{"from":"@lssm-tech/lib.logger/context.node","symbols":[]},{"from":"@lssm-tech/lib.logger/elysia-plugin","symbols":[]},{"from":"@lssm-tech/lib.logger/formatters","symbols":[]},{"from":"@lssm-tech/lib.logger/index.browser","symbols":[]},{"from":"@lssm-tech/lib.logger/logger","symbols":[]},{"from":"@lssm-tech/lib.logger/logger.browser","symbols":[]},{"from":"@lssm-tech/lib.logger/logger.feature","symbols":[]},{"from":"@lssm-tech/lib.logger/logger.node","symbols":[]},{"from":"@lssm-tech/lib.logger/timer","symbols":[]}],"constraints":{"platforms":["web","server"],"runtimes":["node","browser"],"avoidWhen":["The @lssm-tech/lib.logger package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/context","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/context.browser","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/context.node","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/elysia-plugin","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/formatters","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/index.browser","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/logger","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/logger.browser","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/logger.feature","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/logger.node","symbols":[]},{"capabilityId":"package.lssm.tech.lib.logger","from":"@lssm-tech/lib.logger/timer","symbols":[]}],"scripts":{"clean":"rm -rf dist","lint":"bun run lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-spec-core":"workspace:^","@lssm-tech/lib.crypto-utils":"workspace:^","zone.js":"^0.16.3"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{"elysia":">=1.0.0"},"optionalDependencies":{},"peerDependenciesMeta":{"elysia":{"optional":true}},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":{"types":"./src/index.ts","browser":"./src/index.browser.ts","default":"./src/index.ts"},"./context":{"types":"./src/context.ts","browser":"./src/context.browser.ts","node":"./src/context.node.ts","default":"./src/context.node.ts"},"./context.browser":"./src/context.browser.ts","./context.node":"./src/context.node.ts","./elysia-plugin":"./src/elysia-plugin.ts","./formatters":"./src/formatters.ts","./index.browser":"./src/index.browser.ts","./logger":{"types":"./src/logger.ts","browser":"./src/logger.browser.ts","node":"./src/logger.node.ts","default":"./src/logger.node.ts"},"./logger.browser":"./src/logger.browser.ts","./logger.feature":"./src/logger.feature.ts","./logger.node":"./src/logger.node.ts","./timer":"./src/timer.ts","./tracer":{"types":"./src/tracer.ts","browser":"./src/tracer.browser.ts","node":"./src/tracer.node.ts","default":"./src/tracer.node.ts"},"./tracer.browser":"./src/tracer.browser.ts","./tracer.node":"./src/tracer.node.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","bun":"./dist/context.node.js","node":"./dist/node/context.node.js","default":"./dist/context.node.js"},"./context.browser":{"types":"./dist/context.browser.d.ts","bun":"./dist/context.browser.js","default":"./dist/context.browser.js"},"./context.node":{"types":"./dist/context.node.d.ts","bun":"./dist/context.node.js","node":"./dist/node/context.node.js","default":"./dist/context.node.js"},"./elysia-plugin":{"types":"./dist/elysia-plugin.d.ts","bun":"./dist/elysia-plugin.js","node":"./dist/node/elysia-plugin.js","default":"./dist/elysia-plugin.js"},"./formatters":{"types":"./dist/formatters.d.ts","bun":"./dist/formatters.js","node":"./dist/node/formatters.js","default":"./dist/formatters.js"},"./index.browser":{"types":"./dist/index.browser.d.ts","bun":"./dist/index.browser.js","default":"./dist/index.browser.js"},"./logger":{"types":"./dist/logger.d.ts","bun":"./dist/logger.node.js","node":"./dist/node/logger.node.js","default":"./dist/logger.node.js"},"./logger.browser":{"types":"./dist/logger.browser.d.ts","bun":"./dist/logger.browser.js","default":"./dist/logger.browser.js"},"./logger.feature":{"types":"./dist/logger.feature.d.ts","bun":"./dist/logger.feature.js","node":"./dist/node/logger.feature.js","default":"./dist/logger.feature.js"},"./logger.node":{"types":"./dist/logger.node.d.ts","bun":"./dist/logger.node.js","node":"./dist/node/logger.node.js","default":"./dist/logger.node.js"},"./timer":{"types":"./dist/timer.d.ts","bun":"./dist/timer.js","node":"./dist/node/timer.js","default":"./dist/timer.js"},"./tracer":{"types":"./dist/tracer.d.ts","bun":"./dist/tracer.node.js","node":"./dist/node/tracer.node.js","default":"./dist/tracer.node.js"},"./tracer.browser":{"types":"./dist/tracer.browser.d.ts","bun":"./dist/tracer.browser.js","default":"./dist/tracer.browser.js"},"./tracer.node":{"types":"./dist/tracer.node.d.ts","bun":"./dist/tracer.node.js","node":"./dist/node/tracer.node.js","default":"./dist/tracer.node.js"},"./types":{"types":"./dist/types.d.ts","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.logger","target":{"types":"./src/index.ts","browser":"./src/index.browser.ts","default":"./src/index.ts"},"targets":[{"conditions":["types"],"target":"./src/index.ts","sourcePath":"packages/platform/delivery/logger/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/index.ts","sourceStatus":"verified source file"},{"conditions":["browser"],"target":"./src/index.browser.ts","sourcePath":"packages/platform/delivery/logger/src/index.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/index.browser.ts","sourceStatus":"verified source file"},{"conditions":["default"],"target":"./src/index.ts","sourcePath":"packages/platform/delivery/logger/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./context","importPath":"@lssm-tech/lib.logger/context","target":{"types":"./src/context.ts","browser":"./src/context.browser.ts","node":"./src/context.node.ts","default":"./src/context.node.ts"},"targets":[{"conditions":["types"],"target":"./src/context.ts","sourcePath":"packages/platform/delivery/logger/src/context.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.ts","sourceStatus":"verified source file"},{"conditions":["browser"],"target":"./src/context.browser.ts","sourcePath":"packages/platform/delivery/logger/src/context.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.browser.ts","sourceStatus":"verified source file"},{"conditions":["node"],"target":"./src/context.node.ts","sourcePath":"packages/platform/delivery/logger/src/context.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.node.ts","sourceStatus":"verified source file"},{"conditions":["default"],"target":"./src/context.node.ts","sourcePath":"packages/platform/delivery/logger/src/context.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./context.browser","importPath":"@lssm-tech/lib.logger/context.browser","target":"./src/context.browser.ts","targets":[{"conditions":[],"target":"./src/context.browser.ts","sourcePath":"packages/platform/delivery/logger/src/context.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.browser.ts","sourceStatus":"verified source file"}]},{"subpath":"./context.node","importPath":"@lssm-tech/lib.logger/context.node","target":"./src/context.node.ts","targets":[{"conditions":[],"target":"./src/context.node.ts","sourcePath":"packages/platform/delivery/logger/src/context.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/context.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./elysia-plugin","importPath":"@lssm-tech/lib.logger/elysia-plugin","target":"./src/elysia-plugin.ts","targets":[{"conditions":[],"target":"./src/elysia-plugin.ts","sourcePath":"packages/platform/delivery/logger/src/elysia-plugin.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/elysia-plugin.ts","sourceStatus":"verified source file"}]},{"subpath":"./formatters","importPath":"@lssm-tech/lib.logger/formatters","target":"./src/formatters.ts","targets":[{"conditions":[],"target":"./src/formatters.ts","sourcePath":"packages/platform/delivery/logger/src/formatters.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/formatters.ts","sourceStatus":"verified source file"}]},{"subpath":"./index.browser","importPath":"@lssm-tech/lib.logger/index.browser","target":"./src/index.browser.ts","targets":[{"conditions":[],"target":"./src/index.browser.ts","sourcePath":"packages/platform/delivery/logger/src/index.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/index.browser.ts","sourceStatus":"verified source file"}]},{"subpath":"./logger","importPath":"@lssm-tech/lib.logger/logger","target":{"types":"./src/logger.ts","browser":"./src/logger.browser.ts","node":"./src/logger.node.ts","default":"./src/logger.node.ts"},"targets":[{"conditions":["types"],"target":"./src/logger.ts","sourcePath":"packages/platform/delivery/logger/src/logger.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.ts","sourceStatus":"verified source file"},{"conditions":["browser"],"target":"./src/logger.browser.ts","sourcePath":"packages/platform/delivery/logger/src/logger.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.browser.ts","sourceStatus":"verified source file"},{"conditions":["node"],"target":"./src/logger.node.ts","sourcePath":"packages/platform/delivery/logger/src/logger.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.node.ts","sourceStatus":"verified source file"},{"conditions":["default"],"target":"./src/logger.node.ts","sourcePath":"packages/platform/delivery/logger/src/logger.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./logger.browser","importPath":"@lssm-tech/lib.logger/logger.browser","target":"./src/logger.browser.ts","targets":[{"conditions":[],"target":"./src/logger.browser.ts","sourcePath":"packages/platform/delivery/logger/src/logger.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.browser.ts","sourceStatus":"verified source file"}]},{"subpath":"./logger.feature","importPath":"@lssm-tech/lib.logger/logger.feature","target":"./src/logger.feature.ts","targets":[{"conditions":[],"target":"./src/logger.feature.ts","sourcePath":"packages/platform/delivery/logger/src/logger.feature.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.feature.ts","sourceStatus":"verified source file"}]},{"subpath":"./logger.node","importPath":"@lssm-tech/lib.logger/logger.node","target":"./src/logger.node.ts","targets":[{"conditions":[],"target":"./src/logger.node.ts","sourcePath":"packages/platform/delivery/logger/src/logger.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/logger.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./timer","importPath":"@lssm-tech/lib.logger/timer","target":"./src/timer.ts","targets":[{"conditions":[],"target":"./src/timer.ts","sourcePath":"packages/platform/delivery/logger/src/timer.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/timer.ts","sourceStatus":"verified source file"}]},{"subpath":"./tracer","importPath":"@lssm-tech/lib.logger/tracer","target":{"types":"./src/tracer.ts","browser":"./src/tracer.browser.ts","node":"./src/tracer.node.ts","default":"./src/tracer.node.ts"},"targets":[{"conditions":["types"],"target":"./src/tracer.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.ts","sourceStatus":"verified source file"},{"conditions":["browser"],"target":"./src/tracer.browser.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.browser.ts","sourceStatus":"verified source file"},{"conditions":["node"],"target":"./src/tracer.node.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.node.ts","sourceStatus":"verified source file"},{"conditions":["default"],"target":"./src/tracer.node.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./tracer.browser","importPath":"@lssm-tech/lib.logger/tracer.browser","target":"./src/tracer.browser.ts","targets":[{"conditions":[],"target":"./src/tracer.browser.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.browser.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.browser.ts","sourceStatus":"verified source file"}]},{"subpath":"./tracer.node","importPath":"@lssm-tech/lib.logger/tracer.node","target":"./src/tracer.node.ts","targets":[{"conditions":[],"target":"./src/tracer.node.ts","sourcePath":"packages/platform/delivery/logger/src/tracer.node.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/tracer.node.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/lib.logger/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/platform/delivery/logger/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":16,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Logger documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.logger","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.logger.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.logger\n\nWebsite: https://contractspec.io\n\n**Comprehensive logging library optimized for Bun with ElysiaJS integration.**\n\n## What It Provides\n\n- **Layer**: lib.\n- **Consumers**: email, jobs, contracts-runtime-server-mcp, bundles, apps.\n- Related ContractSpec packages include `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n- Related ContractSpec packages include `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n\n## Installation\n\n`npm install @lssm-tech/lib.logger`\n\nor\n\n`bun add @lssm-tech/lib.logger`\n\n## Usage\n\nImport the root entrypoint from `@lssm-tech/lib.logger`, or choose a documented subpath when you only need one part of the package surface.\n\n## Architecture\n\n- `src/context.browser.ts` is part of the package's public or composition surface.\n- `src/context.node.ts` is part of the package's public or composition surface.\n- `src/context.ts` is part of the package's public or composition surface.\n- `src/elysia-plugin.ts` is part of the package's public or composition surface.\n- `src/formatters.ts` is part of the package's public or composition surface.\n- `src/index.browser.ts` is part of the package's public or composition surface.\n- `src/index.ts` is the root public barrel and package entrypoint.\n- `src/types.ts` is shared public type definitions.\n\n## Public Entry Points\n\n- Export `.` resolves through `types`, `browser`, `default`.\n- Export `./context` resolves through `types`, `browser`, `node`, ...\n- Export `./context.browser` resolves through `./src/context.browser.ts`.\n- Export `./context.node` resolves through `./src/context.node.ts`.\n- Export `./elysia-plugin` resolves through `./src/elysia-plugin.ts`.\n- Export `./formatters` resolves through `./src/formatters.ts`.\n- Export `./index.browser` resolves through `./src/index.browser.ts`.\n- Export `./logger` resolves through `types`, `browser`, `node`, ...\n- Export `./logger.browser` resolves through `./src/logger.browser.ts`.\n- Export `./logger.node` resolves through `./src/logger.node.ts`.\n- The package publishes 15 total export subpaths; keep docs aligned with `package.json`.\n\n## Local Commands\n\n- `bun run dev` — contractspec-bun-build dev\n- `bun run build` — contractspec-bun-build build\n- `bun run lint` — bun run lint:fix\n- `bun run lint:check` — biome check .\n- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .\n- `bun run typecheck` — tsgo --noEmit\n- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose\n- `bun run publish:pkg:canary` — bun publish:pkg --tag canary\n- `bun run clean` — rm -rf dist\n- `bun run build:bundle` — contractspec-bun-build transpile\n- `bun run build:types` — contractspec-bun-build types\n- `bun run prebuild` — contractspec-bun-build prebuild\n\n## Recent Updates\n\n- Replace eslint+prettier by biomejs to optimize speed.\n\n## Notes\n\n- Logger interface is used across the entire stack — breaking changes affect everything.\n- Structured log format must stay JSON-compatible for log aggregation pipelines.\n- Elysia plugin must not break the middleware chain; preserve `onRequest`/`onAfterHandle` order.\n","sourcePath":"packages/platform/delivery/logger/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/delivery/logger/README.md","blobSha":"5e89e02c5164d276e6167e76ca0a80b4f7b10de1","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"observability-and-testing","areaTitle":"Observability, testing and qualification","displayName":"lib.logger","runtimes":["node","browser"],"platforms":["web","server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.logger/","contextUrl":"/docs/packages/lib.logger.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}