@spfn/auth 0.2.0-beta.57 → 0.2.0-beta.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -574,7 +574,7 @@ declare const mainAuthRouter: _spfn_core_route.Router<{
574
574
  id: number;
575
575
  name: string;
576
576
  displayName: string;
577
- category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
577
+ category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
578
578
  }[];
579
579
  userId: number;
580
580
  publicId: string;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _spfn_core_nextjs from '@spfn/core/nextjs';
2
- import { R as RoleConfig, P as PermissionConfig, C as CheckAccountExistsResult, S as SendVerificationCodeResult, a as RegisterResult, L as LoginResult, b as RotateKeyResult, I as IssueOneTimeTokenResult, O as OAuthStartResult, U as UserProfile, c as ProfileInfo, m as mainAuthRouter } from './authenticate-D11PAt8l.js';
3
- export { l as AuthInitOptions, A as AuthSession, d as INVITATION_STATUSES, o as InvitationStatus, K as KEY_ALGORITHM, n as KeyAlgorithmType, j as PERMISSION_CATEGORIES, k as PermissionCategory, f as SOCIAL_PROVIDERS, q as SocialProvider, e as USER_STATUSES, p as UserStatus, i as VERIFICATION_PURPOSES, h as VERIFICATION_TARGET_TYPES, g as VerificationPurpose, V as VerificationTargetType } from './authenticate-D11PAt8l.js';
2
+ import { R as RoleConfig, P as PermissionConfig, C as CheckAccountExistsResult, S as SendVerificationCodeResult, a as RegisterResult, L as LoginResult, b as RotateKeyResult, I as IssueOneTimeTokenResult, O as OAuthStartResult, U as UserProfile, c as ProfileInfo, m as mainAuthRouter } from './authenticate-CZW-7GE2.js';
3
+ export { l as AuthInitOptions, A as AuthSession, d as INVITATION_STATUSES, o as InvitationStatus, K as KEY_ALGORITHM, n as KeyAlgorithmType, j as PERMISSION_CATEGORIES, k as PermissionCategory, f as SOCIAL_PROVIDERS, q as SocialProvider, e as USER_STATUSES, p as UserStatus, i as VERIFICATION_PURPOSES, h as VERIFICATION_TARGET_TYPES, g as VerificationPurpose, V as VerificationTargetType } from './authenticate-CZW-7GE2.js';
4
4
  import * as _spfn_core_route from '@spfn/core/route';
5
5
  import { HttpMethod } from '@spfn/core/route';
6
6
  import * as _sinclair_typebox from '@sinclair/typebox';
@@ -169,7 +169,7 @@ declare const authApi: _spfn_core_nextjs.Client<_spfn_core_route.Router<{
169
169
  id: number;
170
170
  name: string;
171
171
  displayName: string;
172
- category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
172
+ category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
173
173
  }[];
174
174
  userId: number;
175
175
  publicId: string;
package/dist/server.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { l as AuthInitOptions, n as KeyAlgorithmType, o as InvitationStatus, g as VerificationPurpose, k as PermissionCategory, q as SocialProvider, r as AuthContext } from './authenticate-D11PAt8l.js';
2
- export { D as ChangePasswordParams, x as CheckAccountExistsParams, C as CheckAccountExistsResult, a9 as EmailSchema, d as INVITATION_STATUSES, I as IssueOneTimeTokenResult, K as KEY_ALGORITHM, z as LoginParams, L as LoginResult, B as LogoutParams, a5 as OAuthCallbackParams, a6 as OAuthCallbackResult, a4 as OAuthStartParams, O as OAuthStartResult, ab as PasswordSchema, aa as PhoneSchema, y as RegisterParams, T as RegisterPublicKeyParams, a as RegisterResult, X as RevokeKeyParams, W as RotateKeyParams, b as RotateKeyResult, f as SOCIAL_PROVIDERS, G as SendVerificationCodeParams, S as SendVerificationCodeResult, ac as TargetTypeSchema, e as USER_STATUSES, p as UserStatus, i as VERIFICATION_PURPOSES, h as VERIFICATION_TARGET_TYPES, ad as VerificationPurposeSchema, V as VerificationTargetType, H as VerifyCodeParams, J as VerifyCodeResult, m as authRouter, a7 as authenticate, a0 as buildOAuthErrorUrl, w as changePasswordService, s as checkAccountExistsService, a2 as getEnabledOAuthProviders, a3 as getGoogleAccessToken, a1 as isOAuthProviderEnabled, Y as issueOneTimeTokenService, u as loginService, v as logoutService, $ as oauthCallbackService, _ as oauthStartService, a8 as optionalAuth, M as registerPublicKeyService, t as registerService, Q as revokeKeyService, N as rotateKeyService, E as sendVerificationCodeService, F as verifyCodeService, Z as verifyOneTimeTokenService } from './authenticate-D11PAt8l.js';
1
+ import { l as AuthInitOptions, n as KeyAlgorithmType, o as InvitationStatus, g as VerificationPurpose, k as PermissionCategory, q as SocialProvider, r as AuthContext } from './authenticate-CZW-7GE2.js';
2
+ export { D as ChangePasswordParams, x as CheckAccountExistsParams, C as CheckAccountExistsResult, a9 as EmailSchema, d as INVITATION_STATUSES, I as IssueOneTimeTokenResult, K as KEY_ALGORITHM, z as LoginParams, L as LoginResult, B as LogoutParams, a5 as OAuthCallbackParams, a6 as OAuthCallbackResult, a4 as OAuthStartParams, O as OAuthStartResult, ab as PasswordSchema, aa as PhoneSchema, y as RegisterParams, T as RegisterPublicKeyParams, a as RegisterResult, X as RevokeKeyParams, W as RotateKeyParams, b as RotateKeyResult, f as SOCIAL_PROVIDERS, G as SendVerificationCodeParams, S as SendVerificationCodeResult, ac as TargetTypeSchema, e as USER_STATUSES, p as UserStatus, i as VERIFICATION_PURPOSES, h as VERIFICATION_TARGET_TYPES, ad as VerificationPurposeSchema, V as VerificationTargetType, H as VerifyCodeParams, J as VerifyCodeResult, m as authRouter, a7 as authenticate, a0 as buildOAuthErrorUrl, w as changePasswordService, s as checkAccountExistsService, a2 as getEnabledOAuthProviders, a3 as getGoogleAccessToken, a1 as isOAuthProviderEnabled, Y as issueOneTimeTokenService, u as loginService, v as logoutService, $ as oauthCallbackService, _ as oauthStartService, a8 as optionalAuth, M as registerPublicKeyService, t as registerService, Q as revokeKeyService, N as rotateKeyService, E as sendVerificationCodeService, F as verifyCodeService, Z as verifyOneTimeTokenService } from './authenticate-CZW-7GE2.js';
3
3
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
4
4
  import { UserProfile as UserProfile$1, ProfileInfo } from '@spfn/auth';
5
5
  import { BaseRepository } from '@spfn/core/db';
@@ -1330,7 +1330,7 @@ declare function getAuthSessionService(userId: string | number | bigint): Promis
1330
1330
  id: number;
1331
1331
  name: string;
1332
1332
  displayName: string;
1333
- category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
1333
+ category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
1334
1334
  }[];
1335
1335
  userId: number;
1336
1336
  publicId: string;
@@ -2471,7 +2471,7 @@ declare const permissions: drizzle_orm_pg_core.PgTableWithColumns<{
2471
2471
  tableName: "permissions";
2472
2472
  dataType: "string";
2473
2473
  columnType: "PgText";
2474
- data: "auth" | "custom" | "user" | "rbac" | "system";
2474
+ data: "custom" | "user" | "auth" | "rbac" | "system";
2475
2475
  driverParam: string;
2476
2476
  notNull: false;
2477
2477
  hasDefault: false;
@@ -3062,17 +3062,17 @@ declare class UsersRepository extends BaseRepository {
3062
3062
  * Write primary 사용
3063
3063
  */
3064
3064
  create(data: NewUser): Promise<{
3065
+ username: string | null;
3066
+ status: "active" | "inactive" | "suspended";
3065
3067
  email: string | null;
3066
3068
  phone: string | null;
3067
3069
  id: number;
3070
+ createdAt: Date;
3071
+ updatedAt: Date;
3068
3072
  publicId: string;
3069
- username: string | null;
3070
3073
  passwordHash: string | null;
3071
3074
  passwordChangeRequired: boolean;
3072
3075
  roleId: number;
3073
- createdAt: Date;
3074
- updatedAt: Date;
3075
- status: "active" | "inactive" | "suspended";
3076
3076
  emailVerifiedAt: Date | null;
3077
3077
  phoneVerifiedAt: Date | null;
3078
3078
  lastLoginAt: Date | null;
@@ -3142,17 +3142,17 @@ declare class UsersRepository extends BaseRepository {
3142
3142
  * Write primary 사용
3143
3143
  */
3144
3144
  deleteById(id: number): Promise<{
3145
+ username: string | null;
3146
+ status: "active" | "inactive" | "suspended";
3145
3147
  email: string | null;
3146
3148
  phone: string | null;
3147
3149
  id: number;
3150
+ createdAt: Date;
3151
+ updatedAt: Date;
3148
3152
  publicId: string;
3149
- username: string | null;
3150
3153
  passwordHash: string | null;
3151
3154
  passwordChangeRequired: boolean;
3152
3155
  roleId: number;
3153
- createdAt: Date;
3154
- updatedAt: Date;
3155
- status: "active" | "inactive" | "suspended";
3156
3156
  emailVerifiedAt: Date | null;
3157
3157
  phoneVerifiedAt: Date | null;
3158
3158
  lastLoginAt: Date | null;
@@ -3175,7 +3175,7 @@ declare class UsersRepository extends BaseRepository {
3175
3175
  id: number;
3176
3176
  name: string;
3177
3177
  displayName: string;
3178
- category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
3178
+ category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
3179
3179
  }[];
3180
3180
  }>;
3181
3181
  /**
@@ -3290,16 +3290,16 @@ declare class KeysRepository extends BaseRepository {
3290
3290
  * Write primary 사용
3291
3291
  */
3292
3292
  create(data: NewUserPublicKey): Promise<{
3293
- publicKey: string;
3294
- keyId: string;
3295
- fingerprint: string;
3296
- algorithm: "ES256" | "RS256";
3297
3293
  userId: number;
3294
+ keyId: string;
3298
3295
  id: number;
3299
3296
  isActive: boolean;
3300
3297
  createdAt: Date;
3301
- expiresAt: Date | null;
3298
+ publicKey: string;
3299
+ algorithm: "ES256" | "RS256";
3300
+ fingerprint: string;
3302
3301
  lastUsedAt: Date | null;
3302
+ expiresAt: Date | null;
3303
3303
  revokedAt: Date | null;
3304
3304
  revokedReason: string | null;
3305
3305
  }>;
@@ -3326,16 +3326,16 @@ declare class KeysRepository extends BaseRepository {
3326
3326
  * Write primary 사용
3327
3327
  */
3328
3328
  deleteByKeyIdAndUserId(keyId: string, userId: number): Promise<{
3329
- publicKey: string;
3330
- keyId: string;
3331
- fingerprint: string;
3332
- algorithm: "ES256" | "RS256";
3333
3329
  userId: number;
3330
+ keyId: string;
3334
3331
  id: number;
3335
3332
  isActive: boolean;
3336
3333
  createdAt: Date;
3337
- expiresAt: Date | null;
3334
+ publicKey: string;
3335
+ algorithm: "ES256" | "RS256";
3336
+ fingerprint: string;
3338
3337
  lastUsedAt: Date | null;
3338
+ expiresAt: Date | null;
3339
3339
  revokedAt: Date | null;
3340
3340
  revokedReason: string | null;
3341
3341
  }>;
@@ -3450,14 +3450,14 @@ declare class VerificationCodesRepository extends BaseRepository {
3450
3450
  * Write primary 사용
3451
3451
  */
3452
3452
  create(data: NewVerificationCode): Promise<{
3453
- target: string;
3454
- targetType: "email" | "phone";
3455
- purpose: "registration" | "login" | "password_reset" | "email_change" | "phone_change";
3456
- code: string;
3457
3453
  id: number;
3458
3454
  createdAt: Date;
3459
3455
  updatedAt: Date;
3460
3456
  expiresAt: Date;
3457
+ target: string;
3458
+ targetType: "email" | "phone";
3459
+ code: string;
3460
+ purpose: "registration" | "login" | "password_reset" | "email_change" | "phone_change";
3461
3461
  usedAt: Date | null;
3462
3462
  attempts: number;
3463
3463
  }>;
@@ -3646,7 +3646,7 @@ declare class PermissionsRepository extends BaseRepository {
3646
3646
  name: string;
3647
3647
  displayName: string;
3648
3648
  description: string | null;
3649
- category: "auth" | "custom" | "user" | "rbac" | "system" | null;
3649
+ category: "custom" | "user" | "auth" | "rbac" | "system" | null;
3650
3650
  isBuiltin: boolean;
3651
3651
  isSystem: boolean;
3652
3652
  isActive: boolean;
@@ -3662,7 +3662,7 @@ declare class PermissionsRepository extends BaseRepository {
3662
3662
  name: string;
3663
3663
  displayName: string;
3664
3664
  description: string | null;
3665
- category: "auth" | "custom" | "user" | "rbac" | "system" | null;
3665
+ category: "custom" | "user" | "auth" | "rbac" | "system" | null;
3666
3666
  isBuiltin: boolean;
3667
3667
  isSystem: boolean;
3668
3668
  isActive: boolean;
@@ -3702,7 +3702,7 @@ declare class PermissionsRepository extends BaseRepository {
3702
3702
  name: string;
3703
3703
  displayName: string;
3704
3704
  description: string | null;
3705
- category: "auth" | "custom" | "user" | "rbac" | "system" | null;
3705
+ category: "custom" | "user" | "auth" | "rbac" | "system" | null;
3706
3706
  isBuiltin: boolean;
3707
3707
  isSystem: boolean;
3708
3708
  isActive: boolean;
@@ -3713,7 +3713,6 @@ declare class PermissionsRepository extends BaseRepository {
3713
3713
  */
3714
3714
  deleteById(id: number): Promise<{
3715
3715
  description: string | null;
3716
- metadata: Record<string, any> | null;
3717
3716
  id: number;
3718
3717
  name: string;
3719
3718
  displayName: string;
@@ -3722,7 +3721,8 @@ declare class PermissionsRepository extends BaseRepository {
3722
3721
  isActive: boolean;
3723
3722
  createdAt: Date;
3724
3723
  updatedAt: Date;
3725
- category: "auth" | "custom" | "user" | "rbac" | "system" | null;
3724
+ metadata: Record<string, any> | null;
3725
+ category: "custom" | "user" | "auth" | "rbac" | "system" | null;
3726
3726
  }>;
3727
3727
  }
3728
3728
  declare const permissionsRepository: PermissionsRepository;
@@ -3767,9 +3767,9 @@ declare class RolePermissionsRepository extends BaseRepository {
3767
3767
  */
3768
3768
  createMany(data: NewRolePermission[]): Promise<{
3769
3769
  id: number;
3770
- roleId: number;
3771
3770
  createdAt: Date;
3772
3771
  updatedAt: Date;
3772
+ roleId: number;
3773
3773
  permissionId: number;
3774
3774
  }[]>;
3775
3775
  /**
@@ -3785,9 +3785,9 @@ declare class RolePermissionsRepository extends BaseRepository {
3785
3785
  */
3786
3786
  setPermissionsForRole(roleId: number, permissionIds: number[]): Promise<{
3787
3787
  id: number;
3788
- roleId: number;
3789
3788
  createdAt: Date;
3790
3789
  updatedAt: Date;
3790
+ roleId: number;
3791
3791
  permissionId: number;
3792
3792
  }[]>;
3793
3793
  }
@@ -3852,10 +3852,10 @@ declare class UserPermissionsRepository extends BaseRepository {
3852
3852
  id: number;
3853
3853
  createdAt: Date;
3854
3854
  updatedAt: Date;
3855
- permissionId: number;
3856
3855
  expiresAt: Date | null;
3857
- reason: string | null;
3856
+ permissionId: number;
3858
3857
  granted: boolean;
3858
+ reason: string | null;
3859
3859
  }>;
3860
3860
  /**
3861
3861
  * 사용자 권한 오버라이드 업데이트
@@ -3878,10 +3878,10 @@ declare class UserPermissionsRepository extends BaseRepository {
3878
3878
  id: number;
3879
3879
  createdAt: Date;
3880
3880
  updatedAt: Date;
3881
- permissionId: number;
3882
3881
  expiresAt: Date | null;
3883
- reason: string | null;
3882
+ permissionId: number;
3884
3883
  granted: boolean;
3884
+ reason: string | null;
3885
3885
  }>;
3886
3886
  /**
3887
3887
  * 사용자의 모든 권한 오버라이드 삭제
@@ -3959,7 +3959,6 @@ declare class UserProfilesRepository extends BaseRepository {
3959
3959
  * 프로필 생성
3960
3960
  */
3961
3961
  create(data: NewUserProfile): Promise<{
3962
- metadata: Record<string, any> | null;
3963
3962
  userId: number;
3964
3963
  id: number;
3965
3964
  displayName: string | null;
@@ -3977,6 +3976,7 @@ declare class UserProfilesRepository extends BaseRepository {
3977
3976
  location: string | null;
3978
3977
  company: string | null;
3979
3978
  jobTitle: string | null;
3979
+ metadata: Record<string, any> | null;
3980
3980
  }>;
3981
3981
  /**
3982
3982
  * 프로필 업데이트 (by ID)
@@ -4028,7 +4028,6 @@ declare class UserProfilesRepository extends BaseRepository {
4028
4028
  * 프로필 삭제 (by ID)
4029
4029
  */
4030
4030
  deleteById(id: number): Promise<{
4031
- metadata: Record<string, any> | null;
4032
4031
  userId: number;
4033
4032
  id: number;
4034
4033
  displayName: string | null;
@@ -4046,12 +4045,12 @@ declare class UserProfilesRepository extends BaseRepository {
4046
4045
  location: string | null;
4047
4046
  company: string | null;
4048
4047
  jobTitle: string | null;
4048
+ metadata: Record<string, any> | null;
4049
4049
  }>;
4050
4050
  /**
4051
4051
  * 프로필 삭제 (by User ID)
4052
4052
  */
4053
4053
  deleteByUserId(userId: number): Promise<{
4054
- metadata: Record<string, any> | null;
4055
4054
  userId: number;
4056
4055
  id: number;
4057
4056
  displayName: string | null;
@@ -4069,6 +4068,7 @@ declare class UserProfilesRepository extends BaseRepository {
4069
4068
  location: string | null;
4070
4069
  company: string | null;
4071
4070
  jobTitle: string | null;
4071
+ metadata: Record<string, any> | null;
4072
4072
  }>;
4073
4073
  /**
4074
4074
  * 프로필 Upsert (by User ID)
@@ -4077,7 +4077,6 @@ declare class UserProfilesRepository extends BaseRepository {
4077
4077
  * 새로 생성 시 displayName은 필수 (없으면 'User'로 설정)
4078
4078
  */
4079
4079
  upsertByUserId(userId: number, data: Partial<Omit<NewUserProfile, 'userId'>>): Promise<{
4080
- metadata: Record<string, any> | null;
4081
4080
  userId: number;
4082
4081
  id: number;
4083
4082
  displayName: string | null;
@@ -4095,6 +4094,7 @@ declare class UserProfilesRepository extends BaseRepository {
4095
4094
  location: string | null;
4096
4095
  company: string | null;
4097
4096
  jobTitle: string | null;
4097
+ metadata: Record<string, any> | null;
4098
4098
  }>;
4099
4099
  /**
4100
4100
  * User ID로 프로필 데이터 조회 (formatted)
@@ -4221,16 +4221,16 @@ declare class InvitationsRepository extends BaseRepository {
4221
4221
  * 초대 생성
4222
4222
  */
4223
4223
  create(data: NewInvitation): Promise<{
4224
+ status: "pending" | "accepted" | "expired" | "cancelled";
4224
4225
  email: string;
4225
- metadata: Record<string, any> | null;
4226
4226
  id: number;
4227
- roleId: number;
4228
4227
  createdAt: Date;
4229
4228
  updatedAt: Date;
4230
- status: "pending" | "accepted" | "expired" | "cancelled";
4229
+ roleId: number;
4230
+ metadata: Record<string, any> | null;
4231
+ expiresAt: Date;
4231
4232
  token: string;
4232
4233
  invitedBy: number;
4233
- expiresAt: Date;
4234
4234
  acceptedAt: Date | null;
4235
4235
  cancelledAt: Date | null;
4236
4236
  }>;
@@ -4255,16 +4255,16 @@ declare class InvitationsRepository extends BaseRepository {
4255
4255
  * 초대 삭제
4256
4256
  */
4257
4257
  deleteById(id: number): Promise<{
4258
+ status: "pending" | "accepted" | "expired" | "cancelled";
4258
4259
  email: string;
4259
- metadata: Record<string, any> | null;
4260
4260
  id: number;
4261
- roleId: number;
4262
4261
  createdAt: Date;
4263
4262
  updatedAt: Date;
4264
- status: "pending" | "accepted" | "expired" | "cancelled";
4263
+ roleId: number;
4264
+ metadata: Record<string, any> | null;
4265
+ expiresAt: Date;
4265
4266
  token: string;
4266
4267
  invitedBy: number;
4267
- expiresAt: Date;
4268
4268
  acceptedAt: Date | null;
4269
4269
  cancelledAt: Date | null;
4270
4270
  }>;
@@ -4971,17 +4971,17 @@ declare function getOptionalAuth(c: Context | {
4971
4971
  declare function getUser(c: Context | {
4972
4972
  raw: Context;
4973
4973
  }): {
4974
+ username: string | null;
4975
+ status: "active" | "inactive" | "suspended";
4974
4976
  email: string | null;
4975
4977
  phone: string | null;
4976
4978
  id: number;
4979
+ createdAt: Date;
4980
+ updatedAt: Date;
4977
4981
  publicId: string;
4978
- username: string | null;
4979
4982
  passwordHash: string | null;
4980
4983
  passwordChangeRequired: boolean;
4981
4984
  roleId: number;
4982
- createdAt: Date;
4983
- updatedAt: Date;
4984
- status: "active" | "inactive" | "suspended";
4985
4985
  emailVerifiedAt: Date | null;
4986
4986
  phoneVerifiedAt: Date | null;
4987
4987
  lastLoginAt: Date | null;
@@ -5601,9 +5601,9 @@ declare const invitationCreatedEvent: _spfn_core_event.EventDef<{
5601
5601
  } | undefined;
5602
5602
  email: string;
5603
5603
  roleId: number;
5604
+ expiresAt: string;
5604
5605
  token: string;
5605
5606
  invitedBy: string;
5606
- expiresAt: string;
5607
5607
  invitationId: string;
5608
5608
  isResend: boolean;
5609
5609
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spfn/auth",
3
- "version": "0.2.0-beta.57",
3
+ "version": "0.2.0-beta.59",
4
4
  "type": "module",
5
5
  "description": "Authentication, authorization, and RBAC module for SPFN",
6
6
  "main": "./dist/index.js",
@@ -85,7 +85,7 @@
85
85
  "jose": "^6.1.0",
86
86
  "jsonwebtoken": "^9.0.2",
87
87
  "postgres": "^3.4.0",
88
- "@spfn/core": "0.2.0-beta.39",
88
+ "@spfn/core": "0.2.0-beta.42",
89
89
  "@spfn/notification": "0.1.0-beta.17"
90
90
  },
91
91
  "devDependencies": {
@@ -96,14 +96,14 @@
96
96
  "@types/react-dom": "^19.2.2",
97
97
  "@vitest/coverage-v8": "^4.0.6",
98
98
  "drizzle-kit": "^0.31.6",
99
- "hono": "^4.10.6",
99
+ "hono": "^4.12.4",
100
100
  "madge": "^8.0.0",
101
- "next": "^16.0.0",
101
+ "next": "^16.2.2",
102
102
  "tsup": "^8.5.0",
103
103
  "tsx": "^4.20.6",
104
104
  "typescript": "^5.3.3",
105
105
  "vitest": "^4.0.6",
106
- "spfn": "0.2.0-beta.40"
106
+ "spfn": "0.2.0-beta.45"
107
107
  },
108
108
  "peerDependencies": {
109
109
  "next": "^15.0.0 || ^16.0.0"