Files
bitlogin/packages/core/package.json
T
Claude 5ee63ae6b0 Implement BitLogin as a modular protocol library, embeddable widget, and demo site
Builds out the v0.3 spec as an npm workspace monorepo any static site can
consume for login and Nostr signing:

- packages/core: framework-free protocol implementation — Argon2id/HKDF/
  ScalarExpand/AES-256-GCM/JCS crypto primitives, NIP-01 event handling and a
  quorum-aware relay pool, credential/recovery capsule construction and
  validation, and the full account lifecycle (registration, any-device
  login with rollback/relay-disagreement detection, phrase recovery with
  recovery-capsule refresh, password rotation with mandatory tombstone +
  NIP-09 deletion, replica repair, recovery export, NIP-19 encoding, a
  NIP-44 v2 implementation, and a NIP-07-shaped signer). 49 tests cover the
  spec's Phase 0 byte-level vectors plus full create/login/recover/rotate
  end-to-end scenarios against an in-memory mock relay.

- packages/widget: a <bitlogin-auth> custom element with a dedicated crypto
  Web Worker (private keys never touch the main thread) and a window.nostr
  NIP-07-compatible provider, so existing Nostr web apps work against it
  with zero code changes. Built with Vite into two relocatable static files.

- packages/demo: a plain static site (no build step of its own) consuming
  the widget — a branding/landing page, an integration guide, and an
  account-manager page covering create/login/recover, password rotation,
  and identity export.

All flows were verified twice: protocol-level tests against a mock relay,
and the actual built widget driven end-to-end in real Chromium (registration,
phrase confirmation, event signing, clean-device login, window.nostr, and
phrase recovery all reproduce the identical everyday pubkey).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01GWJbXXhvTx9wo59jSz57J6
2026-07-21 03:44:10 +00:00

39 lines
1.0 KiB
JSON

{
"name": "@bitlogin/core",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "BitLogin protocol core: crypto, capsules, Nostr relay I/O, account flows. Framework- and DOM-free.",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": "./dist/index.js",
"./crypto": "./dist/crypto/index.js",
"./nostr": "./dist/nostr/index.js",
"./capsules": "./dist/capsules/index.js",
"./account": "./dist/account/index.js",
"./storage": "./dist/storage/index.js"
},
"scripts": {
"build": "tsc -b",
"typecheck": "tsc -b --noEmit"
},
"dependencies": {
"@noble/ciphers": "^2.2.0",
"@noble/curves": "^1.9.1",
"@noble/hashes": "^1.7.1",
"@scure/base": "^1.2.6",
"@scure/bip39": "^1.5.4",
"canonicalize": "^2.0.0",
"diceware-wordlist-en-eff": "^1.0.1",
"hash-wasm": "^4.12.0"
},
"devDependencies": {
"@types/node": "^22.10.0",
"@types/ws": "^8.18.1",
"typescript": "^5.7.3",
"vitest": "^3.0.5",
"ws": "^8.21.1"
}
}