@authticon/client 0.0.0-beta2 → 0.0.0-beta21

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 (95) hide show
  1. package/dist/Acccount.d.ts +9 -0
  2. package/dist/Acccount.d.ts.map +1 -0
  3. package/dist/Acccount.js +22 -0
  4. package/dist/Acccount.js.map +1 -0
  5. package/dist/Auth.d.ts +7 -15
  6. package/dist/Auth.d.ts.map +1 -1
  7. package/dist/Auth.js +15 -24
  8. package/dist/Auth.js.map +1 -1
  9. package/dist/Authticon.d.ts +129 -11
  10. package/dist/Authticon.d.ts.map +1 -1
  11. package/dist/Authticon.js +86 -1
  12. package/dist/Authticon.js.map +1 -1
  13. package/dist/Challange.d.ts +8 -0
  14. package/dist/Challange.d.ts.map +1 -0
  15. package/dist/Challange.js +24 -0
  16. package/dist/Challange.js.map +1 -0
  17. package/dist/CookieStorageAdapter.d.ts +14 -0
  18. package/dist/CookieStorageAdapter.d.ts.map +1 -0
  19. package/dist/CookieStorageAdapter.js +43 -0
  20. package/dist/CookieStorageAdapter.js.map +1 -0
  21. package/dist/CookieStorageAdapter.test.d.ts +2 -0
  22. package/dist/CookieStorageAdapter.test.d.ts.map +1 -0
  23. package/dist/CookieStorageAdapter.test.js +137 -0
  24. package/dist/CookieStorageAdapter.test.js.map +1 -0
  25. package/dist/InMemoryCacheAdapter.d.ts +3 -0
  26. package/dist/InMemoryCacheAdapter.d.ts.map +1 -0
  27. package/dist/InMemoryCacheAdapter.js +13 -0
  28. package/dist/InMemoryCacheAdapter.js.map +1 -0
  29. package/dist/InMemoryCacheAdapter.test.d.ts +2 -0
  30. package/dist/InMemoryCacheAdapter.test.d.ts.map +1 -0
  31. package/dist/InMemoryCacheAdapter.test.js +38 -0
  32. package/dist/InMemoryCacheAdapter.test.js.map +1 -0
  33. package/dist/Session.d.ts +10 -0
  34. package/dist/Session.d.ts.map +1 -0
  35. package/dist/Session.js +16 -0
  36. package/dist/Session.js.map +1 -0
  37. package/dist/TokenManager.d.ts +15 -8
  38. package/dist/TokenManager.d.ts.map +1 -1
  39. package/dist/TokenManager.js +23 -22
  40. package/dist/TokenManager.js.map +1 -1
  41. package/dist/TokenManager.test.js +15 -27
  42. package/dist/TokenManager.test.js.map +1 -1
  43. package/dist/TokenStorage.d.ts +14 -2
  44. package/dist/TokenStorage.d.ts.map +1 -1
  45. package/dist/TokenStorage.js +69 -11
  46. package/dist/TokenStorage.js.map +1 -1
  47. package/dist/TokenStorage.test.js +70 -4
  48. package/dist/TokenStorage.test.js.map +1 -1
  49. package/dist/TokenVerifier.d.ts +7 -5
  50. package/dist/TokenVerifier.d.ts.map +1 -1
  51. package/dist/TokenVerifier.js +36 -15
  52. package/dist/TokenVerifier.js.map +1 -1
  53. package/dist/TokenVerifier.test.js +22 -0
  54. package/dist/TokenVerifier.test.js.map +1 -1
  55. package/dist/TwoFa.d.ts +26 -0
  56. package/dist/TwoFa.d.ts.map +1 -0
  57. package/dist/TwoFa.js +55 -0
  58. package/dist/TwoFa.js.map +1 -0
  59. package/dist/User.d.ts +25 -0
  60. package/dist/User.d.ts.map +1 -0
  61. package/dist/User.js +27 -0
  62. package/dist/User.js.map +1 -0
  63. package/dist/Users.d.ts +3 -3
  64. package/dist/Users.d.ts.map +1 -1
  65. package/dist/Users.js +7 -6
  66. package/dist/Users.js.map +1 -1
  67. package/dist/errors.d.ts +22 -0
  68. package/dist/errors.d.ts.map +1 -0
  69. package/dist/errors.js +40 -0
  70. package/dist/errors.js.map +1 -0
  71. package/dist/errors.test.d.ts +2 -0
  72. package/dist/errors.test.d.ts.map +1 -0
  73. package/dist/errors.test.js +99 -0
  74. package/dist/errors.test.js.map +1 -0
  75. package/dist/generated/index.d.ts +2 -2
  76. package/dist/generated/index.d.ts.map +1 -1
  77. package/dist/generated/index.js +1 -1
  78. package/dist/generated/index.js.map +1 -1
  79. package/dist/generated/sdk.gen.d.ts +15 -24
  80. package/dist/generated/sdk.gen.d.ts.map +1 -1
  81. package/dist/generated/sdk.gen.js +56 -121
  82. package/dist/generated/sdk.gen.js.map +1 -1
  83. package/dist/generated/types.gen.d.ts +270 -600
  84. package/dist/generated/types.gen.d.ts.map +1 -1
  85. package/dist/index.d.ts +5 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +4 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/types.d.ts +23 -3
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/user.d.ts +54 -0
  92. package/dist/user.d.ts.map +1 -0
  93. package/dist/user.js +55 -0
  94. package/dist/user.js.map +1 -0
  95. package/package.json +4 -1
@@ -1,20 +1,27 @@
1
1
  const DEFAULT_ACCESS_TOKEN_NAME = "access_token";
2
2
  const DEFAULT_REFRESH_TOKEN_NAME = "refresh_token";
3
3
  const DEFAULT_DEVICE_ID_NAME = "device_id";
4
+ const DEFAULT_REMEMBER_TOKEN_NAME = "remember_token";
4
5
  const DEFAULT_ACCESS_TOKEN_MAX_AGE = 900;
5
6
  const DEFAULT_REFRESH_TOKEN_MAX_AGE = 2_592_000;
7
+ const DEFAULT_REMEMBER_TOKEN_MAX_AGE = 7_776_000;
6
8
  export class TokenStorage {
7
9
  cookies;
10
+ logger;
8
11
  accessName;
9
12
  refreshName;
10
13
  deviceIdName;
14
+ rememberName;
11
15
  setOptions;
12
16
  removeOptions;
13
- constructor(cookies, options = {}) {
17
+ constructor(cookies, options = {}, logger) {
14
18
  this.cookies = cookies;
19
+ this.logger = logger;
15
20
  this.accessName = options.accessTokenName ?? DEFAULT_ACCESS_TOKEN_NAME;
16
21
  this.refreshName = options.refreshTokenName ?? DEFAULT_REFRESH_TOKEN_NAME;
17
22
  this.deviceIdName = options.deviceIdName ?? DEFAULT_DEVICE_ID_NAME;
23
+ this.rememberName =
24
+ options.rememberTokenName ?? DEFAULT_REMEMBER_TOKEN_NAME;
18
25
  const path = options.path ?? "/";
19
26
  const domain = options.domain;
20
27
  const secure = options.secure ?? true;
@@ -41,28 +48,79 @@ export class TokenStorage {
41
48
  sameSite,
42
49
  maxAge: options.refreshTokenMaxAge ?? DEFAULT_REFRESH_TOKEN_MAX_AGE,
43
50
  },
51
+ remember: {
52
+ path,
53
+ domain,
54
+ secure,
55
+ sameSite,
56
+ maxAge: options.rememberTokenMaxAge ?? DEFAULT_REMEMBER_TOKEN_MAX_AGE,
57
+ },
44
58
  };
45
59
  this.removeOptions = { path, domain };
46
60
  }
47
61
  save = (tokens) => {
48
- this.cookies.set(this.accessName, tokens.accessToken, this.setOptions.access);
49
- this.cookies.set(this.refreshName, tokens.refreshToken, this.setOptions.refresh);
50
- this.cookies.set(this.deviceIdName, tokens.deviceId, this.setOptions.deviceId);
62
+ this.setAccessToken(tokens.accessToken);
63
+ this.setRefreshToken(tokens.refreshToken);
64
+ if (tokens.deviceId) {
65
+ this.setDeviceId(tokens.deviceId);
66
+ }
67
+ if (tokens.rememberToken) {
68
+ this.setRememberToken(tokens.rememberToken);
69
+ }
70
+ };
71
+ clear = () => {
72
+ this.clearAccessToken();
73
+ this.clearRefreshToken();
74
+ this.clearDeviceId();
75
+ this.clearRememberToken();
51
76
  };
52
77
  getAccessToken = () => this.cookies.get(this.accessName);
53
78
  getRefreshToken = () => this.cookies.get(this.refreshName);
54
79
  getDeviceId = () => this.cookies.get(this.deviceIdName);
80
+ getRememberToken = () => this.cookies.get(this.rememberName);
81
+ setAccessToken = (accessToken) => {
82
+ this.logger?.debug({ accessToken: accessToken.slice(0, 10) + "..." }, "Setting access token");
83
+ this.cookies.set(this.accessName, accessToken, this.setOptions.access);
84
+ };
85
+ setRememberToken = (rememberToken) => {
86
+ this.logger?.debug({ rememberToken: rememberToken.slice(0, 10) + "..." }, "Setting remember token");
87
+ this.cookies.set(this.rememberName, rememberToken, this.setOptions.remember);
88
+ };
89
+ setRefreshToken = (refreshToken) => {
90
+ this.logger?.debug({ refreshToken: refreshToken.slice(0, 10) + "..." }, "Setting refresh token");
91
+ this.cookies.set(this.refreshName, refreshToken, this.setOptions.refresh);
92
+ };
93
+ setDeviceId = (deviceId) => {
94
+ this.logger?.debug({ deviceId }, "Setting device id");
95
+ this.cookies.set(this.deviceIdName, deviceId, this.setOptions.deviceId);
96
+ };
97
+ clearDeviceId = () => {
98
+ this.logger?.debug("Clearing device id");
99
+ this.cookies.remove(this.deviceIdName, this.removeOptions);
100
+ };
101
+ clearRememberToken = () => {
102
+ this.logger?.debug("Clearing remember token");
103
+ this.cookies.remove(this.rememberName, this.removeOptions);
104
+ };
105
+ clearRefreshToken = () => {
106
+ this.logger?.debug("Clearing refresh token");
107
+ this.cookies.remove(this.refreshName, this.removeOptions);
108
+ };
109
+ clearAccessToken = () => {
110
+ this.logger?.debug("Clearing access token");
111
+ this.cookies.remove(this.accessName, this.removeOptions);
112
+ };
55
113
  getAll = () => {
56
114
  const accessToken = this.getAccessToken();
57
115
  const refreshToken = this.getRefreshToken();
58
- const deviceId = this.getDeviceId();
59
- if (accessToken === null || refreshToken === null || deviceId === null)
116
+ if (!accessToken || !refreshToken)
60
117
  return null;
61
- return { accessToken, refreshToken, deviceId };
62
- };
63
- clear = () => {
64
- this.cookies.remove(this.accessName, this.removeOptions);
65
- this.cookies.remove(this.refreshName, this.removeOptions);
118
+ return {
119
+ accessToken,
120
+ refreshToken,
121
+ deviceId: this.getDeviceId() ?? undefined,
122
+ rememberToken: this.getRememberToken() ?? undefined,
123
+ };
66
124
  };
67
125
  }
68
126
  //# sourceMappingURL=TokenStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenStorage.js","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenStorage.js","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"AASA,MAAM,yBAAyB,GAAG,cAAc,CAAC;AACjD,MAAM,0BAA0B,GAAG,eAAe,CAAC;AACnD,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AACrD,MAAM,4BAA4B,GAAG,GAAG,CAAC;AACzC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAEjD,MAAM,OAAO,YAAY;IAcJ;IAEA;IAfF,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,UAAU,CAKzB;IACe,aAAa,CAAsB;IAEpD,YACmB,OAAsB,EACvC,UAA+B,EAAE,EAChB,MAAe;QAFf,YAAO,GAAP,OAAO,CAAe;QAEtB,WAAM,GAAN,MAAM,CAAS;QAEhC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,yBAAyB,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC;QACnE,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;QAE3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAE3C,IAAI,CAAC,UAAU,GAAG;YAChB,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,MAAM,EAAE,OAAO,CAAC,iBAAiB,IAAI,4BAA4B;aAClE;YACD,OAAO,EAAE;gBACP,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,IAAI,6BAA6B;aACpE;YACD,QAAQ,EAAE;gBACR,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,IAAI,6BAA6B;aACpE;YACD,QAAQ,EAAE;gBACR,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,MAAM,EAAE,OAAO,CAAC,mBAAmB,IAAI,8BAA8B;aACtE;SACF,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC;IAEQ,IAAI,GAAG,CAAC,MAAiB,EAAQ,EAAE;QAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEO,KAAK,GAAG,GAAS,EAAE;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEO,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEzD,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3D,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAExD,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE7D,cAAc,GAAG,CAAC,WAAmB,EAAQ,EAAE;QACtD,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,EACjD,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC,CAAC;IAEO,gBAAgB,GAAG,CAAC,aAAqB,EAAQ,EAAE;QAC1D,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,EACrD,wBAAwB,CACzB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzB,CAAC;IACJ,CAAC,CAAC;IAEO,eAAe,GAAG,CAAC,YAAoB,EAAQ,EAAE;QACxD,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,EAAE,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,EACnD,uBAAuB,CACxB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEO,WAAW,GAAG,CAAC,QAAgB,EAAQ,EAAE;QAChD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEO,aAAa,GAAG,GAAS,EAAE;QAClC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEO,kBAAkB,GAAG,GAAS,EAAE;QACvC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEO,iBAAiB,GAAG,GAAS,EAAE;QACtC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEO,gBAAgB,GAAG,GAAS,EAAE;QACrC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEO,MAAM,GAAG,GAAqB,EAAE;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO;YACL,WAAW;YACX,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS;YACzC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,SAAS;SACpD,CAAC;IACJ,CAAC,CAAC;CACH"}
@@ -114,12 +114,14 @@ describe("TokenStorage", () => {
114
114
  vi.mocked(adapter.get)
115
115
  .mockReturnValueOnce("access-val")
116
116
  .mockReturnValueOnce("refresh-val")
117
- .mockReturnValueOnce("device-val");
117
+ .mockReturnValueOnce("device-val")
118
+ .mockReturnValueOnce("remember-val");
118
119
  const storage = new TokenStorage(adapter);
119
120
  expect(storage.getAll()).toEqual({
120
121
  accessToken: "access-val",
121
122
  refreshToken: "refresh-val",
122
123
  deviceId: "device-val",
124
+ rememberToken: "remember-val",
123
125
  });
124
126
  });
125
127
  it("should return null when access token is missing", () => {
@@ -138,21 +140,77 @@ describe("TokenStorage", () => {
138
140
  const storage = new TokenStorage(adapter);
139
141
  expect(storage.getAll()).toBeNull();
140
142
  });
141
- it("should return null when device id is missing", () => {
143
+ it("should return tokens without optional fields when device id is missing", () => {
142
144
  vi.mocked(adapter.get)
143
145
  .mockReturnValueOnce("access-val")
144
146
  .mockReturnValueOnce("refresh-val")
147
+ .mockReturnValueOnce(null)
145
148
  .mockReturnValueOnce(null);
146
149
  const storage = new TokenStorage(adapter);
147
- expect(storage.getAll()).toBeNull();
150
+ expect(storage.getAll()).toEqual({
151
+ accessToken: "access-val",
152
+ refreshToken: "refresh-val",
153
+ });
148
154
  });
149
155
  it("should return null when all tokens are missing", () => {
150
156
  const storage = new TokenStorage(adapter);
151
157
  expect(storage.getAll()).toBeNull();
152
158
  });
153
159
  });
160
+ describe("setRememberToken", () => {
161
+ it("should set remember token via adapter with default options", () => {
162
+ const storage = new TokenStorage(adapter);
163
+ storage.setRememberToken("rem-abc");
164
+ expect(adapter.set).toHaveBeenCalledWith("remember_token", "rem-abc", {
165
+ path: "/",
166
+ domain: undefined,
167
+ secure: true,
168
+ sameSite: "Lax",
169
+ maxAge: 7_776_000,
170
+ });
171
+ });
172
+ it("should use custom remember token name", () => {
173
+ const storage = new TokenStorage(adapter, {
174
+ rememberTokenName: "my_remember",
175
+ });
176
+ storage.setRememberToken("rem-xyz");
177
+ expect(adapter.set).toHaveBeenCalledWith("my_remember", "rem-xyz", expect.any(Object));
178
+ });
179
+ it("should use custom rememberTokenMaxAge", () => {
180
+ const storage = new TokenStorage(adapter, {
181
+ rememberTokenMaxAge: 999,
182
+ });
183
+ storage.setRememberToken("rem-1");
184
+ expect(adapter.set).toHaveBeenCalledWith("remember_token", "rem-1", {
185
+ path: "/",
186
+ domain: undefined,
187
+ secure: true,
188
+ sameSite: "Lax",
189
+ maxAge: 999,
190
+ });
191
+ });
192
+ });
193
+ describe("getRememberToken", () => {
194
+ it("should delegate to adapter.get with remember token name", () => {
195
+ vi.mocked(adapter.get).mockReturnValue("rem-token");
196
+ const storage = new TokenStorage(adapter);
197
+ expect(storage.getRememberToken()).toBe("rem-token");
198
+ expect(adapter.get).toHaveBeenCalledWith("remember_token");
199
+ });
200
+ it("should return null when adapter returns null", () => {
201
+ const storage = new TokenStorage(adapter);
202
+ expect(storage.getRememberToken()).toBeNull();
203
+ });
204
+ it("should use custom remember token name", () => {
205
+ const storage = new TokenStorage(adapter, {
206
+ rememberTokenName: "custom_rem",
207
+ });
208
+ storage.getRememberToken();
209
+ expect(adapter.get).toHaveBeenCalledWith("custom_rem");
210
+ });
211
+ });
154
212
  describe("clear", () => {
155
- it("should remove both tokens via adapter", () => {
213
+ it("should remove all tokens via adapter", () => {
156
214
  const storage = new TokenStorage(adapter);
157
215
  storage.clear();
158
216
  expect(adapter.remove).toHaveBeenCalledWith("access_token", {
@@ -163,6 +221,10 @@ describe("TokenStorage", () => {
163
221
  path: "/",
164
222
  domain: undefined,
165
223
  });
224
+ expect(adapter.remove).toHaveBeenCalledWith("remember_token", {
225
+ path: "/",
226
+ domain: undefined,
227
+ });
166
228
  });
167
229
  it("should pass domain to remove options", () => {
168
230
  const storage = new TokenStorage(adapter, {
@@ -173,6 +235,10 @@ describe("TokenStorage", () => {
173
235
  path: "/",
174
236
  domain: ".example.com",
175
237
  });
238
+ expect(adapter.remove).toHaveBeenCalledWith("remember_token", {
239
+ path: "/",
240
+ domain: ".example.com",
241
+ });
176
242
  });
177
243
  });
178
244
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TokenStorage.test.js","sourceRoot":"","sources":["../src/TokenStorage.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenStorage.test.js","sourceRoot":"","sources":["../src/TokenStorage.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
- import { type JWTPayload } from "jose";
2
- export declare class TokenVerifier {
1
+ import type { Logger } from "pino";
2
+ import type { AccessTokenPayload, CacheAdapter } from "./types.js";
3
+ export declare class TokenVerifier<Payload extends Record<string, any>> {
3
4
  private readonly jwksUrl;
4
5
  private readonly cacheTtlMs;
5
- private cached;
6
- constructor(jwksUrl: string, cacheTtlMs?: number);
6
+ private readonly logger?;
7
+ private readonly cache;
8
+ constructor(jwksUrl: string, cacheTtlMs?: number, logger?: Logger | undefined, cache?: CacheAdapter);
7
9
  private readonly fetchJwks;
8
10
  private readonly getCachedOrFetch;
9
11
  private readonly resolveKey;
10
- readonly verifyToken: (token: string) => Promise<JWTPayload>;
12
+ readonly verifyToken: (token: string) => Promise<AccessTokenPayload<Payload>>;
11
13
  readonly clearKeyCache: () => void;
12
14
  }
13
15
  //# sourceMappingURL=TokenVerifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenVerifier.d.ts","sourceRoot":"","sources":["../src/TokenVerifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAGhB,MAAM,MAAM,CAAC;AAmCd,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ7B,OAAO,CAAC,MAAM,CAA2B;gBAGtB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAA6B;IAG5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAOxB;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAO/B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAczB;IAEF,QAAQ,CAAC,WAAW,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,CAS/D;IAEF,QAAQ,CAAC,aAAa,QAAO,IAAI,CAE/B;CACH"}
1
+ {"version":3,"file":"TokenVerifier.d.ts","sourceRoot":"","sources":["../src/TokenVerifier.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkCnE,qBAAa,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAL1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAGlB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAA6B,EACzC,MAAM,CAAC,EAAE,MAAM,YAAA,EAChC,KAAK,CAAC,EAAE,YAAY;IAKtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAWxB;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAQ/B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAYzB;IAEF,QAAQ,CAAC,WAAW,GAClB,OAAO,MAAM,KACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAmBrC;IAEF,QAAQ,CAAC,aAAa,QAAO,IAAI,CAG/B;CACH"}
@@ -1,6 +1,10 @@
1
- import { jwtVerify, importJWK, decodeProtectedHeader, } from "jose";
2
1
  import axios from "axios";
2
+ import * as jose from "jose";
3
+ import { decodeProtectedHeader, importJWK, jwtVerify, } from "jose";
4
+ import { AuthticonError, AuthticonTokenError } from "./errors.js";
5
+ import { createInMemoryCacheAdapter } from "./InMemoryCacheAdapter.js";
3
6
  const DEFAULT_CACHE_TTL_MS = 3_600_000;
7
+ const JWKS_CACHE_KEY = "authticon:jwks";
4
8
  const importKeysFromJwks = async (jwks) => {
5
9
  const keysWithKid = jwks.filter((jwk) => typeof jwk.kid === "string");
6
10
  const entries = await Promise.all(keysWithKid.map(async (jwk) => {
@@ -15,20 +19,28 @@ const importKeysFromJwks = async (jwks) => {
15
19
  export class TokenVerifier {
16
20
  jwksUrl;
17
21
  cacheTtlMs;
18
- cached = null;
19
- constructor(jwksUrl, cacheTtlMs = DEFAULT_CACHE_TTL_MS) {
22
+ logger;
23
+ cache;
24
+ constructor(jwksUrl, cacheTtlMs = DEFAULT_CACHE_TTL_MS, logger, cache) {
20
25
  this.jwksUrl = jwksUrl;
21
26
  this.cacheTtlMs = cacheTtlMs;
27
+ this.logger = logger;
28
+ this.cache = cache ?? createInMemoryCacheAdapter();
22
29
  }
23
30
  fetchJwks = async () => {
24
31
  const { data } = await axios.get(this.jwksUrl);
25
32
  const keys = await importKeysFromJwks(data.keys);
26
- this.cached = { keys, fetchedAt: Date.now() };
33
+ this.cache.set(JWKS_CACHE_KEY, {
34
+ keys,
35
+ fetchedAt: Date.now(),
36
+ });
37
+ this.logger?.debug({ jwksUrl: this.jwksUrl }, "JWKS fetched");
27
38
  return keys;
28
39
  };
29
40
  getCachedOrFetch = async () => {
30
- if (this.cached && Date.now() - this.cached.fetchedAt < this.cacheTtlMs) {
31
- return this.cached.keys;
41
+ const cached = this.cache.get(JWKS_CACHE_KEY);
42
+ if (cached && Date.now() - cached.fetchedAt < this.cacheTtlMs) {
43
+ return cached.keys;
32
44
  }
33
45
  return this.fetchJwks();
34
46
  };
@@ -37,25 +49,34 @@ export class TokenVerifier {
37
49
  const key = keys.get(kid);
38
50
  if (key)
39
51
  return key;
40
- this.cached = null;
52
+ this.cache.delete(JWKS_CACHE_KEY);
41
53
  const freshKeys = await this.fetchJwks();
42
54
  const freshKey = freshKeys.get(kid);
43
55
  if (!freshKey) {
44
- throw new Error(`Key with kid "${kid}" not found in JWKS`);
56
+ throw new AuthticonError(`Key with kid "${kid}" not found in JWKS`);
45
57
  }
46
58
  return freshKey;
47
59
  };
48
60
  verifyToken = async (token) => {
49
- const header = decodeProtectedHeader(token);
50
- if (!header.kid) {
51
- throw new Error("Token header is missing 'kid' claim");
61
+ try {
62
+ const header = decodeProtectedHeader(token);
63
+ if (!header.kid) {
64
+ throw new AuthticonError("Token header is missing 'kid' claim");
65
+ }
66
+ const key = await this.resolveKey(header.kid);
67
+ const { payload } = await jwtVerify(token, key);
68
+ return payload;
69
+ }
70
+ catch (error) {
71
+ if (error instanceof jose.errors.JOSEError) {
72
+ throw new AuthticonTokenError(error.message, error.code, error);
73
+ }
74
+ throw error;
52
75
  }
53
- const key = await this.resolveKey(header.kid);
54
- const { payload } = await jwtVerify(token, key);
55
- return payload;
56
76
  };
57
77
  clearKeyCache = () => {
58
- this.cached = null;
78
+ this.cache.delete(JWKS_CACHE_KEY);
79
+ this.logger?.debug("Key cache cleared");
59
80
  };
60
81
  }
61
82
  //# sourceMappingURL=TokenVerifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenVerifier.js","sourceRoot":"","sources":["../src/TokenVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenVerifier.js","sourceRoot":"","sources":["../src/TokenVerifier.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { createInMemoryCacheAdapter } from "./InMemoryCacheAdapter.js";
2
3
  import { TokenVerifier } from "./TokenVerifier.js";
3
4
  import { generateKeyPair, exportJWK, SignJWT, } from "jose";
4
5
  import axios from "axios";
@@ -113,5 +114,26 @@ describe("TokenVerifier", () => {
113
114
  const token = await signToken(privateKey, "key-no-match");
114
115
  await expect(verifier.verifyToken(token)).rejects.toThrow("not found in JWKS");
115
116
  });
117
+ it("should share cache across multiple TokenVerifier instances", async () => {
118
+ const { privateKey, jwk } = await createTestKeyPair("key-1");
119
+ vi.mocked(axios.get).mockResolvedValue({ data: { keys: [jwk] } });
120
+ const sharedCache = createInMemoryCacheAdapter();
121
+ const verifier1 = new TokenVerifier(JWKS_URL, undefined, undefined, sharedCache);
122
+ const verifier2 = new TokenVerifier(JWKS_URL, undefined, undefined, sharedCache);
123
+ const token = await signToken(privateKey, "key-1", { sub: "user-1" });
124
+ await verifier1.verifyToken(token);
125
+ await verifier2.verifyToken(token);
126
+ expect(axios.get).toHaveBeenCalledTimes(1);
127
+ });
128
+ it("should not share cache when no external adapter is provided", async () => {
129
+ const { privateKey, jwk } = await createTestKeyPair("key-1");
130
+ vi.mocked(axios.get).mockResolvedValue({ data: { keys: [jwk] } });
131
+ const verifier1 = new TokenVerifier(JWKS_URL);
132
+ const verifier2 = new TokenVerifier(JWKS_URL);
133
+ const token = await signToken(privateKey, "key-1", { sub: "user-1" });
134
+ await verifier1.verifyToken(token);
135
+ await verifier2.verifyToken(token);
136
+ expect(axios.get).toHaveBeenCalledTimes(2);
137
+ });
116
138
  });
117
139
  //# sourceMappingURL=TokenVerifier.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenVerifier.test.js","sourceRoot":"","sources":["../src/TokenVerifier.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenVerifier.test.js","sourceRoot":"","sources":["../src/TokenVerifier.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Client } from "./generated/client/index.js";
2
+ import { type PostApiV1UsersByUserIdTwoFaData } from "./generated/index.js";
3
+ export declare class TwoFa {
4
+ private readonly client;
5
+ constructor(client: Client);
6
+ getSecret(userId: string): Promise<{
7
+ secret: string;
8
+ uri: string;
9
+ }>;
10
+ enableEmail(userId: string): Promise<{
11
+ success: boolean;
12
+ }>;
13
+ enablePhone(userId: string): Promise<{
14
+ success: boolean;
15
+ }>;
16
+ enableApp(userId: string, code: string): Promise<{
17
+ success: boolean;
18
+ }>;
19
+ set(userId: string, params: PostApiV1UsersByUserIdTwoFaData["body"]): Promise<{
20
+ success: boolean;
21
+ }>;
22
+ disable(userId: string, code: string): Promise<{
23
+ success: boolean;
24
+ }>;
25
+ }
26
+ //# sourceMappingURL=TwoFa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwoFa.d.ts","sourceRoot":"","sources":["../src/TwoFa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,SAAS,CAAC,MAAM,EAAE,MAAM;;;;IAUxB,WAAW,CAAC,MAAM,EAAE,MAAM;;;IAM1B,WAAW,CAAC,MAAM,EAAE,MAAM;;;IAM1B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;IAOtC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,+BAA+B,CAAC,MAAM,CAAC;;;IAWnE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;CAY3C"}
package/dist/TwoFa.js ADDED
@@ -0,0 +1,55 @@
1
+ import { deleteApiV1UsersByUserIdTwoFa, getApiV1UsersByUserIdTwoFaSecret, postApiV1UsersByUserIdTwoFa, } from "./generated/index.js";
2
+ export class TwoFa {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ async getSecret(userId) {
8
+ const { data } = await getApiV1UsersByUserIdTwoFaSecret({
9
+ client: this.client,
10
+ path: {
11
+ userId,
12
+ },
13
+ });
14
+ return data;
15
+ }
16
+ async enableEmail(userId) {
17
+ return this.set(userId, {
18
+ type: "EMAIL",
19
+ });
20
+ }
21
+ async enablePhone(userId) {
22
+ return this.set(userId, {
23
+ type: "PHONE",
24
+ });
25
+ }
26
+ async enableApp(userId, code) {
27
+ return this.set(userId, {
28
+ code,
29
+ type: "APP",
30
+ });
31
+ }
32
+ async set(userId, params) {
33
+ const { data } = await postApiV1UsersByUserIdTwoFa({
34
+ client: this.client,
35
+ body: params,
36
+ path: {
37
+ userId,
38
+ },
39
+ });
40
+ return data;
41
+ }
42
+ async disable(userId, code) {
43
+ const { data } = await deleteApiV1UsersByUserIdTwoFa({
44
+ client: this.client,
45
+ body: {
46
+ code,
47
+ },
48
+ path: {
49
+ userId,
50
+ },
51
+ });
52
+ return data;
53
+ }
54
+ }
55
+ //# sourceMappingURL=TwoFa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwoFa.js","sourceRoot":"","sources":["../src/TwoFa.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,GAE5B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,KAAK;IACa;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,gCAAgC,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE;gBACJ,MAAM;aACP;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAY;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,IAAI;YACJ,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,MAA+C;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,2BAA2B,CAAC;YACjD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,MAAM;aACP;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAY;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,6BAA6B,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE;gBACJ,IAAI;aACL;YACD,IAAI,EAAE;gBACJ,MAAM;aACP;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
package/dist/User.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import type { Authticon } from "./Authticon.js";
2
+ import type { AccessTokenPayload } from "./types.js";
3
+ export declare class User {
4
+ private readonly authticon;
5
+ private readonly accessTokenPayload;
6
+ constructor(authticon: Authticon, accessTokenPayload: AccessTokenPayload);
7
+ get id(): string;
8
+ twoFa: {
9
+ enablePhone: (secret: string) => Promise<{
10
+ success: boolean;
11
+ }>;
12
+ enableEmail: (secret: string) => Promise<{
13
+ success: boolean;
14
+ }>;
15
+ enableApp: (secret: string, token: string) => Promise<{
16
+ success: boolean;
17
+ }>;
18
+ disable: (token: string) => Promise<{
19
+ success: boolean;
20
+ }>;
21
+ };
22
+ changeEmail: (newEmail: string) => Promise<null>;
23
+ changePassword: (newPassword: string, oldPassword: string) => Promise<null>;
24
+ }
25
+ //# sourceMappingURL=User.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,IAAI;IAET,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB;IAI3D,IAAI,EAAE,WAEL;IAEM,KAAK;8BACc,MAAM;;;8BAEN,MAAM;;;4BAER,MAAM,SAAS,MAAM;;;yBAExB,MAAM;;;MAE1B;IAEM,WAAW,GAAI,UAAU,MAAM,mBAI/B;IAEA,cAAc,GAAI,aAAa,MAAM,EAAE,aAAa,MAAM,mBAK1D;CACV"}