{"_id":"@ait-co/debug-console","_rev":"3-1967dd03e34aa8e398a0c8be656ea753","name":"@ait-co/debug-console","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.1":{"name":"@ait-co/debug-console","version":"0.1.1","keywords":["apps-in-toss","toss","mini-app","debug-console","eruda","on-device","console"],"license":"BSD-3-Clause","_id":"@ait-co/debug-console@0.1.1","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"homepage":"https://www.npmjs.com/package/@ait-co/debug-console","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"dist":{"shasum":"22be49047075806421ee3cb5d55c348241cfbdd6","tarball":"https://registry.npmjs.org/@ait-co/debug-console/-/debug-console-0.1.1.tgz","fileCount":20,"integrity":"sha512-9W7GVXe8HwhAxx2jQKEu7nr5agUqrRPn/AR+CecuMf+FJWhbhQxF4xbYYP08MeW2FbMwwX5SaCK7nuVarBbLXQ==","signatures":[{"sig":"MEUCIGt0nVgwohYyu0PmA9k4f1gT2DGd1o7q4uNbLJVdiOI9AiEAzQ4NPoSLZOiysQYw0hEaorpoCVsuf3aFGl3RuMI/v98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756699},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./auto":{"import":{"types":"./dist/auto.d.ts","default":"./dist/auto.js"},"require":{"types":"./dist/auto.d.cts","default":"./dist/auto.cjs"}}},"scripts":{"dev":"tsdown --watch","lint":"biome check .","test":"vitest run","build":"tsdown","format":"biome format --write .","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"davedev42","email":"dave.dev@icloud.com"},"repository":{"url":"https://github.com/apps-in-toss-community/debugger","type":"git","directory":"packages/debug-console"},"description":"On-device attach + eruda console for Apps in Toss mini-apps — the only package in this split that can enter a production bundle","directories":{},"sideEffects":["./dist/auto.js","./dist/auto.cjs"],"_nodeVersion":"24.14.1","dependencies":{"eruda":"^3.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.2","tsdown":"^0.22.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.2","@biomejs/biome":"2.5.1","@ait-co/internal-protocol":"0.0.0","@apps-in-toss/web-framework":"^2.10.7"},"_npmOperationalInternal":{"tmp":"tmp/debug-console_0.1.1_1785156889685_0.11129111174125561","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ait-co/debug-console","version":"0.1.3","keywords":["apps-in-toss","toss","mini-app","debug-console","eruda","on-device","console"],"license":"BSD-3-Clause","_id":"@ait-co/debug-console@0.1.3","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"homepage":"https://www.npmjs.com/package/@ait-co/debug-console","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"dist":{"shasum":"7a0b68bdbfc49a29d530acdb3649f0c2b0894bd6","tarball":"https://registry.npmjs.org/@ait-co/debug-console/-/debug-console-0.1.3.tgz","fileCount":20,"integrity":"sha512-77U4sNEyXPO+At4OZS5z0p9vmWye0ke9PjRwucZi4SVz18TMSkD2+66vvcgdpQTsDCUDmDRt/QtUwX6y83VQSw==","signatures":[{"sig":"MEUCIQDcQpr73sl/5YkvRd+ShyKQr2mARnatPdzsnMljdoZl9QIgCE8ZNzjKj6y7UC6TlJO/USaclS8cTxoKU+WGiqNk3fY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ait-co%2fdebug-console@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":756739},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./auto":{"import":{"types":"./dist/auto.d.ts","default":"./dist/auto.js"},"require":{"types":"./dist/auto.d.cts","default":"./dist/auto.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"biome check .","test":"vitest run","build":"tsdown","format":"biome format --write .","lint:fix":"biome check --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3dbed72-0656-437b-8a1b-e6408bdd133f"}},"repository":{"url":"https://github.com/apps-in-toss-community/debugger","type":"git","directory":"packages/debug-console"},"description":"On-device attach + eruda console for Apps in Toss mini-apps — the only package in this split that can enter a production bundle","directories":{},"sideEffects":["./dist/auto.js","./dist/auto.cjs"],"_nodeVersion":"24.18.0","dependencies":{"eruda":"^3.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.2","tsdown":"^0.22.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.2","@biomejs/biome":"2.5.1","@ait-co/internal-protocol":"0.0.0","@apps-in-toss/web-framework":"^2.10.7"},"_npmOperationalInternal":{"tmp":"tmp/debug-console_0.1.3_1785221988693_0.3604224911056313","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@ait-co/debug-console","version":"0.1.4","description":"On-device attach + eruda console for Apps in Toss mini-apps — the only package in this split that can enter a production bundle","type":"module","engines":{"node":">=24"},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./auto":{"import":{"types":"./dist/auto.d.ts","default":"./dist/auto.js"},"require":{"types":"./dist/auto.d.cts","default":"./dist/auto.cjs"}}},"sideEffects":["./dist/auto.js","./dist/auto.cjs"],"dependencies":{"eruda":"^3.4.3"},"devDependencies":{"@apps-in-toss/web-framework":"^2.10.7","@biomejs/biome":"2.5.1","@types/node":"^25.6.2","jsdom":"^29.0.2","tsdown":"^0.22.0","typescript":"^6.0.2","vitest":"^4.1.4","@ait-co/internal-protocol":"0.0.0"},"keywords":["apps-in-toss","toss","mini-app","debug-console","eruda","on-device","console"],"license":"BSD-3-Clause","publishConfig":{"access":"public"},"repository":{"type":"git","url":"https://github.com/apps-in-toss-community/debugger","directory":"packages/debug-console"},"homepage":"https://www.npmjs.com/package/@ait-co/debug-console","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"scripts":{"build":"tsdown","dev":"tsdown --watch","typecheck":"tsc --noEmit","test":"vitest run","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write ."},"_nodeVersion":"24.18.0","_id":"@ait-co/debug-console@0.1.4","dist":{"integrity":"sha512-pFdvsWBWQy9CyDL0W3WrsMcIxpZT2Zm1W2ogpkkkakL4SvKuLhWbupq1b6fiwqZwIFCRaThz1Rg3xuarT7un4g==","shasum":"ef5689abd5d187ae9dc83ea61ee4704b3588252a","tarball":"https://registry.npmjs.org/@ait-co/debug-console/-/debug-console-0.1.4.tgz","fileCount":20,"unpackedSize":757591,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ait-co%2fdebug-console@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDfKrTGPMNubojvEVTpcEYZyIGpNTsevnnKekvY4MKbagIgQ4kb1q4L/uJigzV9TFLLR1SpJuti9POg5D1LggrM/A4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3dbed72-0656-437b-8a1b-e6408bdd133f"}},"directories":{},"maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/debug-console_0.1.4_1785608404236_0.12699802943136196"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T12:54:48.920Z","modified":"2026-08-01T18:20:04.704Z","0.1.1":"2026-07-27T12:54:49.811Z","0.1.3":"2026-07-28T06:59:48.885Z","0.1.4":"2026-08-01T18:20:04.395Z"},"bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"license":"BSD-3-Clause","homepage":"https://www.npmjs.com/package/@ait-co/debug-console","keywords":["apps-in-toss","toss","mini-app","debug-console","eruda","on-device","console"],"repository":{"type":"git","url":"https://github.com/apps-in-toss-community/debugger","directory":"packages/debug-console"},"description":"On-device attach + eruda console for Apps in Toss mini-apps — the only package in this split that can enter a production bundle","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"readme":"# @ait-co/debug-console\n\n**한국어** · [English](./README.en.md)\n\n[![npm](https://img.shields.io/npm/v/@ait-co/debug-console)](https://www.npmjs.com/package/@ait-co/debug-console)\n[![license](https://img.shields.io/badge/license-BSD--3--Clause-blue)](./LICENSE)\n\n앱인토스(Apps in Toss) 미니앱의 on-device attach + eruda 콘솔. **이번 분리에서 프로덕션 번들에 들어갈 수 있는 유일한 패키지**다 — dependency는 [`eruda`](https://github.com/liriliri/eruda) 하나뿐이고 peerDependency는 0개라, SDK 버전(2.x/3.x)과 완전히 무관하게 동작한다.\n\n이 프로젝트는 더 이상 유지보수되지 않는다. repo는 archive되어 read-only가 되지만 소스와 이슈 기록은 GitHub에 그대로 남고, 이 패키지도 npm에서 계속 설치할 수 있다 — 다만 더 이상 업데이트되지 않는다. `aitc.dev` 도메인과 그 위에서 돌던 사이트는 종료되므로, 문서는 [`docs`](https://github.com/apps-in-toss-community/docs) repo의 소스 파일에서 본다.\n\n## 설치\n\n```sh\npnpm add @ait-co/debug-console\n```\n\npeerDependency가 없으므로 `@apps-in-toss/web-framework`의 설치 여부·버전과 무관하게 그대로 추가할 수 있다. SDK 브릿지(아래 `window.__sdk`)는 런타임에 동적 import로 SDK 존재 여부를 probe하며, SDK가 없으면 조용히 스킵된다.\n\n## 사용\n\n### 자동 게이팅 엔트리 (권장)\n\n미니앱 엔트리에 한 줄만 추가한다. 디버그 활성화 신호(`?debug=1` + `?relay=`, 또는 DEV 빌드)가 없으면 아무 동작도 하지 않는다:\n\n```ts\nimport '@ait-co/debug-console/auto';\n```\n\n활성화되면 두 가지가 설치된다: (1) on-device Chii 타겟 injection(원격 CDP attach), (2) `window.__sdk` / `window.__sdkCall` — 에이전트가 CDP relay 너머로 임의의 SDK API를 직접 호출할 수 있게 해주는 브릿지.\n\n`/auto`는 런타임 self-gate다 — release 번들에서 \"코드가 물리적으로 0바이트\"를 보장하지는 않는다(활성화되지 않은 채로 잠들어 있는 청크는 남는다). 그 보장이 필요하면 consumer가 직접 build-time 게이트를 두고 명시적으로 import한다:\n\n```ts\nif (__DEBUG_BUILD__) {\n  import('@ait-co/debug-console').then((m) => m.maybeAttach());\n}\n```\n\n`define: { __DEBUG_BUILD__: 'false' }`로 release 빌드하면 번들러가 `@ait-co/debug-console` 그래프 전체를 dead-code-eliminate한다.\n\n### 보너스: relay 없는 단독 eruda 콘솔\n\n`mountEruda()` / `unmountEruda()`는 위 gate와 무관하게 직접 호출할 수 있는 export다. relay·attach 없이 폰 화면 위에 eruda 콘솔만 띄우고 싶다면:\n\n```ts\nimport { mountEruda } from '@ait-co/debug-console';\n\nif (import.meta.env.DEV) {\n  mountEruda();\n}\n```\n\n## Exports\n\n| subpath | 내용 |\n|---|---|\n| `@ait-co/debug-console` | `checkDebugGate`, `maybeAttach`, `mountEruda`/`unmountEruda`, gate 타입/헬퍼 등 전체 API |\n| `@ait-co/debug-console/auto` | side-effect 전용 자동 게이팅 엔트리 (위 사용 예시) |\n\nbin은 없다.\n\n## `@ait-co/devtools`와의 관계\n\n`@ait-co/devtools`는 mock SDK · DevTools 패널 · unplugin(브라우저 dev 환경, station 2)을 담당하고, 이 패키지는 실기기 attach의 in-app 절반(station 3)을 담당한다. `@ait-co/debugger`가 host(PC) 쪽 MCP 데몬·CDP relay라면, `@ait-co/debug-console`은 phone(device) 쪽에서 그 relay에 붙는 대상 — Chii 타겟 injection과 eruda 콘솔 오버레이다. 8개 기능 표면을 담던 하나의 `devtools` 패키지를 이번 분리에서 \"브라우저 dev 환경\"과 \"실기기 디버깅\"으로 나눈 결과이며, 이 패키지는 그중에서도 dependency 표면이 가장 좁아야 하는 쪽 — 프로덕션에 실릴 수 있는 유일한 조각이기 때문이다.\n\n## 보안 스코프\n\n**이 패키지는 프로덕션 번들에 실제로 들어갈 수 있다** — 그래서 dependency가 `eruda` 하나로 고정되어 있고 peerDependency는 0개다. attach는 3단계 활성화 게이트를 통과해야만 이뤄진다: (B) 호스트 allowlist + 배포 엔트리 파라미터, (C) `debug=1` opt-in + 유효한 `wss:` relay URL + (설정된 경우) TOTP 코드. 이 게이트를 통과하지 못하면 attach는 일어나지 않으며, gate 실패 사유는 `'host' | 'entry' | 'opt-in' | 'invalid-relay' | 'auth'` enum 값으로만 노출된다 — 시크릿·코드 값·relay URL 자체는 어떤 로그에도 남지 않는다.\n\n## 라이선스\n\nBSD-3-Clause\n\n---\n\n커뮤니티 오픈소스 프로젝트입니다.\n","readmeFilename":""}