@warlock.js/auth 4.0.60 → 4.0.92

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.
Files changed (83) hide show
  1. package/package.json +5 -5
  2. package/cjs/commands/auth-cleanup-command.d.ts +0 -10
  3. package/cjs/commands/auth-cleanup-command.d.ts.map +0 -1
  4. package/cjs/commands/auth-cleanup-command.js +0 -29
  5. package/cjs/commands/auth-cleanup-command.js.map +0 -1
  6. package/cjs/commands/jwt-secret-generator-command.d.ts +0 -2
  7. package/cjs/commands/jwt-secret-generator-command.d.ts.map +0 -1
  8. package/cjs/commands/jwt-secret-generator-command.js +0 -7
  9. package/cjs/commands/jwt-secret-generator-command.js.map +0 -1
  10. package/cjs/contracts/auth-contract.d.ts +0 -23
  11. package/cjs/contracts/auth-contract.d.ts.map +0 -1
  12. package/cjs/contracts/index.d.ts +0 -3
  13. package/cjs/contracts/index.d.ts.map +0 -1
  14. package/cjs/contracts/types.d.ts +0 -157
  15. package/cjs/contracts/types.d.ts.map +0 -1
  16. package/cjs/contracts/types.js +0 -20
  17. package/cjs/contracts/types.js.map +0 -1
  18. package/cjs/index.d.ts +0 -8
  19. package/cjs/index.d.ts.map +0 -1
  20. package/cjs/index.js +0 -1
  21. package/cjs/index.js.map +0 -1
  22. package/cjs/middleware/auth.middleware.d.ts +0 -2
  23. package/cjs/middleware/auth.middleware.d.ts.map +0 -1
  24. package/cjs/middleware/auth.middleware.js +0 -72
  25. package/cjs/middleware/auth.middleware.js.map +0 -1
  26. package/cjs/middleware/index.d.ts +0 -2
  27. package/cjs/middleware/index.d.ts.map +0 -1
  28. package/cjs/models/access-token/access-token.d.ts +0 -9
  29. package/cjs/models/access-token/access-token.d.ts.map +0 -1
  30. package/cjs/models/access-token/access-token.js +0 -18
  31. package/cjs/models/access-token/access-token.js.map +0 -1
  32. package/cjs/models/access-token/index.d.ts +0 -3
  33. package/cjs/models/access-token/index.d.ts.map +0 -1
  34. package/cjs/models/access-token/migration.d.ts +0 -3
  35. package/cjs/models/access-token/migration.d.ts.map +0 -1
  36. package/cjs/models/access-token/migration.js +0 -10
  37. package/cjs/models/access-token/migration.js.map +0 -1
  38. package/cjs/models/auth.d.ts +0 -54
  39. package/cjs/models/auth.d.ts.map +0 -1
  40. package/cjs/models/auth.js +0 -56
  41. package/cjs/models/auth.js.map +0 -1
  42. package/cjs/models/casts/cast-password.d.ts +0 -7
  43. package/cjs/models/casts/cast-password.d.ts.map +0 -1
  44. package/cjs/models/casts/index.d.ts +0 -2
  45. package/cjs/models/casts/index.d.ts.map +0 -1
  46. package/cjs/models/index.d.ts +0 -4
  47. package/cjs/models/index.d.ts.map +0 -1
  48. package/cjs/models/refresh-token/index.d.ts +0 -2
  49. package/cjs/models/refresh-token/index.d.ts.map +0 -1
  50. package/cjs/models/refresh-token/migration.d.ts +0 -3
  51. package/cjs/models/refresh-token/migration.d.ts.map +0 -1
  52. package/cjs/models/refresh-token/refresh-token.d.ts +0 -32
  53. package/cjs/models/refresh-token/refresh-token.d.ts.map +0 -1
  54. package/cjs/models/refresh-token/refresh-token.js +0 -53
  55. package/cjs/models/refresh-token/refresh-token.js.map +0 -1
  56. package/cjs/services/auth-events.d.ts +0 -85
  57. package/cjs/services/auth-events.d.ts.map +0 -1
  58. package/cjs/services/auth-events.js +0 -65
  59. package/cjs/services/auth-events.js.map +0 -1
  60. package/cjs/services/auth.service.d.ts +0 -91
  61. package/cjs/services/auth.service.d.ts.map +0 -1
  62. package/cjs/services/auth.service.js +0 -303
  63. package/cjs/services/auth.service.js.map +0 -1
  64. package/cjs/services/generate-jwt-secret.d.ts +0 -2
  65. package/cjs/services/generate-jwt-secret.d.ts.map +0 -1
  66. package/cjs/services/generate-jwt-secret.js +0 -47
  67. package/cjs/services/generate-jwt-secret.js.map +0 -1
  68. package/cjs/services/index.d.ts +0 -5
  69. package/cjs/services/index.d.ts.map +0 -1
  70. package/cjs/services/jwt.d.ts +0 -23
  71. package/cjs/services/jwt.d.ts.map +0 -1
  72. package/cjs/services/jwt.js +0 -39
  73. package/cjs/services/jwt.js.map +0 -1
  74. package/cjs/utils/auth-error-codes.d.ts +0 -18
  75. package/cjs/utils/auth-error-codes.d.ts.map +0 -1
  76. package/cjs/utils/auth-error-codes.js +0 -18
  77. package/cjs/utils/auth-error-codes.js.map +0 -1
  78. package/cjs/utils/duration.d.ts +0 -45
  79. package/cjs/utils/duration.d.ts.map +0 -1
  80. package/cjs/utils/duration.js +0 -93
  81. package/cjs/utils/duration.js.map +0 -1
  82. package/cjs/utils/index.d.ts +0 -3
  83. package/cjs/utils/index.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warlock.js/auth",
3
- "version": "4.0.60",
3
+ "version": "4.0.92",
4
4
  "description": "Authentication system for Warlock.js applications",
5
5
  "main": "./esm/index.js",
6
6
  "dependencies": {
@@ -12,10 +12,10 @@
12
12
  "@mongez/events": "^2.1.0",
13
13
  "@mongez/fs": "^3.0.5",
14
14
  "@mongez/reinforcements": "^2.3.17",
15
- "@warlock.js/cascade": "4.0.60",
16
- "@warlock.js/core": "4.0.60",
17
- "@warlock.js/logger": "4.0.60",
18
- "@warlock.js/seal": "4.0.60"
15
+ "@warlock.js/cascade": "4.0.92",
16
+ "@warlock.js/core": "4.0.92",
17
+ "@warlock.js/logger": "4.0.92",
18
+ "@warlock.js/seal": "4.0.92"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",
@@ -1,10 +0,0 @@
1
- /**
2
- * Register the auth:cleanup CLI command
3
- *
4
- * @example
5
- * ```bash
6
- * warlock auth:cleanup
7
- * ```
8
- */
9
- export declare function registerAuthCleanupCommand(): any;
10
- //# sourceMappingURL=auth-cleanup-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-cleanup-command.d.ts","sourceRoot":"","sources":["../../src/commands/auth-cleanup-command.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,QAqBzC"}
@@ -1,29 +0,0 @@
1
- 'use strict';var copper=require('@mongez/copper'),core=require('@warlock.js/core'),auth_service=require('../services/auth.service.js');/**
2
- * Register the auth:cleanup CLI command
3
- *
4
- * @example
5
- * ```bash
6
- * warlock auth:cleanup
7
- * ```
8
- */
9
- function registerAuthCleanupCommand() {
10
- return core.command({
11
- name: "auth.cleanup",
12
- description: "Remove expired refresh tokens from the database",
13
- preload: {
14
- env: true,
15
- config: ["auth", "database"],
16
- connectors: ["database"],
17
- },
18
- action: async () => {
19
- console.log(copper.colors.cyan("🧹 Cleaning up expired tokens..."));
20
- const count = await auth_service.authService.cleanupExpiredTokens();
21
- if (count === 0) {
22
- console.log(copper.colors.green("✅ No expired tokens found."));
23
- }
24
- else {
25
- console.log(copper.colors.green(`✅ Removed ${count} expired token(s).`));
26
- }
27
- },
28
- });
29
- }exports.registerAuthCleanupCommand=registerAuthCleanupCommand;//# sourceMappingURL=auth-cleanup-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-cleanup-command.js","sources":["../../src/commands/auth-cleanup-command.ts"],"sourcesContent":[null],"names":["command","colors","authService"],"mappings":"uIAIA;;;;;;;AAOG;SACa,0BAA0B,GAAA;AACxC,IAAA,OAAOA,YAAO,CAAC;AACb,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,WAAW,EAAE,iDAAiD;AAC9D,QAAA,OAAO,EAAE;AACP,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC5B,UAAU,EAAE,CAAC,UAAU,CAAC;AACzB,SAAA;QACD,MAAM,EAAE,YAAW;YACjB,OAAO,CAAC,GAAG,CAACC,aAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAE7D,YAAA,MAAM,KAAK,GAAG,MAAMC,wBAAW,CAAC,oBAAoB,EAAE,CAAC;YAEvD,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,CAAC,GAAG,CAACD,aAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,GAAG,CAACA,aAAM,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,KAAK,CAAA,kBAAA,CAAoB,CAAC,CAAC,CAAC;AACnE,aAAA;SACF;AACF,KAAA,CAAC,CAAC;AACL"}
@@ -1,2 +0,0 @@
1
- export declare function registerJWTSecretGeneratorCommand(): any;
2
- //# sourceMappingURL=jwt-secret-generator-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-secret-generator-command.d.ts","sourceRoot":"","sources":["../../src/commands/jwt-secret-generator-command.ts"],"names":[],"mappings":"AAGA,wBAAgB,iCAAiC,QAMhD"}
@@ -1,7 +0,0 @@
1
- 'use strict';var core=require('@warlock.js/core'),generateJwtSecret=require('../services/generate-jwt-secret.js');function registerJWTSecretGeneratorCommand() {
2
- return core.command({
3
- name: "jwt.generate",
4
- description: "Generate JWT Secret key in .env file",
5
- action: generateJwtSecret.generateJWTSecret,
6
- });
7
- }exports.registerJWTSecretGeneratorCommand=registerJWTSecretGeneratorCommand;//# sourceMappingURL=jwt-secret-generator-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-secret-generator-command.js","sources":["../../src/commands/jwt-secret-generator-command.ts"],"sourcesContent":[null],"names":["command","generateJWTSecret"],"mappings":"2HAGgB,iCAAiC,GAAA;AAC/C,IAAA,OAAOA,YAAO,CAAC;AACb,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,WAAW,EAAE,sCAAsC;AACnD,QAAA,MAAM,EAAEC,mCAAiB;AAC1B,KAAA,CAAC,CAAC;AACL"}
@@ -1,23 +0,0 @@
1
- export interface Authenticable {
2
- /**
3
- * Generate access token
4
- */
5
- generateAccessToken(): Promise<string>;
6
- /**
7
- * Generate refresh token
8
- */
9
- generateRefreshToken(): Promise<string>;
10
- /**
11
- * Change password
12
- */
13
- changePassword(password: string): Promise<void>;
14
- /**
15
- * Verify Password
16
- */
17
- verifyPassword(password: string): Promise<boolean>;
18
- /**
19
- * Get user type
20
- */
21
- getUserType(): string;
22
- }
23
- //# sourceMappingURL=auth-contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/auth-contract.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;CACvB"}
@@ -1,3 +0,0 @@
1
- export * from "./auth-contract";
2
- export * from "./types";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -1,157 +0,0 @@
1
- import { ChildModel } from "@warlock.js/cascade";
2
- import { type Algorithm } from "fast-jwt";
3
- import type { Auth } from "../models/auth";
4
- import type { Duration, ExpiresIn } from "../utils/duration";
5
- /**
6
- * Symbol to indicate no expiration for tokens
7
- * Use this when you explicitly want tokens to never expire
8
- *
9
- * @example
10
- * ```typescript
11
- * // src/config/auth.ts
12
- * import { NO_EXPIRATION, type AuthConfigurations } from "@warlock.js/auth";
13
- *
14
- * const authConfigurations: AuthConfigurations = {
15
- * jwt: {
16
- * secret: env("JWT_SECRET"),
17
- * expiresIn: NO_EXPIRATION, // Token never expires
18
- * },
19
- * };
20
- *
21
- * export default authConfigurations;
22
- * ```
23
- */
24
- export declare const NO_EXPIRATION: unique symbol;
25
- /**
26
- * Behavior when logout is called without a refresh token
27
- * - "revoke-all": Revoke all refresh tokens for the user (secure default)
28
- * - "error": Return an error requiring the refresh token
29
- */
30
- export type LogoutWithoutTokenBehavior = "revoke-all" | "error";
31
- export type AuthConfigurations = {
32
- /**
33
- * Define all user types
34
- * This is important to differentiate between user types when validating and generating tokens
35
- */
36
- userType: {
37
- [userType: string]: ChildModel<Auth>;
38
- };
39
- /**
40
- * JWT configurations
41
- */
42
- jwt: {
43
- /**
44
- * JWT secret key for signing access tokens
45
- */
46
- secret: string;
47
- /**
48
- * JWT algorithm
49
- * @default "HS256"
50
- */
51
- algorithm?: Algorithm;
52
- /**
53
- * Access token expiration time
54
- * Supports Duration object, string format, or NO_EXPIRATION
55
- * @example { hours: 1 }, { days: 7, hours: 12 }, "1h", "1d 2h", NO_EXPIRATION
56
- * @default { hours: 1 }
57
- */
58
- expiresIn?: ExpiresIn;
59
- /**
60
- * Refresh token configurations
61
- */
62
- refresh?: {
63
- /**
64
- * Separate secret for refresh tokens (recommended for security)
65
- * If not provided, falls back to main JWT secret
66
- */
67
- secret?: string;
68
- /**
69
- * Enable refresh token
70
- * @default true
71
- */
72
- enabled?: boolean;
73
- /**
74
- * Refresh token expiration time
75
- * Supports Duration object or string format
76
- * @example { days: 7 }, { weeks: 1 }, "7d", "1w"
77
- * @default { days: 7 }
78
- */
79
- expiresIn?: Duration | string | number;
80
- /**
81
- * Enable token rotation (issue new refresh token on each use)
82
- * Old refresh token is invalidated after use
83
- * @default true
84
- */
85
- rotation?: boolean;
86
- /**
87
- * Maximum number of active refresh tokens per user
88
- * When exceeded, oldest tokens are revoked
89
- * @default 5
90
- */
91
- maxPerUser?: number;
92
- /**
93
- * Behavior when logout is called without a refresh token
94
- * - "revoke-all": Revoke all tokens for security (default)
95
- * - "error": Require refresh token, return error if missing
96
- * @default "revoke-all"
97
- */
98
- logoutWithoutToken?: LogoutWithoutTokenBehavior;
99
- };
100
- };
101
- /**
102
- * Password configurations
103
- */
104
- password?: {
105
- /**
106
- * Password salt
107
- * The higher the salt, the more secure the password is
108
- * But, it will take more time to generate the password
109
- * @default 12
110
- */
111
- salt?: number;
112
- };
113
- };
114
- /**
115
- * Token pair returned after login or token refresh
116
- */
117
- export type TokenPair = {
118
- /**
119
- * JWT access token (short-lived)
120
- */
121
- accessToken: string;
122
- /**
123
- * JWT refresh token (long-lived)
124
- */
125
- refreshToken: string;
126
- /**
127
- * Access token expiration time in seconds or time string
128
- */
129
- expiresIn: number | string;
130
- };
131
- /**
132
- * Device information for session tracking
133
- */
134
- export type DeviceInfo = {
135
- /**
136
- * User agent string from request
137
- */
138
- userAgent?: string;
139
- /**
140
- * Client IP address
141
- */
142
- ip?: string;
143
- /**
144
- * Optional device identifier
145
- */
146
- deviceId?: string;
147
- /**
148
- * Token family ID (for rotation tracking)
149
- * @internal
150
- */
151
- familyId?: string;
152
- /**
153
- * Access token payload
154
- */
155
- payload?: Record<string, any>;
156
- };
157
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,YAAY,GAAG,OAAO,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,QAAQ,EAAE;QACR,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;KACtC,CAAC;IACF;;OAEG;IACH,GAAG,EAAE;QACH;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB;;;;;WAKG;QACH,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB;;WAEG;QACH,OAAO,CAAC,EAAE;YACR;;;eAGG;YACH,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB;;;eAGG;YACH,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB;;;;;eAKG;YACH,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;YACvC;;;;eAIG;YACH,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB;;;;eAIG;YACH,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB;;;;;eAKG;YACH,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;SACjD,CAAC;KACH,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;;;;WAKG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC"}
@@ -1,20 +0,0 @@
1
- 'use strict';/**
2
- * Symbol to indicate no expiration for tokens
3
- * Use this when you explicitly want tokens to never expire
4
- *
5
- * @example
6
- * ```typescript
7
- * // src/config/auth.ts
8
- * import { NO_EXPIRATION, type AuthConfigurations } from "@warlock.js/auth";
9
- *
10
- * const authConfigurations: AuthConfigurations = {
11
- * jwt: {
12
- * secret: env("JWT_SECRET"),
13
- * expiresIn: NO_EXPIRATION, // Token never expires
14
- * },
15
- * };
16
- *
17
- * export default authConfigurations;
18
- * ```
19
- */
20
- const NO_EXPIRATION = Symbol("NO_EXPIRATION");exports.NO_EXPIRATION=NO_EXPIRATION;//# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":["../../src/contracts/types.ts"],"sourcesContent":[null],"names":[],"mappings":"aAKA;;;;;;;;;;;;;;;;;;AAkBG;MACU,aAAa,GAAG,MAAM,CAAC,eAAe"}
package/cjs/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from "./commands/auth-cleanup-command";
2
- export * from "./commands/jwt-secret-generator-command";
3
- export * from "./contracts";
4
- export * from "./middleware";
5
- export * from "./models";
6
- export * from "./services";
7
- export * from "./utils";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
package/cjs/index.js DELETED
@@ -1 +0,0 @@
1
- 'use strict';var authCleanupCommand=require('./commands/auth-cleanup-command.js'),jwtSecretGeneratorCommand=require('./commands/jwt-secret-generator-command.js'),types=require('./contracts/types.js'),auth_middleware=require('./middleware/auth.middleware.js'),accessToken=require('./models/access-token/access-token.js');require('./models/access-token/migration.js');var auth=require('./models/auth.js'),refreshToken=require('./models/refresh-token/refresh-token.js'),authEvents=require('./services/auth-events.js'),auth_service=require('./services/auth.service.js'),generateJwtSecret=require('./services/generate-jwt-secret.js'),jwt=require('./services/jwt.js'),authErrorCodes=require('./utils/auth-error-codes.js'),duration=require('./utils/duration.js');exports.registerAuthCleanupCommand=authCleanupCommand.registerAuthCleanupCommand;exports.registerJWTSecretGeneratorCommand=jwtSecretGeneratorCommand.registerJWTSecretGeneratorCommand;exports.NO_EXPIRATION=types.NO_EXPIRATION;exports.authMiddleware=auth_middleware.authMiddleware;exports.AccessToken=accessToken.AccessToken;exports.Auth=auth.Auth;exports.RefreshToken=refreshToken.RefreshToken;exports.authEvents=authEvents.authEvents;exports.authService=auth_service.authService;exports.generateJWTSecret=generateJwtSecret.generateJWTSecret;exports.jwt=jwt.jwt;Object.defineProperty(exports,'AuthErrorCodes',{enumerable:true,get:function(){return authErrorCodes.AuthErrorCodes}});exports.parseExpirationToMs=duration.parseExpirationToMs;exports.toJwtExpiresIn=duration.toJwtExpiresIn;//# sourceMappingURL=index.js.map
package/cjs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export declare function authMiddleware(allowedUserType?: string | string[]): Middleware;
2
- //# sourceMappingURL=auth.middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,cAsFjE"}
@@ -1,72 +0,0 @@
1
- 'use strict';var core=require('@warlock.js/core'),logger=require('@warlock.js/logger'),accessToken=require('../models/access-token/access-token.js');require('../models/access-token/migration.js');var jwt=require('../services/jwt.js'),authErrorCodes=require('../utils/auth-error-codes.js');function authMiddleware(allowedUserType) {
2
- const allowedTypes = !allowedUserType
3
- ? []
4
- : Array.isArray(allowedUserType)
5
- ? allowedUserType
6
- : [allowedUserType];
7
- const auth = async (request, response) => {
8
- try {
9
- const authorizationValue = request.authorizationValue;
10
- if (!allowedTypes.length && !authorizationValue)
11
- return;
12
- if (!authorizationValue) {
13
- return response.unauthorized({
14
- error: core.t("auth.errors.missingAccessToken"),
15
- errorCode: authErrorCodes.AuthErrorCodes.MissingAccessToken,
16
- });
17
- }
18
- // get current user jwt
19
- const user = await jwt.jwt.verify(authorizationValue);
20
- // store decoded access token object in request object
21
- request.decodedAccessToken = user;
22
- // use our own jwt verify to verify the token
23
- const accessToken$1 = await accessToken.AccessToken.first({
24
- token: authorizationValue,
25
- });
26
- if (!accessToken$1) {
27
- return response.unauthorized({
28
- error: core.t("auth.errors.invalidAccessToken"),
29
- errorCode: authErrorCodes.AuthErrorCodes.InvalidAccessToken,
30
- });
31
- }
32
- // now, we need to get an instance of user using its corresponding model
33
- const userType = user.userType || accessToken$1.get("userType");
34
- // check if the user type is allowed
35
- if (allowedTypes.length && !allowedTypes.includes(userType)) {
36
- return response.unauthorized({
37
- error: core.t("auth.errors.unauthorized"),
38
- errorCode: authErrorCodes.AuthErrorCodes.Unauthorized,
39
- });
40
- }
41
- // get user model class
42
- const UserModel = core.config.key(`auth.userType.${userType}`);
43
- if (!UserModel) {
44
- throw new Error(`User type ${userType} is unknown type.`);
45
- }
46
- // get user model instance
47
- const currentUser = await UserModel.find(user.id);
48
- if (!currentUser) {
49
- accessToken$1.destroy();
50
- return response.unauthorized({
51
- error: core.t("auth.errors.invalidAccessToken"),
52
- errorCode: authErrorCodes.AuthErrorCodes.InvalidAccessToken,
53
- });
54
- }
55
- // update last access
56
- accessToken$1.set("lastAccess", new Date());
57
- await accessToken$1.save({ skipEvents: true });
58
- // set current user
59
- request.user = currentUser;
60
- }
61
- catch (err) {
62
- logger.log.error("http", "auth", err);
63
- // unset current user
64
- request.clearCurrentUser();
65
- return response.unauthorized({
66
- error: core.t("auth.errors.invalidAccessToken"),
67
- errorCode: authErrorCodes.AuthErrorCodes.InvalidAccessToken,
68
- });
69
- }
70
- };
71
- return auth;
72
- }exports.authMiddleware=authMiddleware;//# sourceMappingURL=auth.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.middleware.js","sources":["../../src/middleware/auth.middleware.ts"],"sourcesContent":[null],"names":["t","AuthErrorCodes","jwt","accessToken","AccessToken","config","log"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from "./auth.middleware";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { Model } from "@warlock.js/cascade";
2
- export declare class AccessToken extends Model {
3
- /**
4
- * {@inheritDoc}
5
- */
6
- static table: string;
7
- static schema: any;
8
- }
9
- //# sourceMappingURL=access-token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAe5C,qBAAa,WAAY,SAAQ,KAAK;IACpC;;OAEG;IACH,OAAc,KAAK,SAAkB;IAErC,OAAc,MAAM,MAAqB;CAC1C"}
@@ -1,18 +0,0 @@
1
- 'use strict';var cascade=require('@warlock.js/cascade'),seal=require('@warlock.js/seal');const accessTokenSchema = seal.v.object({
2
- token: seal.v.string().required(),
3
- lastAccess: seal.v.date().default(() => new Date()),
4
- user: seal.v
5
- .object({
6
- id: seal.v.number().required(),
7
- userType: seal.v.string(),
8
- })
9
- .allowUnknown()
10
- .required(),
11
- });
12
- class AccessToken extends cascade.Model {
13
- /**
14
- * {@inheritDoc}
15
- */
16
- static table = "accessTokens";
17
- static schema = accessTokenSchema;
18
- }exports.AccessToken=AccessToken;//# sourceMappingURL=access-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"access-token.js","sources":["../../../src/models/access-token/access-token.ts"],"sourcesContent":[null],"names":["v","Model"],"mappings":"yFAGA,MAAM,iBAAiB,GAAGA,MAAC,CAAC,MAAM,CAAC;AACjC,IAAA,KAAK,EAAEA,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC5B,IAAA,UAAU,EAAEA,MAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;AAC9C,IAAA,IAAI,EAAEA,MAAC;AACJ,SAAA,MAAM,CAAC;AACN,QAAA,EAAE,EAAEA,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACzB,QAAA,QAAQ,EAAEA,MAAC,CAAC,MAAM,EAAE;KACrB,CAAC;AACD,SAAA,YAAY,EAAE;AACd,SAAA,QAAQ,EAAE;AACd,CAAA,CAAC,CAAC;AAEG,MAAO,WAAY,SAAQC,aAAK,CAAA;AACpC;;AAEG;AACI,IAAA,OAAO,KAAK,GAAG,cAAc,CAAC;AAE9B,IAAA,OAAO,MAAM,GAAG,iBAAiB,CAAC;"}
@@ -1,3 +0,0 @@
1
- export * from "./access-token";
2
- export * from "./migration";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
@@ -1,3 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
3
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/migration.ts"],"names":[],"mappings":";AAGA,wBASG"}
@@ -1,10 +0,0 @@
1
- 'use strict';var cascade=require('@warlock.js/cascade'),accessToken=require('./access-token.js');cascade.migrate(accessToken.AccessToken, {
2
- name: "accessToken",
3
- up() {
4
- this.string("accessToken").index();
5
- this.date("lastAccess");
6
- },
7
- down() {
8
- this.dropIndex("token");
9
- },
10
- });//# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sources":["../../../src/models/access-token/migration.ts"],"sourcesContent":[null],"names":["migrate","AccessToken"],"mappings":"iGAGeA,eAAO,CAACC,uBAAW,EAAE;AAClC,IAAA,IAAI,EAAE,aAAa;IACnB,EAAE,GAAA;QACA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzB;IACD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACzB;AACF,CAAA,CAAC"}
@@ -1,54 +0,0 @@
1
- import { type ChildModel, Model, type ModelSchema } from "@warlock.js/cascade";
2
- import type { DeviceInfo, TokenPair } from "../contracts/types";
3
- import type { RefreshToken } from "./refresh-token/refresh-token";
4
- export declare abstract class Auth<Schema extends ModelSchema = ModelSchema> extends Model<Schema> {
5
- /**
6
- * Get user type
7
- */
8
- abstract get userType(): string;
9
- /**
10
- * Get access token payload
11
- */
12
- accessTokenPayload(): {
13
- id: any;
14
- _id: any;
15
- userType: string;
16
- /**
17
- * Generate access token
18
- */
19
- createdAt: number;
20
- };
21
- /**
22
- * Create both access and refresh tokens
23
- */
24
- createTokenPair(deviceInfo?: DeviceInfo): Promise<TokenPair>;
25
- /**
26
- * Generate access token
27
- */
28
- generateAccessToken(data?: any): Promise<string>;
29
- /**
30
- * Generate refresh token
31
- */
32
- generateRefreshToken(deviceInfo?: DeviceInfo): Promise<RefreshToken>;
33
- /**
34
- * Remove current access token
35
- */
36
- removeAccessToken(token: string): Promise<void>;
37
- /**
38
- * Revoke all tokens (logout from all devices)
39
- */
40
- revokeAllTokens(): Promise<void>;
41
- /**
42
- * Get active sessions
43
- */
44
- activeSessions(): Promise<RefreshToken[]>;
45
- /**
46
- * Attempt to login the user
47
- */
48
- static attempt(this: ChildModel<Auth>, data: any): Promise<Auth | null>;
49
- /**
50
- * Confirm password
51
- */
52
- confirmPassword(password: string): boolean;
53
- }
54
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/models/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,8BAAsB,IAAI,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,KAAK,CAAC,MAAM,CAAC;IACxF;;OAEG;IACH,aAAoB,QAAQ,IAAI,MAAM,CAAC;IAEvC;;OAEG;IACI,kBAAkB;;;;QAWzB;;WAEG;;;IATH;;OAEG;IACU,eAAe,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzE;;OAEG;IACU,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7D;;OAEG;IACU,oBAAoB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjF;;OAEG;IACU,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAItD;;OAEG;WACiB,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIpF;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGlD"}
@@ -1,56 +0,0 @@
1
- 'use strict';var cascade=require('@warlock.js/cascade');require('@mongez/events');var auth_service=require('../services/auth.service.js');require('@mongez/fs'),require('@mongez/reinforcements'),require('@warlock.js/core'),require('@warlock.js/logger'),require('fast-jwt');class Auth extends cascade.Model {
2
- /**
3
- * Get access token payload
4
- */
5
- accessTokenPayload() {
6
- return auth_service.authService.buildAccessTokenPayload(this);
7
- }
8
- /**
9
- * Create both access and refresh tokens
10
- */
11
- async createTokenPair(deviceInfo) {
12
- return auth_service.authService.createTokenPair(this, deviceInfo);
13
- }
14
- /**
15
- * Generate access token
16
- */
17
- async generateAccessToken(data) {
18
- return auth_service.authService.generateAccessToken(this, data);
19
- }
20
- /**
21
- * Generate refresh token
22
- */
23
- async generateRefreshToken(deviceInfo) {
24
- return auth_service.authService.createRefreshToken(this, deviceInfo);
25
- }
26
- /**
27
- * Remove current access token
28
- */
29
- async removeAccessToken(token) {
30
- return auth_service.authService.removeAccessToken(this, token);
31
- }
32
- /**
33
- * Revoke all tokens (logout from all devices)
34
- */
35
- async revokeAllTokens() {
36
- return auth_service.authService.revokeAllTokens(this);
37
- }
38
- /**
39
- * Get active sessions
40
- */
41
- async activeSessions() {
42
- return auth_service.authService.getActiveSessions(this);
43
- }
44
- /**
45
- * Attempt to login the user
46
- */
47
- static async attempt(data) {
48
- return auth_service.authService.attemptLogin(this, data);
49
- }
50
- /**
51
- * Confirm password
52
- */
53
- confirmPassword(password) {
54
- return auth_service.authService.verifyPassword(this.string("password"), password);
55
- }
56
- }exports.Auth=Auth;//# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sources":["../../src/models/auth.ts"],"sourcesContent":[null],"names":["Model","authService"],"mappings":"gRAKM,MAAgB,IAA+C,SAAQA,aAAa,CAAA;AAMxF;;AAEG;IACI,kBAAkB,GAAA;AACvB,QAAA,OAAOC,wBAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KAClD;AAED;;AAEG;IACI,MAAM,eAAe,CAAC,UAAuB,EAAA;QAClD,OAAOA,wBAAW,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KACtD;AAED;;AAEG;IACI,MAAM,mBAAmB,CAAC,IAAU,EAAA;QACzC,OAAOA,wBAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACpD;AAED;;AAEG;IACI,MAAM,oBAAoB,CAAC,UAAuB,EAAA;QACvD,OAAOA,wBAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KACzD;AAED;;AAEG;IACI,MAAM,iBAAiB,CAAC,KAAa,EAAA;QAC1C,OAAOA,wBAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD;AAED;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,OAAOA,wBAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KAC1C;AAED;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,OAAOA,wBAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC5C;AAED;;AAEG;AACI,IAAA,aAAa,OAAO,CAAyB,IAAS,EAAA;QAC3D,OAAOA,wBAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7C;AAED;;AAEG;AACI,IAAA,eAAe,CAAC,QAAgB,EAAA;AACrC,QAAA,OAAOA,wBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,EAAE,QAAQ,CAAC,CAAC;KACvE;AACF"}
@@ -1,7 +0,0 @@
1
- import type { Model } from "@warlock.js/cascade";
2
- /**
3
- * Cast password on model save
4
- * If the password is not changed, keep it as is
5
- */
6
- export declare function castPassword(value: any, column: string, model: Model): any;
7
- //# sourceMappingURL=cast-password.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cast-password.d.ts","sourceRoot":"","sources":["../../../src/models/casts/cast-password.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,OAIpE"}