{"_id":"@bajzik/scoped-console","_rev":"9-9cef9ef3366a66f60318815dd148391d","name":"@bajzik/scoped-console","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"@bajzik/scoped-console","version":"0.1.0","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.1.0","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"homepage":"https://github.com/bajzik/scoped-console#readme","bugs":{"url":"https://github.com/bajzik/scoped-console/issues"},"dist":{"shasum":"6af439ad104ffec755b56b3a511f8f2d96cd5b6f","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.1.0.tgz","fileCount":10,"integrity":"sha512-iMH0TufukNBocvzzW+67YjvPHwMPaiSXeRoO4CNRRGY3KSD2Ajhq1nvWl+MEPxZQUzW8FA3pH+hcZ1l2c/P3LQ==","signatures":[{"sig":"MEYCIQDVA/fSzcw8ZdLTixl13gOW/7YGJH5+lEbVah16+sPFvwIhAKRBZkDxx7nAgY63iqufvms+9fWJtzIiTbSKzQ59XrqS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124033},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"4b466df1baf0dc590928a608cd39f9a0ab252666","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"repository":{"url":"git+https://github.com/bajzik/scoped-console.git","type":"git"},"_npmVersion":"11.9.0","description":"Framework-agnostic scoped console logger","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.1.0_1773789714170_0.36265664728377733","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bajzik/scoped-console","version":"0.1.1","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.1.1","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"homepage":"https://github.com/bajzik/scoped-console#readme","bugs":{"url":"https://github.com/bajzik/scoped-console/issues"},"dist":{"shasum":"d5d17c3a6b4b8799a500551a4f173c222c329c61","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.1.1.tgz","fileCount":10,"integrity":"sha512-3D8/eR1SJq4WCptfP/NeFJBN3gaSn7y5TFxjq9h32QDXvvEVUZ7HThEkhdaYQ85MNDJNs7F/LyzcRdket1mlmA==","signatures":[{"sig":"MEYCIQCRxEfo1nOv5FO2ObjM4x11DZfDoDg50XPjznfc3XAp0gIhAPaxgqv1LU9CbswGhiGZWLeCCc+9oaED3XAYFZh5Uj2L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124042},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"030eb053669151f90d526c9cc4ac5ff1919ce78b","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"repository":{"url":"git+https://github.com/bajzik/scoped-console.git","type":"git"},"_npmVersion":"11.9.0","description":"Framework-agnostic scoped console logger","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.1.1_1773817611338_0.0679453337581124","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bajzik/scoped-console","version":"0.2.0","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.2.0","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"homepage":"https://github.com/bajzik/scoped-console#readme","bugs":{"url":"https://github.com/bajzik/scoped-console/issues"},"dist":{"shasum":"dc3191b6cf406e104041a03350d44f1d995bbde0","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.2.0.tgz","fileCount":10,"integrity":"sha512-heTrCm3W/m9sngSieMLaJbqZaQ7l+pRYzMxprFOhN/CuJUZFg2hpryPamn/nlhhVZ0L+Q4ZwaCg9AOZGPte3oQ==","signatures":[{"sig":"MEUCIHRLi0KcZRCcfEVCID+6SsAB6/v9isJDwKOMSaB6gNONAiEAlJZVSAVwhUDTaCwFp9EyM+EAKGfNwUVz4fEcsG1hof8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129373},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"9107fd0597b358b8d3cdf334893bac9760353824","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"repository":{"url":"git+https://github.com/bajzik/scoped-console.git","type":"git"},"_npmVersion":"11.9.0","description":"Framework-agnostic scoped console logger","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.2.0_1773819544882_0.9901543157148691","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bajzik/scoped-console","version":"0.3.0","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.3.0","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"dist":{"shasum":"8ea922cc21ceed66fb37fc0a1e5bee4d22337414","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.3.0.tgz","fileCount":17,"integrity":"sha512-7OGkn6qIgOyg1C+4aGi9HwhZTpdGExBfGZK4ftfDEWQxXVf/S5fW1kvK67JV8+ncnd3bwofPoj5XjRNmpddm4A==","signatures":[{"sig":"MEUCIAfMvutSTmcTBl3REi8vDhEsqOZUUJRHrIeX7N73mQVUAiEAhZtPfDPKVqEoJgajgndd0BJgWH/yTaYG76R8j6zVKxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92874},"main":"./dist/development/index.cjs","type":"module","types":"./dist/development/index.d.ts","module":"./dist/development/index.mjs","exports":{".":{"types":"./dist/development/index.d.ts","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","production":"./dist/production/index.mjs","development":"./dist/development/index.mjs"}},"gitHead":"078d9f9c7100480347ab08ff7c403c15087e4fb0","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"_npmVersion":"11.9.0","description":"Framework-agnostic runtime scoped console with in-page panel","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.3.0_1773930881981_0.20962639352915202","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bajzik/scoped-console","version":"0.4.0","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.4.0","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"dist":{"shasum":"e52af650535197c45342c1b7fecbe08ece89bd2c","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.4.0.tgz","fileCount":17,"integrity":"sha512-8Y2NEFJf6S2YM44qwurvDVVqCp7g5B5/Mp6cwQ5cU0Tgr8nUXS858dXsX5+vCl/QO405o7Epof+Rs9QTKrQPuw==","signatures":[{"sig":"MEUCIQCDicAGxDUJ4l2cgHzyqMbBiLrlA99nKknjKxdlnslzEgIgOASa/BugtzwtCuV/3o04FffYQTkA/GocXVAvB43PDtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116150},"main":"./dist/development/index.cjs","type":"module","types":"./dist/development/index.d.ts","module":"./dist/development/index.mjs","exports":{".":{"types":"./dist/development/index.d.ts","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","production":"./dist/production/index.mjs","development":"./dist/development/index.mjs"}},"gitHead":"07cc70579af2997b16131a30b6b7f0e0f6856710","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"_npmVersion":"11.9.0","description":"Framework-agnostic runtime scoped console with in-page panel","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.4.0_1773933557134_0.4796110234314217","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bajzik/scoped-console","version":"0.5.0","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.5.0","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"dist":{"shasum":"c0057d63f5bfe62cdea31bdb112a225e43dd64a6","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.5.0.tgz","fileCount":16,"integrity":"sha512-OaVYXGF0B2PYWVWbJYC/y6dI563/zkkxOaEkU4UHY7TZkeCPBjyK4Y+fHInYTFTimkz85WlZyN8qsZh6U5YexQ==","signatures":[{"sig":"MEYCIQCVdZBpkBddwbVh9JrzuBSu6cvCl96ADi+0rj9f4sl/eQIhAKkgiiApbtCMGM93V4rQPlSAuKay6+ElctPwh2izWGxm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164584},"main":"./dist/development/index.cjs","type":"module","types":"./dist/development/index.d.ts","module":"./dist/development/index.mjs","exports":{".":{"types":"./dist/development/index.d.ts","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","production":"./dist/production/index.mjs","development":"./dist/development/index.mjs"}},"gitHead":"393e52c19334639ac2779ae257f2c5486ad601bd","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"_npmVersion":"11.9.0","description":"Framework-agnostic runtime scoped console with in-page panel","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.5.0_1774385474591_0.7950175366028123","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bajzik/scoped-console","version":"0.5.1","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.5.1","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"dist":{"shasum":"4067fdc79d965dafbeb576413388851368dd0731","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.5.1.tgz","fileCount":16,"integrity":"sha512-QWQ7G5+gK90q6tKc/kA7hC6k0ggrAwKycDd5rZcwn+nFOviCya930cnPTA7U3fw/NfSQVzrKU3mMnjU4tns3Jw==","signatures":[{"sig":"MEUCIQDyLF+UmSBZ9s2jeJ+7moJKGKcMeXek7DEgsaCTOjVOFAIgVWQgTUTkfQcXBZB75bw8idnFtyjuYaUUUXkktIRUBJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166040},"main":"./dist/development/index.cjs","type":"module","types":"./dist/development/index.d.ts","module":"./dist/development/index.mjs","exports":{".":{"types":"./dist/development/index.d.ts","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","production":"./dist/production/index.mjs","development":"./dist/development/index.mjs"}},"gitHead":"f95c7fa392579038d5f9fed9f78828a4fd29ea98","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"_npmVersion":"11.9.0","description":"Framework-agnostic runtime scoped console with in-page panel","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.5.1_1774386023270_0.18085176768486977","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@bajzik/scoped-console","version":"0.5.2","author":{"name":"Jakub Bajzath"},"license":"MIT","_id":"@bajzik/scoped-console@0.5.2","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"dist":{"shasum":"685d05db80683fe57eabfdd074e1f8be41efbb0f","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-0.5.2.tgz","fileCount":16,"integrity":"sha512-d3vRYyn4S5aqK4ceQGw4+8m/1ZZouMXKMRJzkvJKjZcTy7c4okw323T+hFm+wgl+qJycI72lK3qwna0JwBjcZg==","signatures":[{"sig":"MEQCIGHm+88fkNOYbly46EXYbRYK6KM78ZyQc4DbBq7XENCBAiBHB0Hkekbq+v3Ef/22qe9MufUCXXu9GSu8a4fKcWsvnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166060},"main":"./dist/development/index.cjs","type":"module","types":"./dist/development/index.d.ts","module":"./dist/development/index.mjs","exports":{".":{"types":"./dist/development/index.d.ts","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","production":"./dist/production/index.mjs","development":"./dist/development/index.mjs"}},"gitHead":"7301accde45c95935c4e59d30c4c8d72ed260148","scripts":{"dev":"tsdown --watch","lint":"tsc --noEmit","test":"vitest","build":"tsdown","test:run":"vitest run","prepublishOnly":"pnpm run build && pnpm run test:run"},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"_npmVersion":"11.9.0","description":"Framework-agnostic runtime scoped console with in-page panel","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","vitest":"^4.1.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/scoped-console_0.5.2_1774386884873_0.32811775329554504","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bajzik/scoped-console","version":"1.0.0","description":"Framework-agnostic runtime scoped console with in-page panel","type":"module","license":"MIT","author":{"name":"Jakub Bajzath"},"repository":{"type":"git","url":"git+https://github.com/bajzik/scoped-console.git"},"bugs":{"url":"https://github.com/bajzik/scoped-console/issues"},"homepage":"https://github.com/bajzik/scoped-console#readme","keywords":["console","logger","logging","scoped","debug","devtools","developer-tools"],"exports":{".":{"development":"./dist/development/index.mjs","production":"./dist/production/index.mjs","import":"./dist/development/index.mjs","require":"./dist/development/index.cjs","types":"./dist/development/index.d.ts"}},"main":"./dist/development/index.cjs","module":"./dist/development/index.mjs","types":"./dist/development/index.d.ts","devDependencies":{"tsdown":"^0.21.4","typescript":"^5.9.3","vitest":"^4.1.0"},"scripts":{"build":"tsdown","dev":"tsdown --watch","test":"vitest","test:run":"vitest run","lint":"tsc --noEmit"},"_id":"@bajzik/scoped-console@1.0.0","_integrity":"sha512-u7SmGU7zaqd+yQ7CvkX20eatxUyKDb/pu8+O1+C8hgygVm1vcIQCbSB0kGeNJPBVYKespLnQ3n1HjpgJKkXkkg==","_resolved":"/private/var/folders/3b/0w9yybr17lqfyyw83254wdfh0000gn/T/b7a0dd52b0fded0d0c4ea47c6b6914a3/bajzik-scoped-console-1.0.0.tgz","_from":"file:bajzik-scoped-console-1.0.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-u7SmGU7zaqd+yQ7CvkX20eatxUyKDb/pu8+O1+C8hgygVm1vcIQCbSB0kGeNJPBVYKespLnQ3n1HjpgJKkXkkg==","shasum":"67e3b8d2e60f23e47ffa276e3ad91fc7d5fe9f70","tarball":"https://registry.npmjs.org/@bajzik/scoped-console/-/scoped-console-1.0.0.tgz","fileCount":16,"unpackedSize":168325,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDsZHxUM3KlT8OrrTdXDKWuTNL8uYVa4Hai9Baxb8dhDwIgDHd9zvlbeVnQJ1dyoGk7txBcMT88UjyhZLCXOZ92hjI="}]},"_npmUser":{"name":"bajzik","email":"bajzath.jakub@gmail.com"},"directories":{},"maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scoped-console_1.0.0_1774425438651_0.944916077783319"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T23:21:54.022Z","modified":"2026-03-25T07:57:19.010Z","0.1.0":"2026-03-17T23:21:54.307Z","0.1.1":"2026-03-18T07:06:51.503Z","0.2.0":"2026-03-18T07:39:05.030Z","0.3.0":"2026-03-19T14:34:42.146Z","0.4.0":"2026-03-19T15:19:17.299Z","0.5.0":"2026-03-24T20:51:14.747Z","0.5.1":"2026-03-24T21:00:23.425Z","0.5.2":"2026-03-24T21:14:45.030Z","1.0.0":"2026-03-25T07:57:18.879Z"},"author":{"name":"Jakub Bajzath"},"license":"MIT","description":"Framework-agnostic runtime scoped console with in-page panel","maintainers":[{"name":"bajzik","email":"bajzath.jakub@gmail.com"}],"readme":"# @bajzik/scoped-console\n\nTag your logs with scopes, filter them in real time, and watch them stream into a sleek in-page panel — without touching DevTools.\n\nNo dependencies. Framework agnostic. Zero cost in production.\n\n![demo](https://hello.bajzath.cloud/images/scopedConsoleDemo052.gif)\n\n---\n\n## Installation\n\n```bash\nnpm install @bajzik/scoped-console\n# or\npnpm add @bajzik/scoped-console\n```\n\n---\n\n## Usage\n\nInit once in your entry point:\n\n```ts\nimport { initConsole } from '@bajzik/scoped-console'\ninitConsole()\n```\n\nThen create a logger per file:\n\n```ts\nimport { useLogger } from '@bajzik/scoped-console'\n\nconst logger = useLogger('UserProfile')\n\nlogger.log('mounted')\nlogger.info('fetching user', id)\nlogger.warn('slow response')\nlogger.error('request failed', err)\nlogger.debug('raw payload', data)\n```\n\nLogs appear in both DevTools and the in-page panel, tagged with the scope name.\n\n---\n\n## Vue 2\n\n```js\n// main.js\nimport { initConsole } from '@bajzik/scoped-console'\ninitConsole()\n\nnew Vue({ render: h => h(App) }).$mount('#app')\n```\n\n```js\n// OrderView.vue\nimport { useLogger } from '@bajzik/scoped-console'\nconst logger = useLogger('OrderView')\n\nexport default {\n  mounted() { logger.log('mounted') },\n  methods: {\n    async fetchOrder(id) {\n      logger.info('fetching', id)\n      try {\n        const order = await this.$http.get(`/orders/${id}`)\n        logger.log('loaded', order)\n      } catch (err) {\n        logger.error('failed', err)\n      }\n    }\n  }\n}\n```\n\n---\n\n## Vue 3\n\n```ts\n// main.ts\nimport { initConsole } from '@bajzik/scoped-console'\ninitConsole()\ncreateApp(App).mount('#app')\n```\n\n```ts\n// UserProfile.vue\nimport { useLogger } from '@bajzik/scoped-console'\nconst logger = useLogger('UserProfile')\n\nasync function fetchUser(id: string) {\n  logger.info('fetching', id)\n  try {\n    await userStore.fetch(id)\n    logger.log('done')\n  } catch (err) {\n    logger.error('failed', err)\n  }\n}\n```\n\n---\n\n## The panel\n\nThe panel renders at the bottom of the page, full width. It has three sections:\n\n- **Scopes** — every file that called `useLogger` appears as a tab. Click to toggle.\n- **Levels** — filter by `log`, `info`, `warn`, `error`, `debug`.\n- **Output** — scrollable log stream. Text is selectable for copying.\n\nThe collapsed state shows a small tab in the bottom-right corner with badge counts per level. All state persists to `localStorage`.\n\n---\n\n## Production builds\n\nIn production builds the library is automatically replaced with no-ops — `initConsole` and `useLogger` do nothing and add zero bytes to your bundle. This works automatically in Vite, webpack 5, Rollup, and esbuild via package export conditions. No config needed.\n\nFor best results, add the package to `devDependencies`:\n\n```bash\nnpm install --save-dev @bajzik/scoped-console\n```\n\n---\n\n## Scope naming\n\n```ts\nuseLogger('component:UserProfile')\nuseLogger('store:cart')\nuseLogger('service:api')\n```\n\n---\n\n## API\n\n`initConsole(config?)` — initialize. Call before anything else. `config.mount` defaults to `'body'`.\n\n`useLogger(scope)` — returns a scoped logger with `log`, `info`, `warn`, `error`, `debug` methods.\n\n`destroyConsole()` — restore original console and remove the panel.\n\n---\n\n## TypeScript — older moduleResolution\n\nIf your project uses `moduleResolution: node`, add to `tsconfig.json`:\n\n```json\n{\n  \"compilerOptions\": {\n    \"paths\": {\n      \"@bajzik/scoped-console\": [\"node_modules/@bajzik/scoped-console/dist/development/index.d.ts\"]\n    }\n  }\n}\n```\n\n---\n\n## Changelog\n\n### 1.0.0\n\n- **First stable release**\n- Collapsed panel now right-aligned instead of full width\n- Collapsed panel hides resize handle\n- Badge counts now include logs from popped-out scope panels\n- Event isolation — clicks inside console panel no longer trigger host app event listeners\n- Removed duplicate type definitions — consolidated `LogLevel` and `ScopedLogger` types\n- Removed unused `getCallerFile` function from stack parser\n- Removed all code comments for cleaner codebase\n- Added comprehensive test coverage (76 tests)\n- Added npm repository metadata\n\n### 0.5.2\n\n- Improved stack trace parsing — removed `<anonymous>` from internal frame filtering for more accurate source location detection\n\n### 0.5.1\n\n- Encapsulated panel UI in shadow DOM to prevent style conflicts with host application\n\n### 0.5.0\n\n- Added line and column tracking to log entries — each log now shows the exact source line and column where it was called\n- Enhanced object/array visualization with DevTools-like syntax highlighting — objects and arrays are displayed with colored keys, strings, numbers, and booleans for better readability\n\n### 0.4.0\n\n- Added file column to log output — shows the source file path where `useLogger` was called, detected automatically via stack trace parsing\n- Added scope colors — each scope gets a unique consistent color derived from its name, visible on scope tabs and log entries\n- Added resizable columns — drag column dividers to resize time, level, scope and file columns, sizes persist to localStorage\n\n### 0.3.0\n\n- Production build stubs via package export conditions — zero bundle cost in production builds with no config required in Vite, webpack 5, Rollup, and esbuild\n\n### 0.2.0\n\n- Replaced `defineScope` with `useLogger` — returns a scoped logger object that re-asserts the scope before every call, fixing async timing issues in reactive frameworks\n\n### 0.1.0\n\n- Initial release — scoped console logging, in-page panel, scope and level filtering, persistent state via localStorage\n\n---\n\n## License\n\nMIT © [Jakub Bajzath](https://hello.bajzath.cloud)","readmeFilename":"README.md","homepage":"https://github.com/bajzik/scoped-console#readme","keywords":["console","logger","logging","scoped","debug","devtools","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/bajzik/scoped-console.git"},"bugs":{"url":"https://github.com/bajzik/scoped-console/issues"}}