{"_id":"@avandar/logger","_rev":"3-dd945e07451afd89cabb473117bd95ea","name":"@avandar/logger","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@avandar/logger","version":"0.1.0","license":"MIT","_id":"@avandar/logger@0.1.0","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"homepage":"https://github.com/AvandarLabs/avandar/tree/main/packages/shared/logger#readme","bugs":{"url":"https://github.com/AvandarLabs/avandar/issues"},"dist":{"shasum":"5f9d0fbf6c1809cabf85ed7042b2086985e6c161","tarball":"https://registry.npmjs.org/@avandar/logger/-/logger-0.1.0.tgz","fileCount":6,"integrity":"sha512-csAZi14hDFShPo0fPbubK8bzi9Mo5FCqWhlgzjVmwJRui4FnPtja++6+njjKsGFtvG8sCP7ilfVGSy/h0oQFEw==","signatures":[{"sig":"MEUCIQCimQ74vbf8HVQ3XtSa5k8v7C4dTLvtly6jeP5wCpUSfQIgBupCukPdo08shxxt/zV0GYvaBCRE51a75D7lI78dhrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avandar%2flogger@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25547},"type":"module","_from":"file:avandar-logger-0.1.0.tgz","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","test:watch":"vitest","type-check":"tsc --noEmit"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"_resolved":"/tmp/fa97c83c0bb5d7da0081b0ad2c9a4531/avandar-logger-0.1.0.tgz","_integrity":"sha512-csAZi14hDFShPo0fPbubK8bzi9Mo5FCqWhlgzjVmwJRui4FnPtja++6+njjKsGFtvG8sCP7ilfVGSy/h0oQFEw==","repository":{"url":"git+https://github.com/AvandarLabs/avandar.git","type":"git","directory":"packages/shared/logger"},"_npmVersion":"11.12.1","description":"Avandar logger","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@avandar/modules":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"~5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/logger_0.1.0_1786411752140_0.044867573430064756","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@avandar/logger","version":"0.1.1","license":"MIT","_id":"@avandar/logger@0.1.1","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"homepage":"https://github.com/AvandarLabs/avandar/tree/main/packages/shared/logger#readme","bugs":{"url":"https://github.com/AvandarLabs/avandar/issues"},"dist":{"shasum":"aacd6f1fe61e426f14482c62d50c9264da216750","tarball":"https://registry.npmjs.org/@avandar/logger/-/logger-0.1.1.tgz","fileCount":6,"integrity":"sha512-DXKi3E0bpG7KDfjgKnGESbmwne8Rwd0YgdNWylDr4QRN951hdifWEQ86Tma4HaBXLRFZJR1YwrjO4PisBT5G4w==","signatures":[{"sig":"MEUCIANy/PoqLElMNnrnE4c797+IfdAmIJChVGuIOJSOlSwOAiEAiH7ScTZuyo9Vu07sqUaEHVuW83oVaOPKheOsgsA3/Ek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avandar%2flogger@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25547},"type":"module","_from":"file:avandar-logger-0.1.1.tgz","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","test:watch":"vitest","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:176b75f5-c173-4478-a043-b4f4034a7e68"}},"_resolved":"/tmp/f566a4fb74446ccdc01e2d52df697dab/avandar-logger-0.1.1.tgz","_integrity":"sha512-DXKi3E0bpG7KDfjgKnGESbmwne8Rwd0YgdNWylDr4QRN951hdifWEQ86Tma4HaBXLRFZJR1YwrjO4PisBT5G4w==","repository":{"url":"git+https://github.com/AvandarLabs/avandar.git","type":"git","directory":"packages/shared/logger"},"_npmVersion":"11.12.1","description":"Avandar logger","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@avandar/modules":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"~5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/logger_0.1.1_1786447319238_0.9495025283781444","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@avandar/logger","version":"0.1.2","description":"Avandar logger","license":"MIT","repository":{"type":"git","url":"git+https://github.com/AvandarLabs/avandar.git","directory":"packages/shared/logger"},"homepage":"https://github.com/AvandarLabs/avandar/tree/main/packages/shared/logger#readme","bugs":{"url":"https://github.com/AvandarLabs/avandar/issues"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"sideEffects":false,"dependencies":{"@avandar/modules":"0.1.2"},"devDependencies":{"tsup":"^8.5.0","typescript":"~5.9.3","vitest":"^3.2.4"},"engines":{"node":">=22.0.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","type-check":"tsc --noEmit"},"_id":"@avandar/logger@0.1.2","_integrity":"sha512-UN0FmoTqXViFM71x4nZCYV17YDCDpzhTfWM4ch4+TdibXuUBtoUr6PCrZ+U74Iuyv5eVJPxWTpFUrJwleIbHPQ==","_resolved":"/tmp/30148b1b0abf7deb4c382f947a22de77/avandar-logger-0.1.2.tgz","_from":"file:avandar-logger-0.1.2.tgz","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-UN0FmoTqXViFM71x4nZCYV17YDCDpzhTfWM4ch4+TdibXuUBtoUr6PCrZ+U74Iuyv5eVJPxWTpFUrJwleIbHPQ==","shasum":"c32325a5d152070b72551cad3ee16b60ecd56229","tarball":"https://registry.npmjs.org/@avandar/logger/-/logger-0.1.2.tgz","fileCount":6,"unpackedSize":25547,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avandar%2flogger@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDAt9QQZXuVulDKGmVFskxxim/9WOIRuwoMuRK8CHh91AiEA4znFKAJs2/IHV0jI3byO4cjBeCDHkiyPAFxzzeghfbo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:176b75f5-c173-4478-a043-b4f4034a7e68"}},"directories":{},"maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/logger_0.1.2_1786500348848_0.623062790583554"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-11T01:29:11.948Z","modified":"2026-08-12T02:05:49.379Z","0.1.0":"2026-08-11T01:29:12.280Z","0.1.1":"2026-08-11T11:21:59.417Z","0.1.2":"2026-08-12T02:05:49.002Z"},"bugs":{"url":"https://github.com/AvandarLabs/avandar/issues"},"license":"MIT","homepage":"https://github.com/AvandarLabs/avandar/tree/main/packages/shared/logger#readme","repository":{"type":"git","url":"git+https://github.com/AvandarLabs/avandar.git","directory":"packages/shared/logger"},"description":"Avandar logger","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"readme":"# @avandar/logger\n\nAvandar's logging library. Provides a styled **web browser** logger with\ncaller tracing, immutable configuration, and a `withLogger` mixin for\nattaching scoped loggers to `@avandar/modules` modules. A Node.js logger\nwill be added in the future.\n\nESM only. Requires Node 22+.\n\n## Install\n\n```sh\npnpm add @avandar/logger\n```\n\nNo peer dependencies.\n\n## Usage\n\n```ts\nimport { createWebLogger, withLogger } from \"@avandar/logger\";\n\n// Default logger\nconst Logger = createWebLogger();\nLogger.log(\"hello\");\nLogger.warn(\"something is off\");\nLogger.error(new Error(\"boom\"));\n\n// Named logger\nconst log = createWebLogger({ loggerName: \"MyModule\" });\nlog.log(\"scoped message\");\n\n// Chain immutable configuration\nconst child = Logger.appendName(\"Auth\").setCallerName(\"login\").setEnabled(true);\n```\n\n## API\n\n### `createWebLogger(config?)`\n\nCreates a new browser logger instance.\n\n| Option               | Type      | Default | Description                                      |\n| -------------------- | --------- | ------- | ------------------------------------------------ |\n| `loggerName`         | `string`  | —       | Prefix shown in styled log output                |\n| `callerName`         | `string`  | —       | Overrides auto-detected caller from stack trace  |\n| `enabled`            | `boolean` | `true`  | Whether logging is active                        |\n| `suppressConsoleLog` | `boolean` | `false` | When true, `log()` calls are suppressed          |\n\n### `withLogger(baseModule, moduleBuilder)`\n\nModule mixin that attaches a scoped, disabled-by-default logger to a\n`@avandar/modules` module. Calling `MyModule.withLogger()` returns the same\nmodule with logging enabled. Pass a `callerNameOverride` string to fix the\ncaller name for the returned module's log output.\n\n```ts\nimport { createModule } from \"@avandar/modules\";\nimport { withLogger } from \"@avandar/logger\";\n\nconst MyModule = withLogger(\n  createModule(\"MyModule\"),\n  (logger) => ({\n    doWork() {\n      logger.log(\"working\");\n    },\n  }),\n);\n\nMyModule.doWork();              // silent\nMyModule.withLogger().doWork(); // logs\n```\n\n## Types\n\n### `ILogger`\n\nThe shape returned by `createWebLogger`. All mutators are immutable — they\nreturn a new logger instance.\n\n| Method                  | Description                                                         |\n| ----------------------- | ------------------------------------------------------------------- |\n| `log(...args)`          | Styled log output (suppressed if `enabled` is false)                |\n| `warn(...args)`         | Styled warning                                                      |\n| `error(error, extra?)`  | Forwards to `console.error`                                         |\n| `isEnabled()`           | Returns current enabled state                                       |\n| `setEnabled(enabled)`   | Returns a new logger with the given enabled state                   |\n| `appendName(name)`      | Returns a new logger with `name` appended (`parent:child` format)   |\n| `setCallerName(name)`   | Returns a new logger with a fixed caller name (skips stack lookup)  |\n\n### `WithLogger<M>`\n\nWraps a module type `M` with a `withLogger(callerNameOverride?)` method that\nreturns a new module instance with its scoped logger enabled.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}