@warlock.js/auth 4.0.161 → 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.
Files changed (83) hide show
  1. package/esm/commands/auth-cleanup-command.d.ts +10 -0
  2. package/esm/commands/auth-cleanup-command.d.ts.map +1 -0
  3. package/esm/commands/auth-cleanup-command.js +29 -0
  4. package/esm/commands/auth-cleanup-command.js.map +1 -0
  5. package/esm/commands/jwt-secret-generator-command.d.ts +2 -0
  6. package/esm/commands/jwt-secret-generator-command.d.ts.map +1 -0
  7. package/esm/commands/jwt-secret-generator-command.js +7 -0
  8. package/esm/commands/jwt-secret-generator-command.js.map +1 -0
  9. package/esm/contracts/auth-contract.d.ts +23 -0
  10. package/esm/contracts/auth-contract.d.ts.map +1 -0
  11. package/esm/contracts/index.d.ts +3 -0
  12. package/esm/contracts/index.d.ts.map +1 -0
  13. package/esm/contracts/types.d.ts +167 -0
  14. package/esm/contracts/types.d.ts.map +1 -0
  15. package/esm/contracts/types.js +20 -0
  16. package/esm/contracts/types.js.map +1 -0
  17. package/esm/index.d.ts +8 -0
  18. package/esm/index.d.ts.map +1 -0
  19. package/esm/index.js +1 -0
  20. package/esm/index.js.map +1 -0
  21. package/esm/middleware/auth.middleware.d.ts +2 -0
  22. package/esm/middleware/auth.middleware.d.ts.map +1 -0
  23. package/esm/middleware/auth.middleware.js +72 -0
  24. package/esm/middleware/auth.middleware.js.map +1 -0
  25. package/esm/middleware/index.d.ts +2 -0
  26. package/esm/middleware/index.d.ts.map +1 -0
  27. package/esm/models/access-token/access-token.model.d.ts +9 -0
  28. package/esm/models/access-token/access-token.model.d.ts.map +1 -0
  29. package/esm/models/access-token/access-token.model.js +14 -0
  30. package/esm/models/access-token/access-token.model.js.map +1 -0
  31. package/esm/models/access-token/index.d.ts +2 -0
  32. package/esm/models/access-token/index.d.ts.map +1 -0
  33. package/esm/models/access-token/migration.d.ts +2 -0
  34. package/esm/models/access-token/migration.d.ts.map +1 -0
  35. package/esm/models/access-token/migration.js +22 -0
  36. package/esm/models/access-token/migration.js.map +1 -0
  37. package/esm/models/auth.model.d.ts +58 -0
  38. package/esm/models/auth.model.d.ts.map +1 -0
  39. package/esm/models/auth.model.js +68 -0
  40. package/esm/models/auth.model.js.map +1 -0
  41. package/esm/models/index.d.ts +5 -0
  42. package/esm/models/index.d.ts.map +1 -0
  43. package/esm/models/index.js +1 -0
  44. package/esm/models/index.js.map +1 -0
  45. package/esm/models/refresh-token/index.d.ts +2 -0
  46. package/esm/models/refresh-token/index.d.ts.map +1 -0
  47. package/esm/models/refresh-token/migration.d.ts +2 -0
  48. package/esm/models/refresh-token/migration.d.ts.map +1 -0
  49. package/esm/models/refresh-token/migration.js +23 -0
  50. package/esm/models/refresh-token/migration.js.map +1 -0
  51. package/esm/models/refresh-token/refresh-token.model.d.ts +32 -0
  52. package/esm/models/refresh-token/refresh-token.model.d.ts.map +1 -0
  53. package/esm/models/refresh-token/refresh-token.model.js +53 -0
  54. package/esm/models/refresh-token/refresh-token.model.js.map +1 -0
  55. package/esm/services/auth-events.d.ts +85 -0
  56. package/esm/services/auth-events.d.ts.map +1 -0
  57. package/esm/services/auth-events.js +65 -0
  58. package/esm/services/auth-events.js.map +1 -0
  59. package/esm/services/auth.service.d.ts +92 -0
  60. package/esm/services/auth.service.d.ts.map +1 -0
  61. package/esm/services/auth.service.js +322 -0
  62. package/esm/services/auth.service.js.map +1 -0
  63. package/esm/services/generate-jwt-secret.d.ts +2 -0
  64. package/esm/services/generate-jwt-secret.d.ts.map +1 -0
  65. package/esm/services/generate-jwt-secret.js +47 -0
  66. package/esm/services/generate-jwt-secret.js.map +1 -0
  67. package/esm/services/index.d.ts +5 -0
  68. package/esm/services/index.d.ts.map +1 -0
  69. package/esm/services/jwt.d.ts +23 -0
  70. package/esm/services/jwt.d.ts.map +1 -0
  71. package/esm/services/jwt.js +40 -0
  72. package/esm/services/jwt.js.map +1 -0
  73. package/esm/utils/auth-error-codes.d.ts +18 -0
  74. package/esm/utils/auth-error-codes.d.ts.map +1 -0
  75. package/esm/utils/auth-error-codes.js +18 -0
  76. package/esm/utils/auth-error-codes.js.map +1 -0
  77. package/esm/utils/duration.d.ts +45 -0
  78. package/esm/utils/duration.d.ts.map +1 -0
  79. package/esm/utils/duration.js +93 -0
  80. package/esm/utils/duration.js.map +1 -0
  81. package/esm/utils/index.d.ts +3 -0
  82. package/esm/utils/index.d.ts.map +1 -0
  83. package/package.json +5 -5
@@ -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,3 @@
1
+ export * from "./auth-error-codes";
2
+ export * from "./duration";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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.161",
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.161",
16
- "@warlock.js/core": "4.0.161",
17
- "@warlock.js/logger": "4.0.161",
18
- "@warlock.js/seal": "4.0.161"
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",