managarten/packages/shared-auth/package.json
Till JS 3091da914e feat(auth): add WebAuthn/Passkey support across all apps
Implements passwordless authentication via passkeys using @simplewebauthn:

Backend (mana-core-auth):
- New passkeys table in auth schema (credentialId, publicKey, counter, etc.)
- PasskeyService with registration/authentication flows and challenge storage
- 7 new API endpoints (register, authenticate, list, delete, rename)
- createSessionAndTokens helper for non-password auth flows
- Security event types for passkey operations

Client (shared-auth):
- signInWithPasskey() and registerPasskey() with dynamic @simplewebauthn/browser imports
- isPasskeyAvailable() browser capability check
- Passkey management methods (list, delete, rename)

UI (shared-auth-ui):
- Passkey button on LoginPage with key icon, shown when browser supports WebAuthn
- Divider between passkey and email/password form

App integration:
- All 19 web app auth stores have isPasskeyAvailable() and signInWithPasskey()
- All 19 web app login pages pass passkeyAvailable and onSignInWithPasskey props
- rpID=mana.how in production enables cross-app passkey usage (SSO-compatible)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:30:03 +01:00

41 lines
752 B
JSON

{
"name": "@manacore/shared-auth",
"version": "0.1.0",
"private": true,
"description": "Shared authentication utilities for Manacore apps",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"files": [
"dist"
],
"scripts": {
"build": "tsc",
"clean": "rm -rf dist",
"type-check": "tsc --noEmit",
"lint": "eslint ."
},
"dependencies": {
"@manacore/shared-types": "workspace:*",
"@simplewebauthn/browser": "^13.3.0",
"base64-js": "^1.5.1"
},
"devDependencies": {
"typescript": "^5.9.3"
},
"peerDependencies": {
"react-native": ">=0.70.0"
},
"peerDependenciesMeta": {
"react-native": {
"optional": true
}
},
"keywords": [
"manacore",
"auth",
"jwt",
"token"
],
"license": "MIT"
}