@plyaz/types 1.27.6 → 1.27.8

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.
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @fileoverview Authentication event constants for @plyaz/auth
3
+ * @module @plyaz/auth/constants/auth-events
4
+ *
5
+ * @description
6
+ * Defines standardized event names for authentication system events.
7
+ * These events are published via @plyaz/events for audit logging and
8
+ * cross-component communication. Used by repositories, services, and
9
+ * frontend stores for reactive state management.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { AUTH_EVENTS } from '@plyaz/auth';
14
+ *
15
+ * // Publish event
16
+ * eventManager.publish(AUTH_EVENTS.USER_AUTHENTICATED, { userId, provider });
17
+ *
18
+ * // Subscribe to event
19
+ * eventManager.subscribe(AUTH_EVENTS.SESSION_EXPIRED, handleSessionExpiry);
20
+ * ```
21
+ */
22
+ /**
23
+ * Authentication event type constants
24
+ * Used for event publishing and subscription throughout the auth system
25
+ */
26
+ export declare const AUTH_EVENTS: {
27
+ /** User successfully authenticated */
28
+ readonly USER_AUTHENTICATED: "auth.user.authenticated";
29
+ /** User signed up (new account created) */
30
+ readonly USER_SIGNED_UP: "auth.user.signed_up";
31
+ /** User logged out */
32
+ readonly USER_LOGGED_OUT: "auth.user.logged_out";
33
+ /** Authentication attempt failed */
34
+ readonly AUTHENTICATION_FAILED: "auth.authentication.failed";
35
+ /** Session created */
36
+ readonly SESSION_CREATED: "auth.session.created";
37
+ /** Session expired */
38
+ readonly SESSION_EXPIRED: "auth.session.expired";
39
+ /** Session refreshed */
40
+ readonly SESSION_REFRESHED: "auth.session.refreshed";
41
+ /** Session invalidated (logout) */
42
+ readonly SESSION_INVALIDATED: "auth.session.invalidated";
43
+ /** Account linked to user */
44
+ readonly ACCOUNT_LINKED: "auth.account.linked";
45
+ /** Account unlinked from user */
46
+ readonly ACCOUNT_UNLINKED: "auth.account.unlinked";
47
+ /** Role assigned to user */
48
+ readonly ROLE_ASSIGNED: "auth.rbac.role_assigned";
49
+ /** Role revoked from user */
50
+ readonly ROLE_REVOKED: "auth.rbac.role_revoked";
51
+ /** Suspicious login attempt detected */
52
+ readonly SUSPICIOUS_LOGIN_ATTEMPT: "auth.security.suspicious_login";
53
+ /** Password changed */
54
+ readonly PASSWORD_CHANGED: "auth.password.changed";
55
+ /** Password reset requested */
56
+ readonly PASSWORD_RESET_REQUESTED: "auth.password.reset_requested";
57
+ };
58
+ /**
59
+ * Type for authentication event names
60
+ */
61
+ export type AuthEventTypes = typeof AUTH_EVENTS[keyof typeof AUTH_EVENTS];
62
+ /**
63
+ * Authentication event payload interfaces
64
+ */
65
+ export interface AuthEventPayload {
66
+ /** Base event data */
67
+ timestamp: Date;
68
+ /** IP address of the request */
69
+ ipAddress?: string;
70
+ /** User agent string */
71
+ userAgent?: string;
72
+ /** Additional metadata */
73
+ metadata?: Record<string, unknown>;
74
+ }
75
+ export interface UserAuthenticatedPayload extends AuthEventPayload {
76
+ userId: string;
77
+ provider: string;
78
+ sessionId: string;
79
+ }
80
+ export interface UserSignedUpPayload extends AuthEventPayload {
81
+ userId: string;
82
+ provider: string;
83
+ email: string;
84
+ }
85
+ export interface UserLoggedOutPayload extends AuthEventPayload {
86
+ userId: string;
87
+ sessionId: string;
88
+ }
89
+ export interface AuthenticationFailedPayload extends AuthEventPayload {
90
+ provider: string;
91
+ reason: string;
92
+ email?: string;
93
+ }
94
+ export interface SessionEventPayload extends AuthEventPayload {
95
+ userId: string;
96
+ sessionId: string;
97
+ }
98
+ export interface AccountLinkedPayload extends AuthEventPayload {
99
+ userId: string;
100
+ provider: string;
101
+ accountId: string;
102
+ }
103
+ export interface RoleEventPayload extends AuthEventPayload {
104
+ userId: string;
105
+ role: string;
106
+ assignedBy?: string;
107
+ }
@@ -222,3 +222,41 @@ export declare const AUTH_ERROR_DEFINITIONS: {
222
222
  readonly retryable: false;
223
223
  };
224
224
  };
225
+ /**
226
+ * @fileoverview Enums for @plyaz/auth
227
+ * @module @plyaz/auth/enums
228
+ */
229
+ export declare enum USERROLESTATUS {
230
+ ACTIVE = "ACTIVE",
231
+ INACTIVE = "INACTIVE",
232
+ SUSPENDED = "SUSPENDED"
233
+ }
234
+ export declare enum AUTHPROVIDER {
235
+ EMAIL = "EMAIL",
236
+ CLERK = "CLERK",
237
+ GOOGLE = "GOOGLE",
238
+ FACEBOOK = "FACEBOOK",
239
+ APPLE = "APPLE",
240
+ WEB3 = "WEB3",
241
+ NEXTAUTH = "NEXTAUTH"
242
+ }
243
+ export declare enum TOKENTYPE {
244
+ BEARER = "Bearer",
245
+ JWT = "JWT"
246
+ }
247
+ export declare enum PROVIDERTYPE {
248
+ OAUTH = "OAUTH",
249
+ WEB3 = "WEB3",
250
+ EMAIL = "EMAIL"
251
+ }
252
+ export declare enum SESSIONSTATUS {
253
+ ACTIVE = "ACTIVE",
254
+ EXPIRED = "EXPIRED",
255
+ REVOKED = "REVOKED"
256
+ }
257
+ export declare enum MFATYPE {
258
+ TOTP = "TOTP",
259
+ SMS = "SMS",
260
+ EMAIL = "EMAIL",
261
+ BackupCodes = "BACKUP_CODES"
262
+ }
@@ -220,6 +220,46 @@ var AUTH_ERROR_DEFINITIONS = {
220
220
  retryable: false
221
221
  }
222
222
  };
223
+ var USERROLESTATUS = /* @__PURE__ */ ((USERROLESTATUS2) => {
224
+ USERROLESTATUS2["ACTIVE"] = "ACTIVE";
225
+ USERROLESTATUS2["INACTIVE"] = "INACTIVE";
226
+ USERROLESTATUS2["SUSPENDED"] = "SUSPENDED";
227
+ return USERROLESTATUS2;
228
+ })(USERROLESTATUS || {});
229
+ var AUTHPROVIDER = /* @__PURE__ */ ((AUTHPROVIDER2) => {
230
+ AUTHPROVIDER2["EMAIL"] = "EMAIL";
231
+ AUTHPROVIDER2["CLERK"] = "CLERK";
232
+ AUTHPROVIDER2["GOOGLE"] = "GOOGLE";
233
+ AUTHPROVIDER2["FACEBOOK"] = "FACEBOOK";
234
+ AUTHPROVIDER2["APPLE"] = "APPLE";
235
+ AUTHPROVIDER2["WEB3"] = "WEB3";
236
+ AUTHPROVIDER2["NEXTAUTH"] = "NEXTAUTH";
237
+ return AUTHPROVIDER2;
238
+ })(AUTHPROVIDER || {});
239
+ var TOKENTYPE = /* @__PURE__ */ ((TOKENTYPE2) => {
240
+ TOKENTYPE2["BEARER"] = "Bearer";
241
+ TOKENTYPE2["JWT"] = "JWT";
242
+ return TOKENTYPE2;
243
+ })(TOKENTYPE || {});
244
+ var PROVIDERTYPE = /* @__PURE__ */ ((PROVIDERTYPE2) => {
245
+ PROVIDERTYPE2["OAUTH"] = "OAUTH";
246
+ PROVIDERTYPE2["WEB3"] = "WEB3";
247
+ PROVIDERTYPE2["EMAIL"] = "EMAIL";
248
+ return PROVIDERTYPE2;
249
+ })(PROVIDERTYPE || {});
250
+ var SESSIONSTATUS = /* @__PURE__ */ ((SESSIONSTATUS2) => {
251
+ SESSIONSTATUS2["ACTIVE"] = "ACTIVE";
252
+ SESSIONSTATUS2["EXPIRED"] = "EXPIRED";
253
+ SESSIONSTATUS2["REVOKED"] = "REVOKED";
254
+ return SESSIONSTATUS2;
255
+ })(SESSIONSTATUS || {});
256
+ var MFATYPE = /* @__PURE__ */ ((MFATYPE2) => {
257
+ MFATYPE2["TOTP"] = "TOTP";
258
+ MFATYPE2["SMS"] = "SMS";
259
+ MFATYPE2["EMAIL"] = "EMAIL";
260
+ MFATYPE2["BackupCodes"] = "BACKUP_CODES";
261
+ return MFATYPE2;
262
+ })(MFATYPE || {});
223
263
  var DEFAULT_PASSWORD = 8;
224
264
  var ContactUsFormSchema = zod.z.object({
225
265
  name: zod.z.string({ error: "errors.form.missingField" }).min(1, "errors.form.nameMissing"),
@@ -248,14 +288,108 @@ var AUTH_ERROR_CODES = {
248
288
  ACCOUNT_LOCKED: "AUTH_ACCOUNT_LOCKED",
249
289
  ACCOUNT_SUSPENDED: "AUTH_ACCOUNT_SUSPENDED"
250
290
  };
291
+ var ERROR_CODE_TO_HTTP_STATUS = {
292
+ [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: 401,
293
+ [AUTH_ERROR_CODES.TOKEN_EXPIRED]: 401,
294
+ [AUTH_ERROR_CODES.TOKEN_INVALID]: 401,
295
+ [AUTH_ERROR_CODES.TOKEN_REVOKED]: 401,
296
+ [AUTH_ERROR_CODES.SESSION_EXPIRED]: 401,
297
+ [AUTH_ERROR_CODES.MFA_REQUIRED]: 401,
298
+ [AUTH_ERROR_CODES.MFA_INVALID]: 401,
299
+ [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 403,
300
+ [AUTH_ERROR_CODES.ROLE_REQUIRED]: 403,
301
+ [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: 401,
302
+ [AUTH_ERROR_CODES.NONCE_EXPIRED]: 401,
303
+ [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: 401,
304
+ [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: 423,
305
+ [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: 423
306
+ };
307
+ var ERROR_CODE_DESCRIPTIONS = {
308
+ [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: "errors.auth.invalid_credentials",
309
+ [AUTH_ERROR_CODES.TOKEN_EXPIRED]: "errors.auth.token_expired",
310
+ [AUTH_ERROR_CODES.TOKEN_INVALID]: "errors.auth.token_invalid",
311
+ [AUTH_ERROR_CODES.TOKEN_REVOKED]: "errors.auth.token_revoked",
312
+ [AUTH_ERROR_CODES.SESSION_EXPIRED]: "errors.auth.session_expired",
313
+ [AUTH_ERROR_CODES.MFA_REQUIRED]: "errors.auth.mfa_required",
314
+ [AUTH_ERROR_CODES.MFA_INVALID]: "errors.auth.mfa_invalid",
315
+ [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: "errors.auth.insufficient_permissions",
316
+ [AUTH_ERROR_CODES.ROLE_REQUIRED]: "errors.auth.role_required",
317
+ [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: "errors.auth.wallet_signature_invalid",
318
+ [AUTH_ERROR_CODES.NONCE_EXPIRED]: "errors.auth.nonce_expired",
319
+ [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: "errors.auth.nonce_already_used",
320
+ [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: "errors.auth.account_locked",
321
+ [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: "errors.auth.account_suspended"
322
+ };
323
+ var OAUTH_PROVIDERS = {
324
+ /** Google OAuth 2.0 */
325
+ GOOGLE: "GOOGLE",
326
+ /** Facebook OAuth 2.0 */
327
+ FACEBOOK: "FACEBOOK",
328
+ /** Apple Sign In */
329
+ APPLE: "APPLE",
330
+ /** GitHub OAuth 2.0 */
331
+ GITHUB: "GITHUB",
332
+ /** Twitter OAuth 2.0 */
333
+ TWITTER: "TWITTER",
334
+ /** LinkedIn OAuth 2.0 */
335
+ LINKEDIN: "LINKEDIN",
336
+ /** Discord OAuth 2.0 */
337
+ DISCORD: "DISCORD",
338
+ /** Microsoft OAuth 2.0 */
339
+ MICROSOFT: "MICROSOFT"
340
+ };
341
+
342
+ // src/auth/auth-events.ts
343
+ var AUTH_EVENTS = {
344
+ /** User successfully authenticated */
345
+ USER_AUTHENTICATED: "auth.user.authenticated",
346
+ /** User signed up (new account created) */
347
+ USER_SIGNED_UP: "auth.user.signed_up",
348
+ /** User logged out */
349
+ USER_LOGGED_OUT: "auth.user.logged_out",
350
+ /** Authentication attempt failed */
351
+ AUTHENTICATION_FAILED: "auth.authentication.failed",
352
+ /** Session created */
353
+ SESSION_CREATED: "auth.session.created",
354
+ /** Session expired */
355
+ SESSION_EXPIRED: "auth.session.expired",
356
+ /** Session refreshed */
357
+ SESSION_REFRESHED: "auth.session.refreshed",
358
+ /** Session invalidated (logout) */
359
+ SESSION_INVALIDATED: "auth.session.invalidated",
360
+ /** Account linked to user */
361
+ ACCOUNT_LINKED: "auth.account.linked",
362
+ /** Account unlinked from user */
363
+ ACCOUNT_UNLINKED: "auth.account.unlinked",
364
+ /** Role assigned to user */
365
+ ROLE_ASSIGNED: "auth.rbac.role_assigned",
366
+ /** Role revoked from user */
367
+ ROLE_REVOKED: "auth.rbac.role_revoked",
368
+ /** Suspicious login attempt detected */
369
+ SUSPICIOUS_LOGIN_ATTEMPT: "auth.security.suspicious_login",
370
+ /** Password changed */
371
+ PASSWORD_CHANGED: "auth.password.changed",
372
+ /** Password reset requested */
373
+ PASSWORD_RESET_REQUESTED: "auth.password.reset_requested"
374
+ };
251
375
 
376
+ exports.AUTHPROVIDER = AUTHPROVIDER;
252
377
  exports.AUTH_ERROR_CODES = AUTH_ERROR_CODES;
253
378
  exports.AUTH_ERROR_DEFINITIONS = AUTH_ERROR_DEFINITIONS;
379
+ exports.AUTH_EVENTS = AUTH_EVENTS;
254
380
  exports.AUTH_PROVIDER = AUTH_PROVIDER;
255
381
  exports.AUTH_PROVIDER_TYPE = AUTH_PROVIDER_TYPE;
256
382
  exports.ContactUsFormSchema = ContactUsFormSchema;
383
+ exports.ERROR_CODE_DESCRIPTIONS = ERROR_CODE_DESCRIPTIONS;
384
+ exports.ERROR_CODE_TO_HTTP_STATUS = ERROR_CODE_TO_HTTP_STATUS;
385
+ exports.MFATYPE = MFATYPE;
386
+ exports.OAUTH_PROVIDERS = OAUTH_PROVIDERS;
387
+ exports.PROVIDERTYPE = PROVIDERTYPE;
388
+ exports.SESSIONSTATUS = SESSIONSTATUS;
257
389
  exports.SignupFormSchema = SignupFormSchema;
390
+ exports.TOKENTYPE = TOKENTYPE;
258
391
  exports.TOKEN_TYPE = TOKEN_TYPE;
392
+ exports.USERROLESTATUS = USERROLESTATUS;
259
393
  exports.USER_ROLE = USER_ROLE;
260
394
  exports.USER_ROLE_STATUS = USER_ROLE_STATUS;
261
395
  exports.USER_STATUS = USER_STATUS;