mirror of
https://github.com/PR0M3TH3AN/bitlogin.git
synced 2026-10-28 17:11:26 +00:00
Integrators had to read the demo to learn the API: the package built via vite with no .d.ts and no types field, so @bitlogin/widget and @bitlogin/widget/session resolved to `any`. Emit declarations from source (tsconfig.types.json -> dist-types, build:types wired into build) and point the package types/exports conditions at them, for both the root and the /session entry. Generated, so they can't drift from the implementation. Add the type surface integrators actually want: - HTMLElementTagNameMap["bitlogin-auth"], so querySelector/createElement return the typed element. - Typed addEventListener/removeEventListener overloads (declaration-merged interface) for the bitlogin-* events. - Exported event-detail types and BitLoginEventMap (src/events.ts), matching element.ts's dispatchEvent shapes. Verified with a consumer conformance typecheck (typed detail with no cast, typed element methods, readCachedSession return type). README gains a "TypeScript" section. Addresses the ".d.ts / documented API surface" item of the Tessera integration feedback (docs/TODO.md). Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_01BXQCvJPA6sVSQ5j8uBd9bB
17 lines
587 B
JSON
17 lines
587 B
JSON
{
|
|
"//": "Emits public .d.ts for @bitlogin/widget (and /session) into dist-types. Kept separate from tsconfig.json (which is noEmit typecheck-only). Tests and the e2e tree are excluded so they don't ship as declarations.",
|
|
"extends": "../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"outDir": "./dist-types",
|
|
"rootDir": "src",
|
|
"noEmit": false,
|
|
"emitDeclarationOnly": true,
|
|
"declaration": true,
|
|
"declarationMap": false,
|
|
"sourceMap": false,
|
|
"lib": ["ES2022", "DOM", "DOM.Iterable"]
|
|
},
|
|
"include": ["src"],
|
|
"exclude": ["src/e2e", "**/*.test.ts"]
|
|
}
|