{"_id":"@anjunar/scalajs-ui-webauthn","_rev":"6-9ebd701b2926e26f3c748d0ba3b4f929","name":"@anjunar/scalajs-ui-webauthn","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@anjunar/scalajs-ui-webauthn","version":"1.0.0","author":{"name":"Patrick Bittner"},"license":"MIT","_id":"@anjunar/scalajs-ui-webauthn@1.0.0","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"homepage":"https://github.com/anjunar/scalajs-ui#readme","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"e12d0b9fd958e5696729b3af2a9351b0e2073db8","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.0.0.tgz","fileCount":26,"integrity":"sha512-NZO1fe5vux9QtLzICtBhNtqB6jxndrVk/Czlw1M7Kf26ChqoPt0pQ2J8qrQ3MxPATyECPmzrZMRNGo7w98hlxA==","signatures":[{"sig":"MEYCIQCDtzUNePxgt4rePgoYdWFaq55tqUJG6PgriqHMd24NKgIhAK7RbQuf5sRw7V0UuQ1JJ6vXXBu5bd9PUgv2RFkuQrMp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134973},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"a9312d1aa728764c037b016ba66b703e003d6d50","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for UI 3, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scalajs-ui-webauthn_1.0.0_1789143260684_0.937431832567555","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@anjunar/scalajs-ui-webauthn","version":"1.0.2","author":{"name":"Patrick Bittner"},"license":"MIT","_id":"@anjunar/scalajs-ui-webauthn@1.0.2","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"homepage":"https://github.com/anjunar/scalajs-ui#readme","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"962f32744c7052d35a0cd4b0769bd5a68333d1da","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.0.2.tgz","fileCount":26,"integrity":"sha512-5aRj5aF/B0vBErl+uWKMqRgo8Z8az7g+7BdS7eVoqbmbYE5zYA8lZH/XJA9xmojIx8jsZoF2Id/FIKRHr0+wbQ==","signatures":[{"sig":"MEUCIHLdInb24SgRS4XyA/p4tLzj0P5s+HEQVXxI1O+xGDgzAiEAvjoDYyjBRoHsXFp+vj0quneWHl4J772VpDyPJzLnQoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEGcdBGtX2y8jr6lbvyvyoXicRqUe5p3sJ/Xg4hRf9RuAiAJ+2NpJxM2BWmK9g0XCCO0HxZH9eWUxuEfXEduz3bOWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134995},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"192dd9f15ce1652b461173756defb0046fbd9ac4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scalajs-ui-webauthn_1.0.2_1789506097036_0.3553211977575441","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@anjunar/scalajs-ui-webauthn","version":"1.0.3","author":{"name":"Patrick Bittner"},"license":"MIT","_id":"@anjunar/scalajs-ui-webauthn@1.0.3","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"homepage":"https://github.com/anjunar/scalajs-ui#readme","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"3eb6c14c11da1cb3b272e176a28810aa74f2aeee","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.0.3.tgz","fileCount":26,"integrity":"sha512-ZQv+COucCnarp8PXdukOJJXNO6BKhMZjRJ1hT6baTFFzzzxoqc5zyJG58IjInd5TAJtu+1H1qgt6mISd4MfVWA==","signatures":[{"sig":"MEUCID9MgMoS5adfKkXReTbhg6TmB/tttvDJgAQmwf3rZXcwAiEAkB3GgP/2JbeBnQH3UMlQ3JAOmMYLMDf0vCRP0dNWVQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCGBEkq6VdJn1rSFptEtmQIVCwtArI4ovX4s7UDHL0Y8gIhAN17sBoeCwMzJl9R3/uw+bxWZ6LWrRnDNWoEd7hl+G6E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134995},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"81e89fc0d354046d9c9d548e5e1932d7baba0505","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scalajs-ui-webauthn_1.0.3_1789553042281_0.9761619582272592","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@anjunar/scalajs-ui-webauthn","version":"1.0.5","author":{"name":"Patrick Bittner"},"license":"MIT","_id":"@anjunar/scalajs-ui-webauthn@1.0.5","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"homepage":"https://github.com/anjunar/scalajs-ui#readme","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"4f0743ed54372c8a3d7baccc138cb6a6a874376b","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.0.5.tgz","fileCount":26,"integrity":"sha512-agp+6t+kb3ODnsDEDYM0eh12zwP1QHTxBwBhCEQBOCQNCBQ8RHnyyuAtx7FwqMd4U0gRUSkXnph7o7Cj5DVJ3A==","signatures":[{"sig":"MEUCIGlOGHKRaTtXHCAX82O2+ZbQMzelyUx7AX47d7mhGqPGAiEAtxgY7/XnvECyhM2U9tHH1mIh6DOf4pHwhgZ9MNQlbs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICUWbZBiuFdxZxJbWCNlzAUm683L9wLkpzqF/q90+8p3AiEAzo064FRP58ui7ZxzlGnKZT+6HWQit/gBOoiN6YcyrvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135038},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"13988ebfcf64a17c3b7777ef28c3e55e6d48ddca","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scalajs-ui-webauthn_1.0.5_1789736158273_0.13948710055333335","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@anjunar/scalajs-ui-webauthn","version":"1.0.6","author":{"name":"Patrick Bittner"},"license":"MIT","_id":"@anjunar/scalajs-ui-webauthn@1.0.6","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"homepage":"https://github.com/anjunar/scalajs-ui#readme","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"06b188d9fb8008d78026aba05c383dabd35bb10e","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.0.6.tgz","fileCount":26,"integrity":"sha512-PFgF1FV4Wfq8XVG8udhrtSC78ay4G6nVIMCSEEVOkDfeJ2gt7pFb7Z691vOA0vD9gUWTnqOUvEm9dX2Kl49BvQ==","signatures":[{"sig":"MEYCIQCgUAqdT4AfCDEJW9g7vcVaIZc0wIGv5yXdFHR/uetuDQIhAJQefhnZYZapOcduI1WRNHA0edx+eQngogYcjMyB++uo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEC2GLiuNJXkoQrnG+DZz1FEWwh/PUczSofI6ONQ5NVeAiAmWJXg5t66rUSnCHL6Nv169ilo+/WeVwGHhMztgzUvwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135038},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b5f4e2ac72fff6d18aff21420f18a811c54578e0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scalajs-ui-webauthn_1.0.6_1789958678794_0.5856636039212633","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@anjunar/scalajs-ui-webauthn@1.1.0","bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"dist":{"shasum":"a58c6c190faa475d0a71a0f83dbc8174e442c447","tarball":"https://registry.npmjs.org/@anjunar/scalajs-ui-webauthn/-/scalajs-ui-webauthn-1.1.0.tgz","fileCount":26,"integrity":"sha512-fKrz18sQVgFKwY25kzufGtpYGUJRFsMGFbPZ44ob1fe55KYELx8BronRuqbLHCxbGtYK7MFotduAxCsaii9TjQ==","signatures":[{"sig":"MEUCIQDuk98W5P7fpF74eWPra/iiXp1fj3wr5ZNdFKrNGL8b3gIgT7ovtmrYH7V4AMrGMh4C0uG6uEqFge7M2ywr20WUoKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDvIEmjAb/0Xom5EBzXN9wILt5Miw11Q3hNmvNn2MQaCgIhAOuLUxTpGNkc1VUkn6iIk+YqUh93vLXZHQhJnvq4Q5VM"}],"unpackedSize":135038},"main":"./dist/index.js","name":"@anjunar/scalajs-ui-webauthn","type":"module","types":"./dist/index.d.ts","author":{"name":"Patrick Bittner"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"a054cd17cb7cb398f4be3461b25c2a5df009a442","license":"MIT","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","verify":"npm run typecheck && npm run test && npm run test:consumer","prepack":"npm run build","typecheck":"npm run build && tsc -p tsconfig.test.json","test:watch":"vitest","test:consumer":"vitest run --config vitest.consumer.config.ts"},"version":"1.1.0","_npmUser":{"name":"anjunar","email":"anjunar@gmx.de"},"homepage":"https://github.com/anjunar/scalajs-ui#readme","repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"_npmVersion":"11.17.0","description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","directories":{},"maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"sideEffects":false,"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scalajs-ui-webauthn_1.1.0_1790707697890_0.5601201413817507"}}},"time":{"created":"2026-09-11T16:14:20.421Z","modified":"2026-09-29T18:48:18.161Z","1.0.0":"2026-09-11T16:14:20.809Z","1.0.2":"2026-09-15T21:01:37.127Z","1.0.3":"2026-09-16T10:04:02.394Z","1.0.5":"2026-09-18T12:55:58.355Z","1.0.6":"2026-09-21T02:44:38.883Z","1.1.0":"2026-09-29T18:48:18.017Z"},"bugs":{"url":"https://github.com/anjunar/scalajs-ui/issues"},"author":{"name":"Patrick Bittner"},"license":"MIT","homepage":"https://github.com/anjunar/scalajs-ui#readme","repository":{"url":"git+https://github.com/anjunar/scalajs-ui.git","type":"git","directory":"npm/scalajs-ui-webauthn"},"description":"The browser-side WebAuthn and passkey API for Scala JS UI 1.0, with strict JSON codecs and JSON-safe credential payloads.","maintainers":[{"name":"anjunar","email":"anjunar@gmx.de"}],"readme":"# @anjunar/scalajs-ui-webauthn\n\nThe browser-side WebAuthn and passkey API for Scala JS UI 1.0. It is independent of the\nUI component runtime and is the TypeScript counterpart of\n[`scalajs-ui-webauthn`](../../scalajs-ui-webauthn/README.md).\n\n## Installation\n\n```bash\nnpm install @anjunar/scalajs-ui-webauthn\n```\n\n## Registration and authentication\n\nUse the JSON methods with the options returned by a relying-party backend. The\nmodule uses the browser's Level 3 JSON parser when available and has a strict\nLevel 2 fallback for older browsers.\n\n```ts\nimport { authenticateJson, registerJson } from \"@anjunar/scalajs-ui-webauthn\";\n\nconst registration = await registerJson(await fetch(\"/webauthn/register/options\").then((r) => r.json()));\nawait fetch(\"/webauthn/register/verify\", {\n  method: \"POST\",\n  body: JSON.stringify(registration),\n  headers: { \"content-type\": \"application/json\" },\n});\n\nconst authentication = await authenticateJson(await fetch(\"/webauthn/auth/options\").then((r) => r.json()));\n```\n\nAlready decoded browser dictionaries can be passed to `register` and\n`authenticate`. `CredentialCreationSettings` and `CredentialRequestSettings`\ncarry an `AbortSignal` and mediation mode. All operations return native\nPromises; the `*Promise` names are provided as migration-friendly aliases for\nthe Scala.js API.\n\n## Capabilities and credential synchronization\n\n```ts\nimport {\n  CredentialMediationRequirement,\n  isAvailable,\n  isConditionalMediationAvailable,\n  authenticateJson,\n} from \"@anjunar/scalajs-ui-webauthn\";\n\nif (isAvailable() && await isConditionalMediationAvailable()) {\n  await authenticateJson(optionsFromServer, {\n    mediation: CredentialMediationRequirement.Conditional,\n  });\n}\n```\n\n`clientCapabilities` and the individual capability queries safely return empty\nor false outside a supporting browser. `signalUnknownCredential`,\n`signalAllAcceptedCredentials`, and `signalCurrentUserDetails` reject when the\nbrowser does not expose the corresponding WebAuthn Level 3 method.\n\n## JSON and Base64URL behavior\n\nCredential responses contain base64url strings suitable for sending to a\nbackend. `Base64Url` is public for application-specific binary fields.\n`credentialToJson` uses native `PublicKeyCredential.toJSON()` where available;\nthe fallback recursively converts binary extension results to base64url.\n\nWebAuthn ceremonies are only the browser boundary. Challenge generation and\nsingle use, origin and RP-ID validation, attestation policy, signature\nverification, sign-count handling, credential storage, and session\nestablishment remain backend responsibilities.\n\n## API overview\n\n- `register`, `registerJson`, `authenticate`, `authenticateJson`\n- `isSupported`, `isAvailable`, and capability queries\n- credential synchronization signal methods\n- typed public-key option facades and WebAuthn value constants\n- `Base64Url`, `WebAuthnCodecs`, `RegistrationCredential`, and `AuthenticationCredential`\n","readmeFilename":"README.md"}