@spfn/auth 0.2.0-beta.90 → 0.2.0-beta.91

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.
package/dist/server.d.ts CHANGED
@@ -1,16 +1,17 @@
1
- import { k as AuthInitOptions, l as OAuthProvider, f as VerificationPurpose, j as PermissionCategory, n as AuthContext } from './authenticate-CnccboAg.js';
2
- export { ab as AuthProfileVerifier, C as ChangePasswordParams, ag as DeviceNameSchema, ae as EmailSchema, I as IssueOneTimeTokenResult, H as KEY_FINGERPRINT_PREFIX_LENGTH, K as KeySummary, t as LoginParams, L as LoginResult, u as LogoutParams, an as NativeVerifyOptions, al as NormalizedIdentity, a4 as OAuthCallbackParams, a5 as OAuthCallbackResult, ao as OAuthCodeExchangeOptions, a8 as OAuthNativeParams, d as OAuthNativeResult, a3 as OAuthStartParams, O as OAuthStartResult, am as OAuthTokens, ai as PasswordSchema, af as PhoneSchema, ah as PlatformSchema, s as RegisterParams, J as RegisterPublicKeyParams, a as RegisterResult, Q as RevokeAllKeysParams, c as RevokeAllKeysResult, N as RevokeKeyParams, M as RotateKeyParams, b as RotateKeyResult, x as SendVerificationCodeParams, S as SendVerificationCodeResult, aj as TargetTypeSchema, aq as UnlinkNotification, ar as UnlinkNotifyRejection, ap as UnlinkNotifyRequest, a6 as UnlinkNotifyResult, h as VERIFICATION_PURPOSES, g as VERIFICATION_TARGET_TYPES, ak as VerificationPurposeSchema, V as VerificationTargetType, y as VerifyCodeParams, z as VerifyCodeResult, m as authRouter, ac as authenticate, Z as buildOAuthErrorUrl, q as changePasswordService, a0 as getEnabledOAuthProviders, a1 as getGoogleAccessToken, at as getOAuthProvider, au as getRegisteredProviders, _ as isOAuthProviderEnabled, T as issueOneTimeTokenService, F as listKeysService, o as loginService, p as logoutService, Y as oauthCallbackService, a7 as oauthNativeService, X as oauthStartService, a2 as oauthUnlinkNotifyService, ad as optionalAuth, as as registerOAuthProvider, B as registerPublicKeyService, r as registerService, $ as requireEnabledProvider, aa as resolveAuthenticatedUser, G as revokeAllKeysService, E as revokeKeyService, D as rotateKeyService, a9 as selectAuthProfile, v as sendVerificationCodeService, w as verifyCodeService, W as verifyOneTimeTokenService } from './authenticate-CnccboAg.js';
1
+ import { A as AuthInitOptions, l as OAuthProvider, j as VerificationPurpose, h as PermissionCategory, n as AuthContext } from './authenticate-DlTGaBT8.js';
2
+ export { o as AuthProfileOutcome, p as AuthProfileVerifier, C as ChangePasswordParams, D as DeviceNameSchema, E as EmailSchema, I as IssueOneTimeTokenResult, q as KEY_FINGERPRINT_PREFIX_LENGTH, K as KeySummary, r as LoginParams, L as LoginResult, s as LogoutParams, N as NativeVerifyOptions, t as NormalizedIdentity, u as OAuthCallbackParams, v as OAuthCallbackResult, w as OAuthCodeExchangeOptions, x as OAuthNativeParams, d as OAuthNativeResult, y as OAuthStartParams, O as OAuthStartResult, z as OAuthTokens, B as PasswordSchema, F as PhoneSchema, G as PlatformSchema, H as RegisterParams, J as RegisterPublicKeyParams, a as RegisterResult, M as RevokeAllKeysParams, c as RevokeAllKeysResult, Q as RevokeKeyParams, T as RotateKeyParams, b as RotateKeyResult, W as SendVerificationCodeParams, S as SendVerificationCodeResult, X as TargetTypeSchema, Y as UnlinkNotification, Z as UnlinkNotifyRejection, _ as UnlinkNotifyRequest, $ as UnlinkNotifyResult, V as VERIFICATION_PURPOSES, i as VERIFICATION_TARGET_TYPES, a0 as VerificationPurposeSchema, k as VerificationTargetType, a1 as VerifyCodeParams, a2 as VerifyCodeResult, m as authRouter, a3 as authenticate, a4 as buildOAuthErrorUrl, a5 as changePasswordService, a6 as getEnabledOAuthProviders, a7 as getGoogleAccessToken, a8 as getOAuthProvider, a9 as getRegisteredProviders, aa as isOAuthProviderEnabled, ab as issueOneTimeTokenService, ac as listKeysService, ad as loginService, ae as logoutService, af as oauthCallbackService, ag as oauthNativeService, ah as oauthStartService, ai as oauthUnlinkNotifyService, aj as optionalAuth, ak as registerOAuthProvider, al as registerPublicKeyService, am as registerService, an as requireEnabledProvider, ao as resolveAuthenticatedUser, ap as revokeAllKeysService, aq as revokeKeyService, ar as rotateKeyService, as as runAuthProfile, at as selectAuthProfile, au as sendVerificationCodeService, av as verifyCodeService, aw as verifyOneTimeTokenService } from './authenticate-DlTGaBT8.js';
3
3
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
4
- import { K as KeyAlgorithmType, f as InvitationStatus, h as SocialProvider, j as AccountDeletionRequestedBy, k as PurgeStrategy } from './types-CD95yudz.js';
5
- export { b as ACCOUNT_DELETION_REQUESTED_BY, A as ACCOUNT_DELETION_REQUEST_STATUSES, i as AccountDeletionRequestStatus, I as INVITATION_STATUSES, a as KEY_ALGORITHM, e as KEY_DEVICE_NAME_MAX_LENGTH, c as KEY_PLATFORM, d as KeyPlatformType, P as PURGE_STRATEGIES, S as SOCIAL_PROVIDERS, U as USER_STATUSES, g as UserStatus } from './types-CD95yudz.js';
4
+ import { K as KeyAlgorithmType, d as InvitationStatus, j as SocialProvider, c as AccountDeletionRequestedBy, i as PurgeStrategy } from './types-DYyhze28.js';
5
+ export { A as ACCOUNT_DELETION_REQUESTED_BY, a as ACCOUNT_DELETION_REQUEST_STATUSES, b as AccountDeletionRequestStatus, I as INVITATION_STATUSES, e as KEY_ALGORITHM, f as KEY_DEVICE_NAME_MAX_LENGTH, g as KEY_PLATFORM, h as KeyPlatformType, P as PURGE_STRATEGIES, S as SOCIAL_PROVIDERS, U as USER_STATUSES, k as UserStatus } from './types-DYyhze28.js';
6
6
  import { UserProfile as UserProfile$1, ProfileInfo } from '@spfn/auth';
7
7
  import { BaseRepository } from '@spfn/core/db';
8
+ import { c as ClientIdentity } from './wire-version-CtzMKvBB.js';
8
9
  import { Context } from 'hono';
9
10
  import * as _spfn_core_route from '@spfn/core/route';
10
11
  import { Algorithm } from 'jsonwebtoken';
11
- export { S as SessionData, g as getSessionInfo, s as sealSession, a as shouldRefreshSession, u as unsealSession } from './session-CFK4BT25.js';
12
+ export { S as SessionData, g as getSessionInfo, s as sealSession, a as shouldRefreshSession, u as unsealSession } from './session-DTHahDQ9.js';
12
13
  import { JWTPayload } from 'jose';
13
- import { SSETokenStore, SSETokenManager } from '@spfn/core/event/sse';
14
+ import { SSETokenManager, SSETokenStore } from '@spfn/core/event/sse';
14
15
  import * as _spfn_core_logger from '@spfn/core/logger';
15
16
  import * as _spfn_core_job from '@spfn/core/job';
16
17
  import * as _spfn_core_event from '@spfn/core/event';
@@ -1317,7 +1318,7 @@ declare function getAuthSessionService(userId: string | number | bigint): Promis
1317
1318
  id: number;
1318
1319
  name: string;
1319
1320
  displayName: string;
1320
- category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
1321
+ category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
1321
1322
  }[];
1322
1323
  userId: number;
1323
1324
  publicId: string;
@@ -1763,7 +1764,7 @@ declare const accountDeletionRequests: drizzle_orm_pg_core.PgTableWithColumns<{
1763
1764
  name: string;
1764
1765
  tableName: "account_deletion_requests";
1765
1766
  dataType: "string enum";
1766
- data: "self" | "admin";
1767
+ data: "admin" | "self";
1767
1768
  driverParam: string;
1768
1769
  notNull: true;
1769
1770
  hasDefault: true;
@@ -2371,6 +2372,66 @@ declare const userPublicKeys: drizzle_orm_pg_core.PgTableWithColumns<{
2371
2372
  identity: undefined;
2372
2373
  generated: undefined;
2373
2374
  }>;
2375
+ clientKind: drizzle_orm_pg_core.PgBuildColumn<"user_public_keys", drizzle_orm_pg_core.PgTextBuilder<["web", "ios", "android"] & [string, ...string[]]>, {
2376
+ name: string;
2377
+ tableName: "user_public_keys";
2378
+ dataType: "string enum";
2379
+ data: "ios" | "android" | "web";
2380
+ driverParam: string;
2381
+ notNull: false;
2382
+ hasDefault: false;
2383
+ isPrimaryKey: false;
2384
+ isAutoincrement: false;
2385
+ hasRuntimeDefault: false;
2386
+ enumValues: ["web", "ios", "android"] & [string, ...string[]];
2387
+ identity: undefined;
2388
+ generated: undefined;
2389
+ }>;
2390
+ clientVersion: drizzle_orm_pg_core.PgBuildColumn<"user_public_keys", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, {
2391
+ name: string;
2392
+ tableName: "user_public_keys";
2393
+ dataType: "string";
2394
+ data: string;
2395
+ driverParam: string;
2396
+ notNull: false;
2397
+ hasDefault: false;
2398
+ isPrimaryKey: false;
2399
+ isAutoincrement: false;
2400
+ hasRuntimeDefault: false;
2401
+ enumValues: undefined;
2402
+ identity: undefined;
2403
+ generated: undefined;
2404
+ }>;
2405
+ clientContractVersion: drizzle_orm_pg_core.PgBuildColumn<"user_public_keys", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, {
2406
+ name: string;
2407
+ tableName: "user_public_keys";
2408
+ dataType: "string";
2409
+ data: string;
2410
+ driverParam: string;
2411
+ notNull: false;
2412
+ hasDefault: false;
2413
+ isPrimaryKey: false;
2414
+ isAutoincrement: false;
2415
+ hasRuntimeDefault: false;
2416
+ enumValues: undefined;
2417
+ identity: undefined;
2418
+ generated: undefined;
2419
+ }>;
2420
+ clientSeenAt: drizzle_orm_pg_core.PgBuildColumn<"user_public_keys", drizzle_orm_pg_core.PgTimestampBuilder, {
2421
+ name: string;
2422
+ tableName: "user_public_keys";
2423
+ dataType: "object date";
2424
+ data: Date;
2425
+ driverParam: string;
2426
+ notNull: false;
2427
+ hasDefault: false;
2428
+ isPrimaryKey: false;
2429
+ isAutoincrement: false;
2430
+ hasRuntimeDefault: false;
2431
+ enumValues: undefined;
2432
+ identity: undefined;
2433
+ generated: undefined;
2434
+ }>;
2374
2435
  isActive: drizzle_orm_pg_core.PgBuildColumn<"user_public_keys", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgBooleanBuilder>>, {
2375
2436
  name: string;
2376
2437
  tableName: "user_public_keys";
@@ -2907,7 +2968,7 @@ declare const permissions: drizzle_orm_pg_core.PgTableWithColumns<{
2907
2968
  name: string;
2908
2969
  tableName: "permissions";
2909
2970
  dataType: "string enum";
2910
- data: "custom" | "user" | "auth" | "rbac" | "system";
2971
+ data: "auth" | "custom" | "user" | "rbac" | "system";
2911
2972
  driverParam: string;
2912
2973
  notNull: false;
2913
2974
  hasDefault: false;
@@ -3496,15 +3557,15 @@ declare class UsersRepository extends BaseRepository {
3496
3557
  create(data: NewUser): Promise<{
3497
3558
  email: string | null;
3498
3559
  phone: string | null;
3499
- status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
3500
- username: string | null;
3501
3560
  id: number;
3502
- createdAt: Date;
3503
- updatedAt: Date;
3504
3561
  publicId: string;
3562
+ username: string | null;
3505
3563
  passwordHash: string | null;
3506
3564
  passwordChangeRequired: boolean;
3507
3565
  roleId: number;
3566
+ createdAt: Date;
3567
+ updatedAt: Date;
3568
+ status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
3508
3569
  emailVerifiedAt: Date | null;
3509
3570
  phoneVerifiedAt: Date | null;
3510
3571
  lastLoginAt: Date | null;
@@ -3611,15 +3672,15 @@ declare class UsersRepository extends BaseRepository {
3611
3672
  deleteById(id: number): Promise<{
3612
3673
  email: string | null;
3613
3674
  phone: string | null;
3614
- status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
3615
- username: string | null;
3616
3675
  id: number;
3617
- createdAt: Date;
3618
- updatedAt: Date;
3619
3676
  publicId: string;
3677
+ username: string | null;
3620
3678
  passwordHash: string | null;
3621
3679
  passwordChangeRequired: boolean;
3622
3680
  roleId: number;
3681
+ createdAt: Date;
3682
+ updatedAt: Date;
3683
+ status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
3623
3684
  emailVerifiedAt: Date | null;
3624
3685
  phoneVerifiedAt: Date | null;
3625
3686
  lastLoginAt: Date | null;
@@ -3644,7 +3705,7 @@ declare class UsersRepository extends BaseRepository {
3644
3705
  id: number;
3645
3706
  name: string;
3646
3707
  displayName: string;
3647
- category: "custom" | "user" | "auth" | "rbac" | "system" | undefined;
3708
+ category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
3648
3709
  }[];
3649
3710
  }>;
3650
3711
  /**
@@ -3713,6 +3774,10 @@ declare class KeysRepository extends BaseRepository {
3713
3774
  fingerprint: string;
3714
3775
  deviceName: string | null;
3715
3776
  platform: "ios" | "android" | "web" | "desktop" | null;
3777
+ clientKind: "ios" | "android" | "web" | null;
3778
+ clientVersion: string | null;
3779
+ clientContractVersion: string | null;
3780
+ clientSeenAt: Date | null;
3716
3781
  isActive: boolean;
3717
3782
  createdAt: Date;
3718
3783
  lastUsedAt: Date | null;
@@ -3733,6 +3798,10 @@ declare class KeysRepository extends BaseRepository {
3733
3798
  fingerprint: string;
3734
3799
  deviceName: string | null;
3735
3800
  platform: "ios" | "android" | "web" | "desktop" | null;
3801
+ clientKind: "ios" | "android" | "web" | null;
3802
+ clientVersion: string | null;
3803
+ clientContractVersion: string | null;
3804
+ clientSeenAt: Date | null;
3736
3805
  isActive: boolean;
3737
3806
  createdAt: Date;
3738
3807
  lastUsedAt: Date | null;
@@ -3753,6 +3822,10 @@ declare class KeysRepository extends BaseRepository {
3753
3822
  fingerprint: string;
3754
3823
  deviceName: string | null;
3755
3824
  platform: "ios" | "android" | "web" | "desktop" | null;
3825
+ clientKind: "ios" | "android" | "web" | null;
3826
+ clientVersion: string | null;
3827
+ clientContractVersion: string | null;
3828
+ clientSeenAt: Date | null;
3756
3829
  isActive: boolean;
3757
3830
  createdAt: Date;
3758
3831
  lastUsedAt: Date | null;
@@ -3787,18 +3860,22 @@ declare class KeysRepository extends BaseRepository {
3787
3860
  * Write primary 사용
3788
3861
  */
3789
3862
  create(data: NewUserPublicKey): Promise<{
3790
- userId: number;
3791
- keyId: string;
3792
- id: number;
3793
- isActive: boolean;
3794
- createdAt: Date;
3795
3863
  publicKey: string;
3796
- algorithm: "ES256" | "RS256";
3864
+ keyId: string;
3797
3865
  fingerprint: string;
3866
+ algorithm: "ES256" | "RS256";
3798
3867
  deviceName: string | null;
3799
3868
  platform: "ios" | "android" | "web" | "desktop" | null;
3800
- lastUsedAt: Date | null;
3869
+ userId: number;
3870
+ id: number;
3871
+ isActive: boolean;
3872
+ createdAt: Date;
3801
3873
  expiresAt: Date | null;
3874
+ clientKind: "ios" | "android" | "web" | null;
3875
+ clientVersion: string | null;
3876
+ clientContractVersion: string | null;
3877
+ clientSeenAt: Date | null;
3878
+ lastUsedAt: Date | null;
3802
3879
  revokedAt: Date | null;
3803
3880
  revokedReason: string | null;
3804
3881
  }>;
@@ -3815,6 +3892,10 @@ declare class KeysRepository extends BaseRepository {
3815
3892
  fingerprint: string;
3816
3893
  deviceName: string | null;
3817
3894
  platform: "ios" | "android" | "web" | "desktop" | null;
3895
+ clientKind: "ios" | "android" | "web" | null;
3896
+ clientVersion: string | null;
3897
+ clientContractVersion: string | null;
3898
+ clientSeenAt: Date | null;
3818
3899
  isActive: boolean;
3819
3900
  createdAt: Date;
3820
3901
  lastUsedAt: Date | null;
@@ -3838,6 +3919,10 @@ declare class KeysRepository extends BaseRepository {
3838
3919
  fingerprint: string;
3839
3920
  deviceName: string | null;
3840
3921
  platform: "ios" | "android" | "web" | "desktop" | null;
3922
+ clientKind: "ios" | "android" | "web" | null;
3923
+ clientVersion: string | null;
3924
+ clientContractVersion: string | null;
3925
+ clientSeenAt: Date | null;
3841
3926
  isActive: boolean;
3842
3927
  createdAt: Date;
3843
3928
  lastUsedAt: Date | null;
@@ -3861,6 +3946,10 @@ declare class KeysRepository extends BaseRepository {
3861
3946
  fingerprint: string;
3862
3947
  deviceName: string | null;
3863
3948
  platform: "ios" | "android" | "web" | "desktop" | null;
3949
+ clientKind: "ios" | "android" | "web" | null;
3950
+ clientVersion: string | null;
3951
+ clientContractVersion: string | null;
3952
+ clientSeenAt: Date | null;
3864
3953
  isActive: boolean;
3865
3954
  createdAt: Date;
3866
3955
  lastUsedAt: Date | null;
@@ -3873,18 +3962,22 @@ declare class KeysRepository extends BaseRepository {
3873
3962
  * Write primary 사용
3874
3963
  */
3875
3964
  deleteByKeyIdAndUserId(keyId: string, userId: number): Promise<{
3876
- userId: number;
3877
- keyId: string;
3878
- id: number;
3879
- isActive: boolean;
3880
- createdAt: Date;
3881
3965
  publicKey: string;
3882
- algorithm: "ES256" | "RS256";
3966
+ keyId: string;
3883
3967
  fingerprint: string;
3968
+ algorithm: "ES256" | "RS256";
3884
3969
  deviceName: string | null;
3885
3970
  platform: "ios" | "android" | "web" | "desktop" | null;
3886
- lastUsedAt: Date | null;
3971
+ userId: number;
3972
+ id: number;
3973
+ isActive: boolean;
3974
+ createdAt: Date;
3887
3975
  expiresAt: Date | null;
3976
+ clientKind: "ios" | "android" | "web" | null;
3977
+ clientVersion: string | null;
3978
+ clientContractVersion: string | null;
3979
+ clientSeenAt: Date | null;
3980
+ lastUsedAt: Date | null;
3888
3981
  revokedAt: Date | null;
3889
3982
  revokedReason: string | null;
3890
3983
  }>;
@@ -3909,6 +4002,10 @@ declare class KeysRepository extends BaseRepository {
3909
4002
  fingerprint: string;
3910
4003
  deviceName: string | null;
3911
4004
  platform: "ios" | "android" | "web" | "desktop" | null;
4005
+ clientKind: "ios" | "android" | "web" | null;
4006
+ clientVersion: string | null;
4007
+ clientContractVersion: string | null;
4008
+ clientSeenAt: Date | null;
3912
4009
  isActive: boolean;
3913
4010
  createdAt: Date;
3914
4011
  lastUsedAt: Date | null;
@@ -3929,6 +4026,10 @@ declare class KeysRepository extends BaseRepository {
3929
4026
  fingerprint: string;
3930
4027
  deviceName: string | null;
3931
4028
  platform: "ios" | "android" | "web" | "desktop" | null;
4029
+ clientKind: "ios" | "android" | "web" | null;
4030
+ clientVersion: string | null;
4031
+ clientContractVersion: string | null;
4032
+ clientSeenAt: Date | null;
3932
4033
  isActive: boolean;
3933
4034
  createdAt: Date;
3934
4035
  lastUsedAt: Date | null;
@@ -3952,6 +4053,10 @@ declare class KeysRepository extends BaseRepository {
3952
4053
  fingerprint: string;
3953
4054
  deviceName: string | null;
3954
4055
  platform: "ios" | "android" | "web" | "desktop" | null;
4056
+ clientKind: "ios" | "android" | "web" | null;
4057
+ clientVersion: string | null;
4058
+ clientContractVersion: string | null;
4059
+ clientSeenAt: Date | null;
3955
4060
  isActive: boolean;
3956
4061
  createdAt: Date;
3957
4062
  lastUsedAt: Date | null;
@@ -3972,6 +4077,10 @@ declare class KeysRepository extends BaseRepository {
3972
4077
  fingerprint: string;
3973
4078
  deviceName: string | null;
3974
4079
  platform: "ios" | "android" | "web" | "desktop" | null;
4080
+ clientKind: "ios" | "android" | "web" | null;
4081
+ clientVersion: string | null;
4082
+ clientContractVersion: string | null;
4083
+ clientSeenAt: Date | null;
3975
4084
  isActive: boolean;
3976
4085
  createdAt: Date;
3977
4086
  lastUsedAt: Date | null;
@@ -3987,8 +4096,19 @@ declare class KeysRepository extends BaseRepository {
3987
4096
  * LAST_USED_THROTTLE_MS), so a busy key isn't UPDATEd on every request. The
3988
4097
  * throttle lives in the WHERE clause — atomic, no read-then-write race. No
3989
4098
  * RETURNING (callers fire-and-forget and discard the row).
4099
+ *
4100
+ * `identity` is what the client said about itself on this request. It is
4101
+ * recorded on the same row, and the throttle does not apply to it: a version
4102
+ * that changed is written immediately, because an app update is the event this
4103
+ * column exists to catch and waiting a minute to notice it serves nobody. A
4104
+ * version that did not change writes nothing extra — the UPDATE the throttle
4105
+ * was already going to do carries it.
4106
+ *
4107
+ * `clientSeenAt` moves only when one of the three values differs from what is
4108
+ * stored, so it answers "since when has this device been on this release"
4109
+ * rather than "when was it last seen", which lastUsedAt already answers.
3990
4110
  */
3991
- updateLastUsedById(id: number): Promise<void>;
4111
+ updateLastUsedById(id: number, identity?: ClientIdentity | null): Promise<void>;
3992
4112
  }
3993
4113
  declare const keysRepository: KeysRepository;
3994
4114
 
@@ -4046,14 +4166,14 @@ declare class VerificationCodesRepository extends BaseRepository {
4046
4166
  * Write primary 사용
4047
4167
  */
4048
4168
  create(data: NewVerificationCode): Promise<{
4169
+ target: string;
4170
+ targetType: "email" | "phone";
4171
+ purpose: "registration" | "login" | "password_reset" | "email_change" | "phone_change" | "account_deletion";
4172
+ code: string;
4049
4173
  id: number;
4050
4174
  createdAt: Date;
4051
4175
  updatedAt: Date;
4052
4176
  expiresAt: Date;
4053
- target: string;
4054
- targetType: "email" | "phone";
4055
- code: string;
4056
- purpose: "registration" | "login" | "password_reset" | "email_change" | "phone_change" | "account_deletion";
4057
4177
  usedAt: Date | null;
4058
4178
  attempts: number;
4059
4179
  }>;
@@ -4186,8 +4306,8 @@ declare class RolesRepository extends BaseRepository {
4186
4306
  */
4187
4307
  create(data: NewRoleEntity): Promise<{
4188
4308
  description: string | null;
4189
- id: number;
4190
4309
  name: string;
4310
+ id: number;
4191
4311
  displayName: string;
4192
4312
  isBuiltin: boolean;
4193
4313
  isSystem: boolean;
@@ -4216,8 +4336,8 @@ declare class RolesRepository extends BaseRepository {
4216
4336
  */
4217
4337
  deleteById(id: number): Promise<{
4218
4338
  description: string | null;
4219
- id: number;
4220
4339
  name: string;
4340
+ id: number;
4221
4341
  displayName: string;
4222
4342
  isBuiltin: boolean;
4223
4343
  isSystem: boolean;
@@ -4250,7 +4370,7 @@ declare class PermissionsRepository extends BaseRepository {
4250
4370
  name: string;
4251
4371
  displayName: string;
4252
4372
  description: string | null;
4253
- category: "custom" | "user" | "auth" | "rbac" | "system" | null;
4373
+ category: "auth" | "custom" | "user" | "rbac" | "system" | null;
4254
4374
  isBuiltin: boolean;
4255
4375
  isSystem: boolean;
4256
4376
  isActive: boolean;
@@ -4266,7 +4386,7 @@ declare class PermissionsRepository extends BaseRepository {
4266
4386
  name: string;
4267
4387
  displayName: string;
4268
4388
  description: string | null;
4269
- category: "custom" | "user" | "auth" | "rbac" | "system" | null;
4389
+ category: "auth" | "custom" | "user" | "rbac" | "system" | null;
4270
4390
  isBuiltin: boolean;
4271
4391
  isSystem: boolean;
4272
4392
  isActive: boolean;
@@ -4306,7 +4426,7 @@ declare class PermissionsRepository extends BaseRepository {
4306
4426
  name: string;
4307
4427
  displayName: string;
4308
4428
  description: string | null;
4309
- category: "custom" | "user" | "auth" | "rbac" | "system" | null;
4429
+ category: "auth" | "custom" | "user" | "rbac" | "system" | null;
4310
4430
  isBuiltin: boolean;
4311
4431
  isSystem: boolean;
4312
4432
  isActive: boolean;
@@ -4317,16 +4437,16 @@ declare class PermissionsRepository extends BaseRepository {
4317
4437
  */
4318
4438
  deleteById(id: number): Promise<{
4319
4439
  description: string | null;
4320
- id: number;
4440
+ metadata: Record<string, any> | null;
4321
4441
  name: string;
4442
+ id: number;
4322
4443
  displayName: string;
4323
4444
  isBuiltin: boolean;
4324
4445
  isSystem: boolean;
4325
4446
  isActive: boolean;
4326
4447
  createdAt: Date;
4327
4448
  updatedAt: Date;
4328
- metadata: Record<string, any> | null;
4329
- category: "custom" | "user" | "auth" | "rbac" | "system" | null;
4449
+ category: "auth" | "custom" | "user" | "rbac" | "system" | null;
4330
4450
  }>;
4331
4451
  }
4332
4452
  declare const permissionsRepository: PermissionsRepository;
@@ -4371,9 +4491,9 @@ declare class RolePermissionsRepository extends BaseRepository {
4371
4491
  */
4372
4492
  createMany(data: NewRolePermission[]): Promise<{
4373
4493
  id: number;
4494
+ roleId: number;
4374
4495
  createdAt: Date;
4375
4496
  updatedAt: Date;
4376
- roleId: number;
4377
4497
  permissionId: number;
4378
4498
  }[]>;
4379
4499
  /**
@@ -4389,9 +4509,9 @@ declare class RolePermissionsRepository extends BaseRepository {
4389
4509
  */
4390
4510
  setPermissionsForRole(roleId: number, permissionIds: number[]): Promise<{
4391
4511
  id: number;
4512
+ roleId: number;
4392
4513
  createdAt: Date;
4393
4514
  updatedAt: Date;
4394
- roleId: number;
4395
4515
  permissionId: number;
4396
4516
  }[]>;
4397
4517
  }
@@ -4456,9 +4576,9 @@ declare class UserPermissionsRepository extends BaseRepository {
4456
4576
  id: number;
4457
4577
  createdAt: Date;
4458
4578
  updatedAt: Date;
4459
- expiresAt: Date | null;
4460
- reason: string | null;
4461
4579
  permissionId: number;
4580
+ reason: string | null;
4581
+ expiresAt: Date | null;
4462
4582
  granted: boolean;
4463
4583
  }>;
4464
4584
  /**
@@ -4482,9 +4602,9 @@ declare class UserPermissionsRepository extends BaseRepository {
4482
4602
  id: number;
4483
4603
  createdAt: Date;
4484
4604
  updatedAt: Date;
4485
- expiresAt: Date | null;
4486
- reason: string | null;
4487
4605
  permissionId: number;
4606
+ reason: string | null;
4607
+ expiresAt: Date | null;
4488
4608
  granted: boolean;
4489
4609
  }>;
4490
4610
  /**
@@ -4563,6 +4683,7 @@ declare class UserProfilesRepository extends BaseRepository {
4563
4683
  * 프로필 생성
4564
4684
  */
4565
4685
  create(data: NewUserProfile): Promise<{
4686
+ metadata: Record<string, any> | null;
4566
4687
  userId: number;
4567
4688
  id: number;
4568
4689
  displayName: string | null;
@@ -4580,7 +4701,6 @@ declare class UserProfilesRepository extends BaseRepository {
4580
4701
  location: string | null;
4581
4702
  company: string | null;
4582
4703
  jobTitle: string | null;
4583
- metadata: Record<string, any> | null;
4584
4704
  }>;
4585
4705
  /**
4586
4706
  * 프로필 업데이트 (by ID)
@@ -4632,6 +4752,7 @@ declare class UserProfilesRepository extends BaseRepository {
4632
4752
  * 프로필 삭제 (by ID)
4633
4753
  */
4634
4754
  deleteById(id: number): Promise<{
4755
+ metadata: Record<string, any> | null;
4635
4756
  userId: number;
4636
4757
  id: number;
4637
4758
  displayName: string | null;
@@ -4649,12 +4770,12 @@ declare class UserProfilesRepository extends BaseRepository {
4649
4770
  location: string | null;
4650
4771
  company: string | null;
4651
4772
  jobTitle: string | null;
4652
- metadata: Record<string, any> | null;
4653
4773
  }>;
4654
4774
  /**
4655
4775
  * 프로필 삭제 (by User ID)
4656
4776
  */
4657
4777
  deleteByUserId(userId: number): Promise<{
4778
+ metadata: Record<string, any> | null;
4658
4779
  userId: number;
4659
4780
  id: number;
4660
4781
  displayName: string | null;
@@ -4672,7 +4793,6 @@ declare class UserProfilesRepository extends BaseRepository {
4672
4793
  location: string | null;
4673
4794
  company: string | null;
4674
4795
  jobTitle: string | null;
4675
- metadata: Record<string, any> | null;
4676
4796
  }>;
4677
4797
  /**
4678
4798
  * 프로필 Upsert (by User ID)
@@ -4681,6 +4801,7 @@ declare class UserProfilesRepository extends BaseRepository {
4681
4801
  * 새로 생성 시 displayName은 필수 (없으면 'User'로 설정)
4682
4802
  */
4683
4803
  upsertByUserId(userId: number, data: Partial<Omit<NewUserProfile, 'userId'>>): Promise<{
4804
+ metadata: Record<string, any> | null;
4684
4805
  userId: number;
4685
4806
  id: number;
4686
4807
  displayName: string | null;
@@ -4698,7 +4819,6 @@ declare class UserProfilesRepository extends BaseRepository {
4698
4819
  location: string | null;
4699
4820
  company: string | null;
4700
4821
  jobTitle: string | null;
4701
- metadata: Record<string, any> | null;
4702
4822
  }>;
4703
4823
  /**
4704
4824
  * User ID로 프로필 데이터 조회 (formatted)
@@ -4826,15 +4946,15 @@ declare class InvitationsRepository extends BaseRepository {
4826
4946
  */
4827
4947
  create(data: NewInvitation): Promise<{
4828
4948
  email: string;
4829
- status: "pending" | "accepted" | "expired" | "cancelled";
4949
+ metadata: Record<string, any> | null;
4830
4950
  id: number;
4951
+ roleId: number;
4831
4952
  createdAt: Date;
4832
4953
  updatedAt: Date;
4833
- roleId: number;
4834
- metadata: Record<string, any> | null;
4835
- expiresAt: Date;
4954
+ status: "pending" | "accepted" | "expired" | "cancelled";
4836
4955
  token: string;
4837
4956
  invitedBy: number;
4957
+ expiresAt: Date;
4838
4958
  acceptedAt: Date | null;
4839
4959
  cancelledAt: Date | null;
4840
4960
  }>;
@@ -4860,15 +4980,15 @@ declare class InvitationsRepository extends BaseRepository {
4860
4980
  */
4861
4981
  deleteById(id: number): Promise<{
4862
4982
  email: string;
4863
- status: "pending" | "accepted" | "expired" | "cancelled";
4983
+ metadata: Record<string, any> | null;
4864
4984
  id: number;
4985
+ roleId: number;
4865
4986
  createdAt: Date;
4866
4987
  updatedAt: Date;
4867
- roleId: number;
4868
- metadata: Record<string, any> | null;
4869
- expiresAt: Date;
4988
+ status: "pending" | "accepted" | "expired" | "cancelled";
4870
4989
  token: string;
4871
4990
  invitedBy: number;
4991
+ expiresAt: Date;
4872
4992
  acceptedAt: Date | null;
4873
4993
  cancelledAt: Date | null;
4874
4994
  }>;
@@ -5106,9 +5226,9 @@ declare class SocialAccountsRepository extends BaseRepository {
5106
5226
  createdAt: Date;
5107
5227
  updatedAt: Date;
5108
5228
  provider: "google" | "apple" | "github" | "kakao" | "naver" | "superself";
5229
+ accessToken: string | null;
5109
5230
  providerUserId: string;
5110
5231
  providerEmail: string | null;
5111
- accessToken: string | null;
5112
5232
  refreshToken: string | null;
5113
5233
  tokenExpiresAt: Date | null;
5114
5234
  }>;
@@ -5122,9 +5242,9 @@ declare class SocialAccountsRepository extends BaseRepository {
5122
5242
  createdAt: Date;
5123
5243
  updatedAt: Date;
5124
5244
  provider: "google" | "apple" | "github" | "kakao" | "naver" | "superself";
5245
+ accessToken: string | null;
5125
5246
  providerUserId: string;
5126
5247
  providerEmail: string | null;
5127
- accessToken: string | null;
5128
5248
  refreshToken: string | null;
5129
5249
  tokenExpiresAt: Date | null;
5130
5250
  }>;
@@ -5184,7 +5304,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5184
5304
  requestedAt: Date;
5185
5305
  purgeScheduledAt: Date;
5186
5306
  status: "pending" | "cancelled" | "completed";
5187
- requestedBy: "self" | "admin";
5307
+ requestedBy: "admin" | "self";
5188
5308
  reason: string | null;
5189
5309
  cancelledAt: Date | null;
5190
5310
  completedAt: Date | null;
@@ -5203,7 +5323,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5203
5323
  requestedAt: Date;
5204
5324
  purgeScheduledAt: Date;
5205
5325
  status: "pending" | "cancelled" | "completed";
5206
- requestedBy: "self" | "admin";
5326
+ requestedBy: "admin" | "self";
5207
5327
  reason: string | null;
5208
5328
  cancelledAt: Date | null;
5209
5329
  completedAt: Date | null;
@@ -5225,7 +5345,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5225
5345
  requestedAt: Date;
5226
5346
  purgeScheduledAt: Date;
5227
5347
  status: "pending" | "cancelled" | "completed";
5228
- requestedBy: "self" | "admin";
5348
+ requestedBy: "admin" | "self";
5229
5349
  reason: string | null;
5230
5350
  cancelledAt: Date | null;
5231
5351
  completedAt: Date | null;
@@ -5244,7 +5364,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5244
5364
  requestedAt: Date;
5245
5365
  purgeScheduledAt: Date;
5246
5366
  status: "pending" | "cancelled" | "completed";
5247
- requestedBy: "self" | "admin";
5367
+ requestedBy: "admin" | "self";
5248
5368
  reason: string | null;
5249
5369
  cancelledAt: Date | null;
5250
5370
  completedAt: Date | null;
@@ -5256,16 +5376,16 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5256
5376
  */
5257
5377
  create(data: NewAccountDeletionRequest): Promise<{
5258
5378
  userId: number | null;
5259
- status: "pending" | "cancelled" | "completed";
5260
- purgeScheduledAt: Date;
5261
5379
  id: number;
5262
5380
  createdAt: Date;
5263
5381
  updatedAt: Date;
5382
+ status: "pending" | "cancelled" | "completed";
5383
+ reason: string | null;
5384
+ purgeScheduledAt: Date;
5264
5385
  cancelledAt: Date | null;
5265
5386
  userPublicId: string;
5266
5387
  requestedAt: Date;
5267
- requestedBy: "self" | "admin";
5268
- reason: string | null;
5388
+ requestedBy: "admin" | "self";
5269
5389
  completedAt: Date | null;
5270
5390
  purgeStrategy: "anonymize" | "hard-delete" | null;
5271
5391
  }>;
@@ -5286,7 +5406,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5286
5406
  requestedAt: Date;
5287
5407
  purgeScheduledAt: Date;
5288
5408
  status: "pending" | "cancelled" | "completed";
5289
- requestedBy: "self" | "admin";
5409
+ requestedBy: "admin" | "self";
5290
5410
  reason: string | null;
5291
5411
  cancelledAt: Date | null;
5292
5412
  completedAt: Date | null;
@@ -5311,7 +5431,7 @@ declare class AccountDeletionRequestsRepository extends BaseRepository {
5311
5431
  requestedAt: Date;
5312
5432
  purgeScheduledAt: Date;
5313
5433
  status: "pending" | "cancelled" | "completed";
5314
- requestedBy: "self" | "admin";
5434
+ requestedBy: "admin" | "self";
5315
5435
  reason: string | null;
5316
5436
  cancelledAt: Date | null;
5317
5437
  completedAt: Date | null;
@@ -5763,15 +5883,15 @@ declare function getUser(c: Context | {
5763
5883
  }): {
5764
5884
  email: string | null;
5765
5885
  phone: string | null;
5766
- status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
5767
- username: string | null;
5768
5886
  id: number;
5769
- createdAt: Date;
5770
- updatedAt: Date;
5771
5887
  publicId: string;
5888
+ username: string | null;
5772
5889
  passwordHash: string | null;
5773
5890
  passwordChangeRequired: boolean;
5774
5891
  roleId: number;
5892
+ createdAt: Date;
5893
+ updatedAt: Date;
5894
+ status: "active" | "inactive" | "suspended" | "pending_deletion" | "deleted";
5775
5895
  emailVerifiedAt: Date | null;
5776
5896
  phoneVerifiedAt: Date | null;
5777
5897
  lastLoginAt: Date | null;
@@ -6448,7 +6568,7 @@ declare const authLoginEvent: _spfn_core_event.EventDef<{
6448
6568
  email?: string | undefined;
6449
6569
  phone?: string | undefined;
6450
6570
  userId: string;
6451
- provider: "google" | "apple" | "github" | "kakao" | "naver" | "superself" | "email" | "phone";
6571
+ provider: "email" | "phone" | "google" | "apple" | "github" | "kakao" | "naver" | "superself";
6452
6572
  }>;
6453
6573
  /**
6454
6574
  * auth.register - 회원가입 성공 이벤트
@@ -6471,7 +6591,7 @@ declare const authRegisterEvent: _spfn_core_event.EventDef<{
6471
6591
  [x: string]: unknown;
6472
6592
  } | undefined;
6473
6593
  userId: string;
6474
- provider: "google" | "apple" | "github" | "kakao" | "naver" | "superself" | "email" | "phone";
6594
+ provider: "email" | "phone" | "google" | "apple" | "github" | "kakao" | "naver" | "superself";
6475
6595
  }>;
6476
6596
  /**
6477
6597
  * auth.invitation.created - 초대 생성 이벤트
@@ -6499,9 +6619,9 @@ declare const invitationCreatedEvent: _spfn_core_event.EventDef<{
6499
6619
  } | undefined;
6500
6620
  email: string;
6501
6621
  roleId: number;
6502
- expiresAt: string;
6503
6622
  token: string;
6504
6623
  invitedBy: string;
6624
+ expiresAt: string;
6505
6625
  invitationId: string;
6506
6626
  isResend: boolean;
6507
6627
  }>;
@@ -6545,7 +6665,7 @@ declare const authDeletionRequestedEvent: _spfn_core_event.EventDef<{
6545
6665
  userId: string;
6546
6666
  purgeScheduledAt: string;
6547
6667
  userPublicId: string;
6548
- requestedBy: "self" | "admin";
6668
+ requestedBy: "admin" | "self";
6549
6669
  }>;
6550
6670
  /**
6551
6671
  * auth.deletion.cancelled - 계정 탈퇴 복구 이벤트
@@ -6590,7 +6710,7 @@ declare const authDeletionCompletedEvent: _spfn_core_event.EventDef<{
6590
6710
  declare const oauthUnlinkedEvent: _spfn_core_event.EventDef<{
6591
6711
  reason?: string | undefined;
6592
6712
  userId: string;
6593
- provider: "google" | "apple" | "github" | "kakao" | "naver" | "superself" | "email" | "phone";
6713
+ provider: "email" | "phone" | "google" | "apple" | "github" | "kakao" | "naver" | "superself";
6594
6714
  providerUserId: string;
6595
6715
  }>;
6596
6716
  /**