diff --git a/packages/backend/package.json b/packages/backend/package.json index e16f335007..d69a0d37ad 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -161,7 +161,6 @@ "@nestjs/platform-express": "11.1.19", "@rollup/plugin-esm-shim": "0.1.8", "@sentry/vue": "10.48.0", - "@simplewebauthn/types": "12.0.0", "@types/accepts": "1.3.7", "@types/archiver": "7.0.0", "@types/body-parser": "1.19.6", diff --git a/packages/backend/src/core/WebAuthnService.ts b/packages/backend/src/core/WebAuthnService.ts index 31c8d67c60..202fa37412 100644 --- a/packages/backend/src/core/WebAuthnService.ts +++ b/packages/backend/src/core/WebAuthnService.ts @@ -24,7 +24,7 @@ import type { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON, -} from '@simplewebauthn/types'; +} from '@simplewebauthn/server'; @Injectable() export class WebAuthnService { diff --git a/packages/backend/src/server/api/ApiServerService.ts b/packages/backend/src/server/api/ApiServerService.ts index 57d74ef2b1..6244f5edec 100644 --- a/packages/backend/src/server/api/ApiServerService.ts +++ b/packages/backend/src/server/api/ApiServerService.ts @@ -7,7 +7,7 @@ import { Inject, Injectable } from '@nestjs/common'; import cors from '@fastify/cors'; import multipart from '@fastify/multipart'; import { ModuleRef } from '@nestjs/core'; -import { AuthenticationResponseJSON } from '@simplewebauthn/types'; +import type { AuthenticationResponseJSON } from '@simplewebauthn/server'; import type { Config } from '@/config.js'; import type { InstancesRepository, AccessTokensRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; diff --git a/packages/backend/src/server/api/SigninApiService.ts b/packages/backend/src/server/api/SigninApiService.ts index 5c9d16a95a..1bc2a66bea 100644 --- a/packages/backend/src/server/api/SigninApiService.ts +++ b/packages/backend/src/server/api/SigninApiService.ts @@ -28,7 +28,7 @@ import { LoggerService } from '@/core/LoggerService.js'; import { FastifyReplyError } from '@/misc/fastify-reply-error.js'; import { RateLimiterService } from './RateLimiterService.js'; import { SigninService } from './SigninService.js'; -import type { AuthenticationResponseJSON } from '@simplewebauthn/types'; +import type { AuthenticationResponseJSON } from '@simplewebauthn/server'; import type { FastifyReply, FastifyRequest } from 'fastify'; @Injectable() diff --git a/packages/backend/src/server/api/SigninWithPasskeyApiService.ts b/packages/backend/src/server/api/SigninWithPasskeyApiService.ts index 6feb4c3afa..4ae8596d27 100644 --- a/packages/backend/src/server/api/SigninWithPasskeyApiService.ts +++ b/packages/backend/src/server/api/SigninWithPasskeyApiService.ts @@ -23,7 +23,7 @@ import { LoggerService } from '@/core/LoggerService.js'; import type { IdentifiableError } from '@/misc/identifiable-error.js'; import { RateLimiterService } from './RateLimiterService.js'; import { SigninService } from './SigninService.js'; -import type { AuthenticationResponseJSON } from '@simplewebauthn/types'; +import type { AuthenticationResponseJSON } from '@simplewebauthn/server'; import type { FastifyReply, FastifyRequest } from 'fastify'; @Injectable() diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts index 050dbaf49e..c22241e02f 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts @@ -39,137 +39,6 @@ export const meta = { res: { type: 'object', - nullable: false, - optional: false, - properties: { - rp: { - type: 'object', - properties: { - id: { - type: 'string', - optional: true, - }, - }, - }, - user: { - type: 'object', - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - displayName: { - type: 'string', - }, - }, - }, - challenge: { - type: 'string', - }, - pubKeyCredParams: { - type: 'array', - items: { - type: 'object', - properties: { - type: { - type: 'string', - }, - alg: { - type: 'number', - }, - }, - }, - }, - timeout: { - type: 'number', - nullable: true, - }, - excludeCredentials: { - type: 'array', - nullable: true, - items: { - type: 'object', - properties: { - id: { - type: 'string', - }, - type: { - type: 'string', - }, - transports: { - type: 'array', - items: { - type: 'string', - enum: [ - 'ble', - 'cable', - 'hybrid', - 'internal', - 'nfc', - 'smart-card', - 'usb', - ], - }, - }, - }, - }, - }, - authenticatorSelection: { - type: 'object', - nullable: true, - properties: { - authenticatorAttachment: { - type: 'string', - enum: [ - 'cross-platform', - 'platform', - ], - }, - requireResidentKey: { - type: 'boolean', - }, - userVerification: { - type: 'string', - enum: [ - 'discouraged', - 'preferred', - 'required', - ], - }, - }, - }, - attestation: { - type: 'string', - nullable: true, - enum: [ - 'direct', - 'enterprise', - 'indirect', - 'none', - null, - ], - }, - extensions: { - type: 'object', - nullable: true, - properties: { - appid: { - type: 'string', - nullable: true, - }, - credProps: { - type: 'boolean', - nullable: true, - }, - hmacCreateSecret: { - type: 'boolean', - nullable: true, - }, - }, - }, - }, }, } as const; diff --git a/packages/backend/test/e2e/2fa.ts b/packages/backend/test/e2e/2fa.ts index bd529067cc..bb98c88f19 100644 --- a/packages/backend/test/e2e/2fa.ts +++ b/packages/backend/test/e2e/2fa.ts @@ -18,7 +18,7 @@ import type { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON, -} from '@simplewebauthn/types'; +} from '@simplewebauthn/server'; import type * as misskey from 'misskey-js'; import { describe, beforeAll, test } from 'vitest'; diff --git a/packages/backend/test/unit/SigninWithPasskeyApiService.ts b/packages/backend/test/unit/SigninWithPasskeyApiService.ts index f989d2d29a..4dc1a97169 100644 --- a/packages/backend/test/unit/SigninWithPasskeyApiService.ts +++ b/packages/backend/test/unit/SigninWithPasskeyApiService.ts @@ -8,7 +8,7 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vites import { mockDeep } from 'vitest-mock-extended'; import { Test, TestingModule } from '@nestjs/testing'; import { FastifyReply, FastifyRequest } from 'fastify'; -import { AuthenticationResponseJSON } from '@simplewebauthn/types'; +import type { AuthenticationResponseJSON } from '@simplewebauthn/server'; import { HttpHeader } from 'fastify/types/utils.js'; import { MiUser } from '@/models/User.js'; import { MiUserProfile, UserProfilesRepository, UsersRepository } from '@/models/_.js'; diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 18ccc43f07..81f723267f 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -18,10 +18,10 @@ "dependencies": { "@analytics/google-analytics": "1.1.0", "@discordapp/twemoji": "16.0.1", - "@github/webauthn-json": "2.1.1", "@mcaptcha/core-glue": "0.1.0-alpha-5", "@misskey-dev/browser-image-resizer": "2024.1.0", "@sentry/vue": "10.48.0", + "@simplewebauthn/browser": "13.3.0", "@syuilo/aiscript": "1.2.1", "@syuilo/aiscript-0-19-0": "npm:@syuilo/aiscript@^0.19.0", "@twemoji/parser": "16.0.0", diff --git a/packages/frontend/src/components/MkSignin.passkey.vue b/packages/frontend/src/components/MkSignin.passkey.vue index e5a56ab66d..d4635953f3 100644 --- a/packages/frontend/src/components/MkSignin.passkey.vue +++ b/packages/frontend/src/components/MkSignin.passkey.vue @@ -22,21 +22,21 @@ SPDX-License-Identifier: AGPL-3.0-only