@warlock.js/auth 4.0.162 → 4.0.163
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/esm/index.d.ts +8 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/middleware/auth.middleware.d.ts +2 -0
- package/esm/middleware/auth.middleware.d.ts.map +1 -0
- package/esm/middleware/auth.middleware.js +72 -0
- package/esm/middleware/auth.middleware.js.map +1 -0
- package/esm/middleware/index.d.ts +2 -0
- package/esm/middleware/index.d.ts.map +1 -0
- package/esm/models/access-token/access-token.model.d.ts +9 -0
- package/esm/models/access-token/access-token.model.d.ts.map +1 -0
- package/esm/models/access-token/access-token.model.js +14 -0
- package/esm/models/access-token/access-token.model.js.map +1 -0
- package/esm/models/access-token/index.d.ts +2 -0
- package/esm/models/access-token/index.d.ts.map +1 -0
- package/esm/models/access-token/migration.d.ts +2 -0
- package/esm/models/access-token/migration.d.ts.map +1 -0
- package/esm/models/access-token/migration.js +22 -0
- package/esm/models/access-token/migration.js.map +1 -0
- package/esm/models/auth.model.d.ts +58 -0
- package/esm/models/auth.model.d.ts.map +1 -0
- package/esm/models/auth.model.js +68 -0
- package/esm/models/auth.model.js.map +1 -0
- package/esm/models/index.d.ts +5 -0
- package/esm/models/index.d.ts.map +1 -0
- package/esm/models/index.js +1 -0
- package/esm/models/index.js.map +1 -0
- package/esm/models/refresh-token/index.d.ts +2 -0
- package/esm/models/refresh-token/index.d.ts.map +1 -0
- package/esm/models/refresh-token/migration.d.ts +2 -0
- package/esm/models/refresh-token/migration.d.ts.map +1 -0
- package/esm/models/refresh-token/migration.js +23 -0
- package/esm/models/refresh-token/migration.js.map +1 -0
- package/esm/models/refresh-token/refresh-token.model.d.ts +32 -0
- package/esm/models/refresh-token/refresh-token.model.d.ts.map +1 -0
- package/esm/models/refresh-token/refresh-token.model.js +53 -0
- package/esm/models/refresh-token/refresh-token.model.js.map +1 -0
- package/esm/services/auth-events.d.ts +85 -0
- package/esm/services/auth-events.d.ts.map +1 -0
- package/esm/services/auth-events.js +65 -0
- package/esm/services/auth-events.js.map +1 -0
- package/esm/services/auth.service.d.ts +92 -0
- package/esm/services/auth.service.d.ts.map +1 -0
- package/esm/services/auth.service.js +322 -0
- package/esm/services/auth.service.js.map +1 -0
- package/esm/services/generate-jwt-secret.d.ts +2 -0
- package/esm/services/generate-jwt-secret.d.ts.map +1 -0
- package/esm/services/generate-jwt-secret.js +47 -0
- package/esm/services/generate-jwt-secret.js.map +1 -0
- package/esm/services/index.d.ts +5 -0
- package/esm/services/index.d.ts.map +1 -0
- package/esm/services/jwt.d.ts +23 -0
- package/esm/services/jwt.d.ts.map +1 -0
- package/esm/services/jwt.js +40 -0
- package/esm/services/jwt.js.map +1 -0
- package/esm/utils/auth-error-codes.d.ts +18 -0
- package/esm/utils/auth-error-codes.d.ts.map +1 -0
- package/esm/utils/auth-error-codes.js +18 -0
- package/esm/utils/auth-error-codes.js.map +1 -0
- package/esm/utils/duration.d.ts +45 -0
- package/esm/utils/duration.d.ts.map +1 -0
- package/esm/utils/duration.js +93 -0
- package/esm/utils/duration.js.map +1 -0
- package/esm/utils/index.d.ts +3 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum AuthErrorCodes {
|
|
2
|
+
/**
|
|
3
|
+
* Missing Access Token Error Code EC001
|
|
4
|
+
* EC001 = Missing Access Token
|
|
5
|
+
*/
|
|
6
|
+
MissingAccessToken = "EC001",
|
|
7
|
+
/**
|
|
8
|
+
* Invalid Access Token Error Code EC002
|
|
9
|
+
* EC002 = Invalid Access Token
|
|
10
|
+
*/
|
|
11
|
+
InvalidAccessToken = "EC002",
|
|
12
|
+
/**
|
|
13
|
+
* Unauthorized Error Code EC003
|
|
14
|
+
* EC003 = Unauthorized
|
|
15
|
+
*/
|
|
16
|
+
Unauthorized = "EC003"
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=auth-error-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-error-codes.d.ts","sourceRoot":"","sources":["../../src/utils/auth-error-codes.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB;;;OAGG;IACH,kBAAkB,UAAU;IAC5B;;;OAGG;IACH,kBAAkB,UAAU;IAC5B;;;OAGG;IACH,YAAY,UAAU;CACvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var AuthErrorCodes;
|
|
2
|
+
(function (AuthErrorCodes) {
|
|
3
|
+
/**
|
|
4
|
+
* Missing Access Token Error Code EC001
|
|
5
|
+
* EC001 = Missing Access Token
|
|
6
|
+
*/
|
|
7
|
+
AuthErrorCodes["MissingAccessToken"] = "EC001";
|
|
8
|
+
/**
|
|
9
|
+
* Invalid Access Token Error Code EC002
|
|
10
|
+
* EC002 = Invalid Access Token
|
|
11
|
+
*/
|
|
12
|
+
AuthErrorCodes["InvalidAccessToken"] = "EC002";
|
|
13
|
+
/**
|
|
14
|
+
* Unauthorized Error Code EC003
|
|
15
|
+
* EC003 = Unauthorized
|
|
16
|
+
*/
|
|
17
|
+
AuthErrorCodes["Unauthorized"] = "EC003";
|
|
18
|
+
})(AuthErrorCodes || (AuthErrorCodes = {}));export{AuthErrorCodes};//# sourceMappingURL=auth-error-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-error-codes.js","sources":["../../src/utils/auth-error-codes.ts"],"sourcesContent":[null],"names":[],"mappings":"IAAY,eAgBX;AAhBD,CAAA,UAAY,cAAc,EAAA;AACxB;;;AAGG;AACH,IAAA,cAAA,CAAA,oBAAA,CAAA,GAAA,OAA4B,CAAA;AAC5B;;;AAGG;AACH,IAAA,cAAA,CAAA,oBAAA,CAAA,GAAA,OAA4B,CAAA;AAC5B;;;AAGG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,OAAsB,CAAA;AACxB,CAAC,EAhBW,cAAc,KAAd,cAAc,GAgBzB,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NO_EXPIRATION } from "../contracts/types";
|
|
2
|
+
/**
|
|
3
|
+
* Duration object for specifying time periods
|
|
4
|
+
* All units are additive (e.g., { days: 1, hours: 6 } = 30 hours)
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* { hours: 1 } // 1 hour
|
|
9
|
+
* { days: 7, hours: 12 } // 7.5 days
|
|
10
|
+
* { minutes: 30 } // 30 minutes
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export type Duration = {
|
|
14
|
+
milliseconds?: number;
|
|
15
|
+
seconds?: number;
|
|
16
|
+
minutes?: number;
|
|
17
|
+
hours?: number;
|
|
18
|
+
days?: number;
|
|
19
|
+
weeks?: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Expiration value type - can be a Duration object, string format, or NO_EXPIRATION
|
|
23
|
+
*/
|
|
24
|
+
export type ExpiresIn = Duration | typeof NO_EXPIRATION | string | number;
|
|
25
|
+
/**
|
|
26
|
+
* Parse duration to milliseconds
|
|
27
|
+
* Supports Duration object, string format ("1d 2h 30m"), or number (raw ms)
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* parseExpirationToMs({ hours: 1 }) // 3600000
|
|
32
|
+
* parseExpirationToMs({ days: 1 }) // 86400000
|
|
33
|
+
* parseExpirationToMs("1h") // 3600000
|
|
34
|
+
* parseExpirationToMs("1d 2h 30m") // 95400000
|
|
35
|
+
* parseExpirationToMs(3600000) // 3600000
|
|
36
|
+
* parseExpirationToMs(NO_EXPIRATION) // undefined
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseExpirationToMs(expiration: ExpiresIn | undefined, defaultMs?: number): number | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Convert ExpiresIn to a value suitable for jwt.generate (string or number)
|
|
42
|
+
* Returns undefined if NO_EXPIRATION
|
|
43
|
+
*/
|
|
44
|
+
export declare function toJwtExpiresIn(expiration: ExpiresIn | undefined, defaultMs?: number): string | undefined;
|
|
45
|
+
//# sourceMappingURL=duration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/utils/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,GAAG,SAAS,EACjC,SAAS,GAAE,MAAgB,GAC1B,MAAM,GAAG,SAAS,CAmBpB;AAuDD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,SAAS,GAAG,SAAS,EACjC,SAAS,GAAE,MAAgB,GAC1B,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import {NO_EXPIRATION}from'../contracts/types.js';/**
|
|
2
|
+
* Parse duration to milliseconds
|
|
3
|
+
* Supports Duration object, string format ("1d 2h 30m"), or number (raw ms)
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* parseExpirationToMs({ hours: 1 }) // 3600000
|
|
8
|
+
* parseExpirationToMs({ days: 1 }) // 86400000
|
|
9
|
+
* parseExpirationToMs("1h") // 3600000
|
|
10
|
+
* parseExpirationToMs("1d 2h 30m") // 95400000
|
|
11
|
+
* parseExpirationToMs(3600000) // 3600000
|
|
12
|
+
* parseExpirationToMs(NO_EXPIRATION) // undefined
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function parseExpirationToMs(expiration, defaultMs = 3600000) {
|
|
16
|
+
if (expiration === undefined) {
|
|
17
|
+
return defaultMs;
|
|
18
|
+
}
|
|
19
|
+
if (expiration === NO_EXPIRATION) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (typeof expiration === "number") {
|
|
23
|
+
return expiration;
|
|
24
|
+
}
|
|
25
|
+
if (typeof expiration === "string") {
|
|
26
|
+
return parseStringDuration(expiration);
|
|
27
|
+
}
|
|
28
|
+
// It's a Duration object
|
|
29
|
+
return parseDurationObject(expiration);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse a Duration object to milliseconds
|
|
33
|
+
*/
|
|
34
|
+
function parseDurationObject(duration) {
|
|
35
|
+
let ms = 0;
|
|
36
|
+
if (duration.milliseconds)
|
|
37
|
+
ms += duration.milliseconds;
|
|
38
|
+
if (duration.seconds)
|
|
39
|
+
ms += duration.seconds * 1000;
|
|
40
|
+
if (duration.minutes)
|
|
41
|
+
ms += duration.minutes * 60 * 1000;
|
|
42
|
+
if (duration.hours)
|
|
43
|
+
ms += duration.hours * 60 * 60 * 1000;
|
|
44
|
+
if (duration.days)
|
|
45
|
+
ms += duration.days * 24 * 60 * 60 * 1000;
|
|
46
|
+
if (duration.weeks)
|
|
47
|
+
ms += duration.weeks * 7 * 24 * 60 * 60 * 1000;
|
|
48
|
+
return ms;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Parse a string duration to milliseconds
|
|
52
|
+
* Supports formats: "1h", "7d", "30m", "90s", "1d 2h 30m"
|
|
53
|
+
*/
|
|
54
|
+
function parseStringDuration(str) {
|
|
55
|
+
let totalMs = 0;
|
|
56
|
+
const parts = str.trim().split(/\s+/);
|
|
57
|
+
for (const part of parts) {
|
|
58
|
+
const match = part.match(/^(\d+(?:\.\d+)?)([smhdw])$/i);
|
|
59
|
+
if (!match)
|
|
60
|
+
continue;
|
|
61
|
+
const value = parseFloat(match[1]);
|
|
62
|
+
const unit = match[2].toLowerCase();
|
|
63
|
+
switch (unit) {
|
|
64
|
+
case "s":
|
|
65
|
+
totalMs += value * 1000;
|
|
66
|
+
break;
|
|
67
|
+
case "m":
|
|
68
|
+
totalMs += value * 60 * 1000;
|
|
69
|
+
break;
|
|
70
|
+
case "h":
|
|
71
|
+
totalMs += value * 60 * 60 * 1000;
|
|
72
|
+
break;
|
|
73
|
+
case "d":
|
|
74
|
+
totalMs += value * 24 * 60 * 60 * 1000;
|
|
75
|
+
break;
|
|
76
|
+
case "w":
|
|
77
|
+
totalMs += value * 7 * 24 * 60 * 60 * 1000;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return totalMs || 3600000; // Default to 1 hour if nothing parsed
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Convert ExpiresIn to a value suitable for jwt.generate (string or number)
|
|
85
|
+
* Returns undefined if NO_EXPIRATION
|
|
86
|
+
*/
|
|
87
|
+
function toJwtExpiresIn(expiration, defaultMs = 3600000) {
|
|
88
|
+
const ms = parseExpirationToMs(expiration, defaultMs);
|
|
89
|
+
if (ms === undefined)
|
|
90
|
+
return undefined;
|
|
91
|
+
// Convert ms to seconds for JWT (more common format)
|
|
92
|
+
return Math.floor(ms / 1000) + "s";
|
|
93
|
+
}export{parseExpirationToMs,toJwtExpiresIn};//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sources":["../../src/utils/duration.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warlock.js/auth",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.163",
|
|
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.
|
|
16
|
-
"@warlock.js/core": "4.0.
|
|
17
|
-
"@warlock.js/logger": "4.0.
|
|
18
|
-
"@warlock.js/seal": "4.0.
|
|
15
|
+
"@warlock.js/cascade": "4.0.163",
|
|
16
|
+
"@warlock.js/core": "4.0.163",
|
|
17
|
+
"@warlock.js/logger": "4.0.163",
|
|
18
|
+
"@warlock.js/seal": "4.0.163"
|
|
19
19
|
},
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|