@authticon/client 0.0.0-beta38 → 0.0.0-beta39

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 (263) hide show
  1. package/README.md +375 -0
  2. package/dist/TokenStorage.d.ts +6 -14
  3. package/dist/TokenStorage.d.ts.map +1 -1
  4. package/dist/TokenStorage.js +83 -109
  5. package/dist/TokenStorage.js.map +1 -1
  6. package/dist/TokenVerifier.d.ts +3 -10
  7. package/dist/TokenVerifier.d.ts.map +1 -1
  8. package/dist/TokenVerifier.js +39 -46
  9. package/dist/TokenVerifier.js.map +1 -1
  10. package/dist/admin.d.ts +2 -0
  11. package/dist/admin.d.ts.map +1 -0
  12. package/dist/admin.js +2 -0
  13. package/dist/admin.js.map +1 -0
  14. package/dist/adminClient.d.ts +104 -0
  15. package/dist/adminClient.d.ts.map +1 -0
  16. package/dist/adminClient.js +108 -0
  17. package/dist/adminClient.js.map +1 -0
  18. package/dist/apiClient.d.ts +8 -0
  19. package/dist/apiClient.d.ts.map +1 -0
  20. package/dist/apiClient.js +18 -0
  21. package/dist/apiClient.js.map +1 -0
  22. package/dist/authClient.d.ts +42 -0
  23. package/dist/authClient.d.ts.map +1 -0
  24. package/dist/authClient.js +75 -0
  25. package/dist/authClient.js.map +1 -0
  26. package/dist/authticon.d.ts +88 -0
  27. package/dist/authticon.d.ts.map +1 -0
  28. package/dist/authticon.js +24 -0
  29. package/dist/authticon.js.map +1 -0
  30. package/dist/browser.d.ts +91 -0
  31. package/dist/browser.d.ts.map +1 -0
  32. package/dist/browser.js +7 -0
  33. package/dist/browser.js.map +1 -0
  34. package/dist/clients/admin.d.ts +106 -0
  35. package/dist/clients/admin.d.ts.map +1 -0
  36. package/dist/clients/admin.js +126 -0
  37. package/dist/clients/admin.js.map +1 -0
  38. package/dist/clients/auth.d.ts +42 -0
  39. package/dist/clients/auth.d.ts.map +1 -0
  40. package/dist/clients/auth.js +74 -0
  41. package/dist/clients/auth.js.map +1 -0
  42. package/dist/clients/base.d.ts +8 -0
  43. package/dist/clients/base.d.ts.map +1 -0
  44. package/dist/clients/base.js +18 -0
  45. package/dist/clients/base.js.map +1 -0
  46. package/dist/clients/generated/client/client.gen.d.ts +3 -0
  47. package/dist/clients/generated/client/client.gen.d.ts.map +1 -0
  48. package/dist/clients/generated/client/client.gen.js +236 -0
  49. package/dist/clients/generated/client/client.gen.js.map +1 -0
  50. package/dist/clients/generated/client/index.d.ts +9 -0
  51. package/dist/clients/generated/client/index.d.ts.map +1 -0
  52. package/dist/clients/generated/client/index.js +7 -0
  53. package/dist/clients/generated/client/index.js.map +1 -0
  54. package/dist/clients/generated/client/types.gen.d.ts +118 -0
  55. package/dist/clients/generated/client/types.gen.d.ts.map +1 -0
  56. package/dist/clients/generated/client/types.gen.js +3 -0
  57. package/dist/clients/generated/client/types.gen.js.map +1 -0
  58. package/dist/clients/generated/client/utils.gen.d.ts +34 -0
  59. package/dist/clients/generated/client/utils.gen.d.ts.map +1 -0
  60. package/dist/clients/generated/client/utils.gen.js +229 -0
  61. package/dist/clients/generated/client/utils.gen.js.map +1 -0
  62. package/dist/clients/generated/client.gen.d.ts +13 -0
  63. package/dist/clients/generated/client.gen.d.ts.map +1 -0
  64. package/dist/clients/generated/client.gen.js +4 -0
  65. package/dist/clients/generated/client.gen.js.map +1 -0
  66. package/dist/clients/generated/core/auth.gen.d.ts +19 -0
  67. package/dist/clients/generated/core/auth.gen.d.ts.map +1 -0
  68. package/dist/clients/generated/core/auth.gen.js +15 -0
  69. package/dist/clients/generated/core/auth.gen.js.map +1 -0
  70. package/dist/clients/generated/core/bodySerializer.gen.d.ts +26 -0
  71. package/dist/clients/generated/core/bodySerializer.gen.d.ts.map +1 -0
  72. package/dist/clients/generated/core/bodySerializer.gen.js +58 -0
  73. package/dist/clients/generated/core/bodySerializer.gen.js.map +1 -0
  74. package/dist/clients/generated/core/params.gen.d.ts +44 -0
  75. package/dist/clients/generated/core/params.gen.d.ts.map +1 -0
  76. package/dist/clients/generated/core/params.gen.js +101 -0
  77. package/dist/clients/generated/core/params.gen.js.map +1 -0
  78. package/dist/clients/generated/core/pathSerializer.gen.d.ts +34 -0
  79. package/dist/clients/generated/core/pathSerializer.gen.d.ts.map +1 -0
  80. package/dist/clients/generated/core/pathSerializer.gen.js +107 -0
  81. package/dist/clients/generated/core/pathSerializer.gen.js.map +1 -0
  82. package/dist/clients/generated/core/queryKeySerializer.gen.d.ts +19 -0
  83. package/dist/clients/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  84. package/dist/clients/generated/core/queryKeySerializer.gen.js +93 -0
  85. package/dist/clients/generated/core/queryKeySerializer.gen.js.map +1 -0
  86. package/dist/clients/generated/core/serverSentEvents.gen.d.ts +72 -0
  87. package/dist/clients/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  88. package/dist/clients/generated/core/serverSentEvents.gen.js +134 -0
  89. package/dist/clients/generated/core/serverSentEvents.gen.js.map +1 -0
  90. package/dist/clients/generated/core/types.gen.d.ts +79 -0
  91. package/dist/clients/generated/core/types.gen.d.ts.map +1 -0
  92. package/dist/clients/generated/core/types.gen.js +3 -0
  93. package/dist/clients/generated/core/types.gen.js.map +1 -0
  94. package/dist/clients/generated/core/utils.gen.d.ts +20 -0
  95. package/dist/clients/generated/core/utils.gen.d.ts.map +1 -0
  96. package/dist/clients/generated/core/utils.gen.js +88 -0
  97. package/dist/clients/generated/core/utils.gen.js.map +1 -0
  98. package/dist/clients/generated/index.d.ts +3 -0
  99. package/dist/clients/generated/index.d.ts.map +1 -0
  100. package/dist/clients/generated/index.js +3 -0
  101. package/dist/clients/generated/index.js.map +1 -0
  102. package/dist/clients/generated/sdk.gen.d.ts +164 -0
  103. package/dist/clients/generated/sdk.gen.d.ts.map +1 -0
  104. package/dist/clients/generated/sdk.gen.js +415 -0
  105. package/dist/clients/generated/sdk.gen.js.map +1 -0
  106. package/dist/clients/generated/types.gen.d.ts +1234 -0
  107. package/dist/clients/generated/types.gen.d.ts.map +1 -0
  108. package/dist/clients/generated/types.gen.js +3 -0
  109. package/dist/clients/generated/types.gen.js.map +1 -0
  110. package/dist/clients/user.d.ts +44 -0
  111. package/dist/clients/user.d.ts.map +1 -0
  112. package/dist/clients/user.js +68 -0
  113. package/dist/clients/user.js.map +1 -0
  114. package/dist/cookies/browser.d.ts +3 -0
  115. package/dist/cookies/browser.d.ts.map +1 -0
  116. package/dist/cookies/browser.js +31 -0
  117. package/dist/cookies/browser.js.map +1 -0
  118. package/dist/cookies/node.d.ts +8 -0
  119. package/dist/cookies/node.d.ts.map +1 -0
  120. package/dist/cookies/node.js +50 -0
  121. package/dist/cookies/node.js.map +1 -0
  122. package/dist/createSessionUser.d.ts +3 -0
  123. package/dist/createSessionUser.d.ts.map +1 -0
  124. package/dist/createSessionUser.js +15 -0
  125. package/dist/createSessionUser.js.map +1 -0
  126. package/dist/errors.d.ts +3 -3
  127. package/dist/errors.d.ts.map +1 -1
  128. package/dist/errors.js +4 -4
  129. package/dist/errors.js.map +1 -1
  130. package/dist/generated/client/client.gen.d.ts.map +1 -1
  131. package/dist/generated/client/client.gen.js +151 -50
  132. package/dist/generated/client/client.gen.js.map +1 -1
  133. package/dist/generated/client/index.d.ts +2 -2
  134. package/dist/generated/client/index.d.ts.map +1 -1
  135. package/dist/generated/client/index.js +1 -1
  136. package/dist/generated/client/index.js.map +1 -1
  137. package/dist/generated/client/types.gen.d.ts +53 -24
  138. package/dist/generated/client/types.gen.d.ts.map +1 -1
  139. package/dist/generated/client/utils.gen.d.ts +25 -6
  140. package/dist/generated/client/utils.gen.d.ts.map +1 -1
  141. package/dist/generated/client/utils.gen.js +117 -57
  142. package/dist/generated/client/utils.gen.js.map +1 -1
  143. package/dist/generated/client.gen.js +1 -1
  144. package/dist/generated/index.d.ts +2 -2
  145. package/dist/generated/index.d.ts.map +1 -1
  146. package/dist/generated/index.js +1 -1
  147. package/dist/generated/index.js.map +1 -1
  148. package/dist/generated/sdk.gen.d.ts +149 -43
  149. package/dist/generated/sdk.gen.d.ts.map +1 -1
  150. package/dist/generated/sdk.gen.js +231 -153
  151. package/dist/generated/sdk.gen.js.map +1 -1
  152. package/dist/generated/types.gen.d.ts +613 -737
  153. package/dist/generated/types.gen.d.ts.map +1 -1
  154. package/dist/index.d.ts +1 -9
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +1 -8
  157. package/dist/index.js.map +1 -1
  158. package/dist/node.d.ts +169 -0
  159. package/dist/node.d.ts.map +1 -0
  160. package/dist/node.js +46 -0
  161. package/dist/node.js.map +1 -0
  162. package/dist/session.d.ts +57 -0
  163. package/dist/session.d.ts.map +1 -0
  164. package/dist/session.js +273 -0
  165. package/dist/session.js.map +1 -0
  166. package/dist/sessionClient.d.ts +53 -0
  167. package/dist/sessionClient.d.ts.map +1 -0
  168. package/dist/sessionClient.js +267 -0
  169. package/dist/sessionClient.js.map +1 -0
  170. package/dist/{TokenManager.d.ts → tokens.d.ts} +17 -19
  171. package/dist/tokens.d.ts.map +1 -0
  172. package/dist/tokens.js +188 -0
  173. package/dist/tokens.js.map +1 -0
  174. package/dist/types.d.ts +31 -4
  175. package/dist/types.d.ts.map +1 -1
  176. package/dist/userClient.d.ts +41 -0
  177. package/dist/userClient.d.ts.map +1 -0
  178. package/dist/userClient.js +64 -0
  179. package/dist/userClient.js.map +1 -0
  180. package/package.json +22 -8
  181. package/dist/Acccount.d.ts +0 -9
  182. package/dist/Acccount.d.ts.map +0 -1
  183. package/dist/Acccount.js +0 -22
  184. package/dist/Acccount.js.map +0 -1
  185. package/dist/Auth.d.ts +0 -29
  186. package/dist/Auth.d.ts.map +0 -1
  187. package/dist/Auth.js +0 -47
  188. package/dist/Auth.js.map +0 -1
  189. package/dist/Authticon.d.ts +0 -207
  190. package/dist/Authticon.d.ts.map +0 -1
  191. package/dist/Authticon.js +0 -125
  192. package/dist/Authticon.js.map +0 -1
  193. package/dist/BrowserCookieAdapter.d.ts +0 -13
  194. package/dist/BrowserCookieAdapter.d.ts.map +0 -1
  195. package/dist/BrowserCookieAdapter.js +0 -18
  196. package/dist/BrowserCookieAdapter.js.map +0 -1
  197. package/dist/BrowserCookieAdapter.test.d.ts +0 -2
  198. package/dist/BrowserCookieAdapter.test.d.ts.map +0 -1
  199. package/dist/BrowserCookieAdapter.test.js +0 -145
  200. package/dist/BrowserCookieAdapter.test.js.map +0 -1
  201. package/dist/Challange.d.ts +0 -8
  202. package/dist/Challange.d.ts.map +0 -1
  203. package/dist/Challange.js +0 -24
  204. package/dist/Challange.js.map +0 -1
  205. package/dist/CookieStorageAdapter.test.d.ts +0 -2
  206. package/dist/CookieStorageAdapter.test.d.ts.map +0 -1
  207. package/dist/CookieStorageAdapter.test.js +0 -137
  208. package/dist/CookieStorageAdapter.test.js.map +0 -1
  209. package/dist/InMemoryCacheAdapter.test.d.ts +0 -2
  210. package/dist/InMemoryCacheAdapter.test.d.ts.map +0 -1
  211. package/dist/InMemoryCacheAdapter.test.js +0 -38
  212. package/dist/InMemoryCacheAdapter.test.js.map +0 -1
  213. package/dist/RemixCookieAdapter.d.ts +0 -12
  214. package/dist/RemixCookieAdapter.d.ts.map +0 -1
  215. package/dist/RemixCookieAdapter.js +0 -25
  216. package/dist/RemixCookieAdapter.js.map +0 -1
  217. package/dist/RemixCookieAdapter.test.d.ts +0 -2
  218. package/dist/RemixCookieAdapter.test.d.ts.map +0 -1
  219. package/dist/RemixCookieAdapter.test.js +0 -136
  220. package/dist/RemixCookieAdapter.test.js.map +0 -1
  221. package/dist/Session.d.ts +0 -9
  222. package/dist/Session.d.ts.map +0 -1
  223. package/dist/Session.js +0 -16
  224. package/dist/Session.js.map +0 -1
  225. package/dist/TokenManager.d.ts.map +0 -1
  226. package/dist/TokenManager.js +0 -46
  227. package/dist/TokenManager.js.map +0 -1
  228. package/dist/TokenManager.test.d.ts +0 -2
  229. package/dist/TokenManager.test.d.ts.map +0 -1
  230. package/dist/TokenManager.test.js +0 -120
  231. package/dist/TokenManager.test.js.map +0 -1
  232. package/dist/TokenStorage.test.d.ts +0 -2
  233. package/dist/TokenStorage.test.d.ts.map +0 -1
  234. package/dist/TokenStorage.test.js +0 -274
  235. package/dist/TokenStorage.test.js.map +0 -1
  236. package/dist/TokenVerifier.test.d.ts +0 -2
  237. package/dist/TokenVerifier.test.d.ts.map +0 -1
  238. package/dist/TokenVerifier.test.js +0 -139
  239. package/dist/TokenVerifier.test.js.map +0 -1
  240. package/dist/TwoFa.d.ts +0 -26
  241. package/dist/TwoFa.d.ts.map +0 -1
  242. package/dist/TwoFa.js +0 -55
  243. package/dist/TwoFa.js.map +0 -1
  244. package/dist/User.d.ts +0 -25
  245. package/dist/User.d.ts.map +0 -1
  246. package/dist/User.js +0 -27
  247. package/dist/User.js.map +0 -1
  248. package/dist/Users.d.ts +0 -68
  249. package/dist/Users.d.ts.map +0 -1
  250. package/dist/Users.js +0 -64
  251. package/dist/Users.js.map +0 -1
  252. package/dist/cookie-utils.d.ts +0 -5
  253. package/dist/cookie-utils.d.ts.map +0 -1
  254. package/dist/cookie-utils.js +0 -33
  255. package/dist/cookie-utils.js.map +0 -1
  256. package/dist/errors.test.d.ts +0 -2
  257. package/dist/errors.test.d.ts.map +0 -1
  258. package/dist/errors.test.js +0 -99
  259. package/dist/errors.test.js.map +0 -1
  260. package/dist/user.d.ts +0 -117
  261. package/dist/user.d.ts.map +0 -1
  262. package/dist/user.js +0 -81
  263. package/dist/user.js.map +0 -1
@@ -1,29 +1,27 @@
1
1
  import type { Logger } from "pino";
2
- import type { Client } from "./generated/client/index.js";
3
- import type { AccessTokenPayload, TokenManagerOptions, TokenPair } from "./types.js";
4
- export declare class TokenManager<Payload extends Record<string, any> = Record<string, any>> {
5
- private readonly client;
6
- private readonly verifier;
7
- private readonly storage;
8
- constructor(client: Client, options: TokenManagerOptions, logger?: Logger);
9
- private requireStorage;
10
- readonly verifyToken: (token?: string) => Promise<AccessTokenPayload<Payload>>;
11
- readonly clearKeyCache: () => void;
2
+ import type { AccessTokenPayload, CacheAdapter, CookieAdapter, TokenPair, TokenStorageOptions } from "./types.js";
3
+ export declare const createInMemoryCacheAdapter: () => CacheAdapter;
4
+ export type TokenStorage = {
12
5
  readonly save: (tokens: TokenPair) => void;
13
- readonly setAccessToken: (accessToken: string) => void;
14
- readonly setRefreshToken: (refreshToken: string) => void;
15
- readonly setAdminRefreshToken: (adminRefreshToken: string) => void;
6
+ readonly clear: () => void;
16
7
  readonly getAccessToken: () => string | null;
17
8
  readonly getRefreshToken: () => string | null;
18
- readonly getAdminRefreshToken: () => string | null;
19
9
  readonly getDeviceId: () => string | null;
10
+ readonly getAdminRefreshToken: () => string | null;
11
+ readonly setAccessToken: (accessToken: string) => void;
12
+ readonly setRefreshToken: (refreshToken: string) => void;
13
+ readonly setAdminRefreshToken: (adminRefreshToken: string) => void;
20
14
  readonly setDeviceId: (deviceId: string) => void;
21
- readonly getAll: () => TokenPair | null;
22
- readonly clear: () => void;
23
15
  readonly clearAccessToken: () => void;
24
16
  readonly clearRefreshToken: () => void;
25
17
  readonly clearDeviceId: () => void;
26
18
  readonly clearAdminRefreshToken: () => void;
27
- readonly hasStorage: () => boolean;
28
- }
29
- //# sourceMappingURL=TokenManager.d.ts.map
19
+ readonly getAll: () => TokenPair | null;
20
+ };
21
+ export declare const createTokenStorage: (cookies: CookieAdapter, options?: TokenStorageOptions, logger?: Logger) => TokenStorage;
22
+ export type TokenVerifier<Payload extends Record<string, any>> = {
23
+ readonly verifyToken: (token: string) => Promise<AccessTokenPayload<Payload>>;
24
+ readonly clearKeyCache: () => void;
25
+ };
26
+ export declare const createTokenVerifier: <Payload extends Record<string, any> = Record<string, any>>(jwksUrl: string, cacheTtlMs?: number, logger?: Logger, externalCache?: CacheAdapter) => TokenVerifier<Payload>;
27
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,0BAA0B,QAAO,YAY7C,CAAC;AAYF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,aAAa,EACtB,UAAS,mBAAwB,EACjC,SAAS,MAAM,KACd,YAuGF,CAAC;AAoCF,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IAC/D,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEzD,SAAS,MAAM,EACf,aAAY,MAA6B,EACzC,SAAS,MAAM,EACf,gBAAgB,YAAY,KAC3B,aAAa,CAAC,OAAO,CA4DvB,CAAC"}
package/dist/tokens.js ADDED
@@ -0,0 +1,188 @@
1
+ import * as jose from "jose";
2
+ import { decodeProtectedHeader, importJWK, jwtVerify, } from "jose";
3
+ import { AuthticonError, AuthticonTokenError } from "./errors.js";
4
+ // --- In-memory cache ---
5
+ export const createInMemoryCacheAdapter = () => {
6
+ const store = new Map();
7
+ return {
8
+ get: (key) => store.get(key),
9
+ set: (key, value) => {
10
+ store.set(key, value);
11
+ },
12
+ delete: (key) => {
13
+ store.delete(key);
14
+ },
15
+ };
16
+ };
17
+ // --- Token storage ---
18
+ const DEFAULT_ACCESS_TOKEN_NAME = "access_token";
19
+ const DEFAULT_REFRESH_TOKEN_NAME = "refresh_token";
20
+ const DEFAULT_DEVICE_ID_NAME = "device_id";
21
+ const DEFAULT_ADMIN_REFRESH_TOKEN_NAME = "admin_refresh_token";
22
+ const DEFAULT_ACCESS_TOKEN_MAX_AGE = 900;
23
+ const DEFAULT_REFRESH_TOKEN_MAX_AGE = 2_592_000;
24
+ const DEFAULT_ADMIN_REFRESH_TOKEN_MAX_AGE = 2_592_000;
25
+ export const createTokenStorage = (cookies, options = {}, logger) => {
26
+ const accessName = options.accessTokenName ?? DEFAULT_ACCESS_TOKEN_NAME;
27
+ const refreshName = options.refreshTokenName ?? DEFAULT_REFRESH_TOKEN_NAME;
28
+ const deviceIdName = options.deviceIdName ?? DEFAULT_DEVICE_ID_NAME;
29
+ const adminRefreshName = options.adminRefreshTokenName ?? DEFAULT_ADMIN_REFRESH_TOKEN_NAME;
30
+ const path = options.path ?? "/";
31
+ const domain = options.domain;
32
+ const secure = options.secure ?? true;
33
+ const sameSite = options.sameSite ?? "Lax";
34
+ const setOpts = {
35
+ access: { path, domain, secure, sameSite, maxAge: options.accessTokenMaxAge ?? DEFAULT_ACCESS_TOKEN_MAX_AGE },
36
+ refresh: { path, domain, secure, sameSite, maxAge: options.refreshTokenMaxAge ?? DEFAULT_REFRESH_TOKEN_MAX_AGE },
37
+ deviceId: { path, domain, secure, sameSite, maxAge: options.refreshTokenMaxAge ?? DEFAULT_REFRESH_TOKEN_MAX_AGE },
38
+ adminRefresh: { path, domain, secure, sameSite, maxAge: options.adminRefreshTokenMaxAge ?? DEFAULT_ADMIN_REFRESH_TOKEN_MAX_AGE },
39
+ };
40
+ const removeOpts = { path, domain };
41
+ const setAccessToken = (accessToken) => {
42
+ logger?.debug({ accessToken: accessToken.slice(0, 10) + "..." }, "Setting access token");
43
+ cookies.set(accessName, accessToken, setOpts.access);
44
+ };
45
+ const setRefreshToken = (refreshToken) => {
46
+ logger?.debug({ refreshToken: refreshToken.slice(0, 10) + "..." }, "Setting refresh token");
47
+ cookies.set(refreshName, refreshToken, setOpts.refresh);
48
+ };
49
+ const setAdminRefreshToken = (adminRefreshToken) => {
50
+ logger?.debug({ adminRefreshToken: adminRefreshToken.slice(0, 10) + "..." }, "Setting admin refresh token");
51
+ cookies.set(adminRefreshName, adminRefreshToken, setOpts.adminRefresh);
52
+ };
53
+ const setDeviceId = (deviceId) => {
54
+ logger?.debug({ deviceId }, "Setting device id");
55
+ cookies.set(deviceIdName, deviceId, setOpts.deviceId);
56
+ };
57
+ const clearAccessToken = () => {
58
+ logger?.debug("Clearing access token");
59
+ cookies.remove(accessName, removeOpts);
60
+ };
61
+ const clearRefreshToken = () => {
62
+ logger?.debug("Clearing refresh token");
63
+ cookies.remove(refreshName, removeOpts);
64
+ };
65
+ const clearDeviceId = () => {
66
+ logger?.debug("Clearing device id");
67
+ cookies.remove(deviceIdName, removeOpts);
68
+ };
69
+ const clearAdminRefreshToken = () => {
70
+ logger?.debug("Clearing admin refresh token");
71
+ cookies.remove(adminRefreshName, removeOpts);
72
+ };
73
+ const getAccessToken = () => cookies.get(accessName);
74
+ const getRefreshToken = () => cookies.get(refreshName);
75
+ const getDeviceId = () => cookies.get(deviceIdName);
76
+ const getAdminRefreshToken = () => cookies.get(adminRefreshName);
77
+ return {
78
+ save: (tokens) => {
79
+ setAccessToken(tokens.accessToken);
80
+ setRefreshToken(tokens.refreshToken);
81
+ if (tokens.deviceId)
82
+ setDeviceId(tokens.deviceId);
83
+ if (tokens.adminRefreshToken)
84
+ setAdminRefreshToken(tokens.adminRefreshToken);
85
+ },
86
+ clear: () => {
87
+ clearAccessToken();
88
+ clearRefreshToken();
89
+ clearDeviceId();
90
+ clearAdminRefreshToken();
91
+ },
92
+ getAccessToken,
93
+ getRefreshToken,
94
+ getDeviceId,
95
+ getAdminRefreshToken,
96
+ setAccessToken,
97
+ setRefreshToken,
98
+ setAdminRefreshToken,
99
+ setDeviceId,
100
+ clearAccessToken,
101
+ clearRefreshToken,
102
+ clearDeviceId,
103
+ clearAdminRefreshToken,
104
+ getAll: () => {
105
+ const accessToken = getAccessToken();
106
+ const refreshToken = getRefreshToken();
107
+ if (!accessToken || !refreshToken)
108
+ return null;
109
+ return {
110
+ accessToken,
111
+ refreshToken,
112
+ deviceId: getDeviceId() ?? undefined,
113
+ adminRefreshToken: getAdminRefreshToken() ?? undefined,
114
+ };
115
+ },
116
+ };
117
+ };
118
+ const DEFAULT_CACHE_TTL_MS = 3_600_000;
119
+ const JWKS_CACHE_KEY = "authticon:jwks";
120
+ const importKeysFromJwks = async (jwks) => {
121
+ const keysWithKid = jwks.filter((jwk) => typeof jwk.kid === "string");
122
+ const entries = await Promise.all(keysWithKid.map(async (jwk) => {
123
+ const imported = await importJWK(jwk);
124
+ if (imported instanceof Uint8Array) {
125
+ throw new Error(`Symmetric key (kid: ${jwk.kid}) is not supported`);
126
+ }
127
+ return [jwk.kid, imported];
128
+ }));
129
+ return new Map(entries);
130
+ };
131
+ export const createTokenVerifier = (jwksUrl, cacheTtlMs = DEFAULT_CACHE_TTL_MS, logger, externalCache) => {
132
+ const cache = externalCache ?? createInMemoryCacheAdapter();
133
+ const fetchJwks = async () => {
134
+ const response = await fetch(jwksUrl);
135
+ if (!response.ok) {
136
+ throw new AuthticonError(`Failed to fetch JWKS: ${response.status}`);
137
+ }
138
+ const data = await response.json();
139
+ const keys = await importKeysFromJwks(data.keys);
140
+ cache.set(JWKS_CACHE_KEY, { keys, fetchedAt: Date.now() });
141
+ logger?.debug({ jwksUrl }, "JWKS fetched");
142
+ return keys;
143
+ };
144
+ const getCachedOrFetch = async () => {
145
+ const cached = cache.get(JWKS_CACHE_KEY);
146
+ if (cached && Date.now() - cached.fetchedAt < cacheTtlMs) {
147
+ return cached.keys;
148
+ }
149
+ return fetchJwks();
150
+ };
151
+ const resolveKey = async (kid) => {
152
+ const keys = await getCachedOrFetch();
153
+ const key = keys.get(kid);
154
+ if (key)
155
+ return key;
156
+ cache.delete(JWKS_CACHE_KEY);
157
+ const freshKeys = await fetchJwks();
158
+ const freshKey = freshKeys.get(kid);
159
+ if (!freshKey) {
160
+ throw new AuthticonError(`Key with kid "${kid}" not found in JWKS`);
161
+ }
162
+ return freshKey;
163
+ };
164
+ return {
165
+ verifyToken: async (token) => {
166
+ try {
167
+ const header = decodeProtectedHeader(token);
168
+ if (!header.kid) {
169
+ throw new AuthticonError("Token header is missing 'kid' claim");
170
+ }
171
+ const key = await resolveKey(header.kid);
172
+ const { payload } = await jwtVerify(token, key);
173
+ return payload;
174
+ }
175
+ catch (error) {
176
+ if (error instanceof jose.errors.JOSEError) {
177
+ throw new AuthticonTokenError(error.message, error.code, error);
178
+ }
179
+ throw error;
180
+ }
181
+ },
182
+ clearKeyCache: () => {
183
+ cache.delete(JWKS_CACHE_KEY);
184
+ logger?.debug("Key cache cleared");
185
+ },
186
+ };
187
+ };
188
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { JWTPayload } from "jose";
2
- import type { PostApiV1AuthLoginResponses } from "./generated/index.js";
2
+ import type { Logger } from "pino";
3
3
  export type { JWTPayload } from "jose";
4
4
  export interface CacheAdapter {
5
5
  readonly get: <T>(key: string) => T | undefined;
@@ -50,15 +50,42 @@ export type TokenManagerOptions = {
50
50
  readonly storage?: TokenStorageOptions | undefined;
51
51
  readonly cache?: CacheAdapter | undefined;
52
52
  };
53
+ export type Challenge = "verifyTwoFa" | "setTwoFa" | "resetPassword" | "setPassword";
54
+ /** @deprecated Use Challenge instead */
55
+ export type Challange = Challenge;
53
56
  export type AccessTokenPayload<Payload extends Record<string, any>> = JWTPayload & Payload & {
54
57
  authticon: {
55
58
  sessionId: string;
56
59
  userId: string;
57
60
  projectId: string;
58
61
  role: "guest" | "user";
59
- challanges: Challange[];
60
- isLoggedByAdmin: boolean;
62
+ challenges: Challenge[];
63
+ loggedByAdminId?: string;
61
64
  };
62
65
  };
63
- export type Challange = PostApiV1AuthLoginResponses["200"]["challanges"][number];
66
+ export type SessionUser<Payload extends Record<string, any> = Record<string, any>> = {
67
+ readonly id: string;
68
+ readonly sessionId: string;
69
+ readonly projectId: string;
70
+ readonly role: "guest" | "user";
71
+ readonly isGuest: boolean;
72
+ readonly challenges: Challenge[];
73
+ readonly payload: Payload;
74
+ readonly raw: AccessTokenPayload<Payload>;
75
+ };
76
+ export type AuthticonOptions = {
77
+ readonly projectId: string;
78
+ readonly baseUrl?: string;
79
+ readonly jwksUrl?: string;
80
+ readonly jwksCacheTtlMs?: number;
81
+ readonly cache?: CacheAdapter;
82
+ readonly logger?: Logger;
83
+ };
84
+ export type SessionOptions = {
85
+ request: Request;
86
+ tokenStorage?: TokenStorageOptions;
87
+ } | {
88
+ cookies: CookieAdapter;
89
+ tokenStorage?: TokenStorageOptions;
90
+ };
64
91
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,YAAY,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAID,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,KACtB,IAAI,CAAC;IACV,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAChE,UAAU,GACR,OAAO,GAAG;IACR,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;QACvB,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH,CAAC;AAEN,MAAM,MAAM,SAAS,GACnB,2BAA2B,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type ApiClientOptions } from "./apiClient.js";
2
+ import type { ChangeEmailData, ChangePasswordData, ChangePhoneData, CreateInvitationData, DeleteInvitationData, DisableTwoFaData, EnableTwoFaData, SendTwoFaCodeData, SetPasswordData, VerifyPhoneData, VerifyTwoFaData } from "./generated/types.gen.js";
3
+ type UserClientOptions = ApiClientOptions & {
4
+ accessToken: string;
5
+ };
6
+ export declare const createUserClient: (options: UserClientOptions) => {
7
+ changePhone: (params: ChangePhoneData["body"]) => Promise<null>;
8
+ verifyPhone: (params: VerifyPhoneData["body"]) => Promise<null>;
9
+ changeEmail: (params: ChangeEmailData["body"]) => Promise<null>;
10
+ changePassword: (params: ChangePasswordData["body"]) => Promise<null>;
11
+ setPassword: (params: SetPasswordData["body"]) => Promise<null>;
12
+ logout: (refreshToken: string) => Promise<void>;
13
+ refresh: (refreshToken: string) => Promise<{
14
+ accessToken: string;
15
+ refreshToken: string;
16
+ }>;
17
+ enableTwoFa: (params: EnableTwoFaData["body"]) => Promise<void>;
18
+ disableTwoFa: (params: DisableTwoFaData["body"]) => Promise<void>;
19
+ sendTwoFaCode: (params: SendTwoFaCodeData["body"]) => Promise<void>;
20
+ getTwoFaSecret: () => Promise<{
21
+ secret: string;
22
+ uri: string;
23
+ }>;
24
+ verifyTwoFa: (params: VerifyTwoFaData["body"]) => Promise<{
25
+ [key: string]: never;
26
+ }>;
27
+ createInvitation: (params: CreateInvitationData["body"]) => Promise<{
28
+ id: string;
29
+ email: string;
30
+ token: string;
31
+ validTo: string;
32
+ role: string | null;
33
+ group: string | null;
34
+ returnUrl: string | null;
35
+ }>;
36
+ deleteInvitation: (params: DeleteInvitationData["path"]) => Promise<{
37
+ id: string;
38
+ }>;
39
+ };
40
+ export {};
41
+ //# sourceMappingURL=userClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userClient.d.ts","sourceRoot":"","sources":["../src/userClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAiBxE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,iBAAiB;0BAQ3B,eAAe,CAAC,MAAM,CAAC;0BAIvB,eAAe,CAAC,MAAM,CAAC;0BAIvB,eAAe,CAAC,MAAM,CAAC;6BAIpB,kBAAkB,CAAC,MAAM,CAAC;0BAI7B,eAAe,CAAC,MAAM,CAAC;2BAItB,MAAM;4BAGL,MAAM;;;;0BAIR,eAAe,CAAC,MAAM,CAAC;2BAGtB,gBAAgB,CAAC,MAAM,CAAC;4BAGvB,iBAAiB,CAAC,MAAM,CAAC;;;;;0BAO3B,eAAe,CAAC,MAAM,CAAC;;;+BAIlB,oBAAoB,CAAC,MAAM,CAAC;;;;;;;;;+BAI5B,oBAAoB,CAAC,MAAM,CAAC;;;CAKhE,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { createApiClient } from "./apiClient.js";
2
+ import { changeEmail, changePassword, changePhone, createInvitation, deleteInvitation, disableTwoFa, enableTwoFa, getTwoFaSecret, logout, refresh, sendTwoFaCode, setPassword, verifyPhone, verifyTwoFa, } from "./generated/sdk.gen.js";
3
+ export const createUserClient = (options) => {
4
+ options.headers = {
5
+ ...(options.headers ?? {}),
6
+ Authorization: `Bearer ${options.accessToken}`,
7
+ };
8
+ const client = createApiClient(options);
9
+ return {
10
+ changePhone: async (params) => {
11
+ const { data } = await changePhone({ client, body: params });
12
+ return data;
13
+ },
14
+ verifyPhone: async (params) => {
15
+ const { data } = await verifyPhone({ client, body: params });
16
+ return data;
17
+ },
18
+ changeEmail: async (params) => {
19
+ const { data } = await changeEmail({ client, body: params });
20
+ return data;
21
+ },
22
+ changePassword: async (params) => {
23
+ const { data } = await changePassword({ client, body: params });
24
+ return data;
25
+ },
26
+ setPassword: async (params) => {
27
+ const { data } = await setPassword({ client, body: params });
28
+ return data;
29
+ },
30
+ logout: async (refreshToken) => {
31
+ await logout({ client, body: { refreshToken } });
32
+ },
33
+ refresh: async (refreshToken) => {
34
+ const { data } = await refresh({ client, body: { refreshToken } });
35
+ return data;
36
+ },
37
+ enableTwoFa: async (params) => {
38
+ await enableTwoFa({ client, body: params });
39
+ },
40
+ disableTwoFa: async (params) => {
41
+ await disableTwoFa({ client, body: params });
42
+ },
43
+ sendTwoFaCode: async (params) => {
44
+ await sendTwoFaCode({ client, body: params });
45
+ },
46
+ getTwoFaSecret: async () => {
47
+ const { data } = await getTwoFaSecret({ client });
48
+ return data;
49
+ },
50
+ verifyTwoFa: async (params) => {
51
+ const { data } = await verifyTwoFa({ client, body: params });
52
+ return data;
53
+ },
54
+ createInvitation: async (params) => {
55
+ const { data } = await createInvitation({ client, body: params });
56
+ return data;
57
+ },
58
+ deleteInvitation: async (params) => {
59
+ const { data } = await deleteInvitation({ client, path: params });
60
+ return data;
61
+ },
62
+ };
63
+ };
64
+ //# sourceMappingURL=userClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userClient.js","sourceRoot":"","sources":["../src/userClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,29 @@
1
1
  {
2
2
  "name": "@authticon/client",
3
- "version": "0.0.0-beta38",
3
+ "version": "0.0.0-beta39",
4
4
  "description": "Official Authticon API client for Node.js",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
- "main": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
7
+ "main": "./dist/node.js",
8
+ "types": "./dist/node.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
- "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js"
11
+ "browser": {
12
+ "types": "./dist/browser.d.ts",
13
+ "import": "./dist/browser.js"
14
+ },
15
+ "default": {
16
+ "types": "./dist/node.d.ts",
17
+ "import": "./dist/node.js"
18
+ }
19
+ },
20
+ "./browser": {
21
+ "types": "./dist/browser.d.ts",
22
+ "import": "./dist/browser.js"
23
+ },
24
+ "./node": {
25
+ "types": "./dist/node.d.ts",
26
+ "import": "./dist/node.js"
13
27
  }
14
28
  },
15
29
  "files": [
@@ -35,20 +49,20 @@
35
49
  "registry": "https://registry.npmjs.org/"
36
50
  },
37
51
  "scripts": {
38
- "codegen:auto": "wget http://authticon-krs.dev.kubeticon.com/documentation/yaml -O openapi.yaml && npm run codegen && rm openapi.yaml",
52
+ "codegen:auto": "wget http://authticon-krs.dev.kubeticon.com/documentation/yaml -O openapi.yaml && npm run codegen ",
39
53
  "codegen": "openapi-ts",
40
54
  "build": "tsc",
55
+ "dev": "tsc --watch",
41
56
  "test": "vitest",
42
57
  "prepublishOnly": "npm run build"
43
58
  },
44
59
  "dependencies": {
45
60
  "@types/pino": "^7.0.5",
46
- "axios": "^1.13.6",
47
61
  "cookie": "^1.1.1",
48
62
  "jose": "^6.2.0"
49
63
  },
50
64
  "devDependencies": {
51
- "@hey-api/client-axios": "^0.9.1",
65
+ "@hey-api/client-fetch": "^0.9.0",
52
66
  "@hey-api/openapi-ts": "0.94.1",
53
67
  "@types/node": "^25.5.0",
54
68
  "dotenv": "^17.3.1",
@@ -1,9 +0,0 @@
1
- import type { Client } from "./generated/client/index.js";
2
- import { type PostApiV1AuthEmailChangeData, type PostApiV1AuthPasswordChangeData } from "./generated/index.js";
3
- export declare class Account {
4
- private readonly client;
5
- constructor(client: Client);
6
- changeEmail(params: PostApiV1AuthEmailChangeData['body']): Promise<null>;
7
- changePassword(params: PostApiV1AuthPasswordChangeData['body']): Promise<null>;
8
- }
9
- //# sourceMappingURL=Acccount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Acccount.d.ts","sourceRoot":"","sources":["../src/Acccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAyD,KAAK,4BAA4B,EAAE,KAAK,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEtK,qBAAa,OAAO;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,WAAW,CAAC,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC;IAQxD,cAAc,CAAC,MAAM,EAAE,+BAA+B,CAAC,MAAM,CAAC;CAOvE"}
package/dist/Acccount.js DELETED
@@ -1,22 +0,0 @@
1
- import { postApiV1AuthEmailChange, postApiV1AuthPasswordChange } from "./generated/index.js";
2
- export class Account {
3
- client;
4
- constructor(client) {
5
- this.client = client;
6
- }
7
- async changeEmail(params) {
8
- const { data } = await postApiV1AuthEmailChange({
9
- client: this.client,
10
- body: params
11
- });
12
- return data;
13
- }
14
- async changePassword(params) {
15
- const { data } = await postApiV1AuthPasswordChange({
16
- client: this.client,
17
- body: params
18
- });
19
- return data;
20
- }
21
- }
22
- //# sourceMappingURL=Acccount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Acccount.js","sourceRoot":"","sources":["../src/Acccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAA2E,MAAM,sBAAsB,CAAC;AAEtK,MAAM,OAAO,OAAO;IACa;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,WAAW,CAAC,MAA4C;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAC;YAC5C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA+C;QAChE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,2BAA2B,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
package/dist/Auth.d.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { Client } from "./generated/client/index.js";
2
- import type { PostApiV1AuthLoginAsData, PostApiV1AuthLoginData, PostApiV1AuthRegisterData } from "./generated/types.gen.js";
3
- export declare class Auth {
4
- private readonly client;
5
- constructor(client: Client);
6
- login(params: PostApiV1AuthLoginData["body"]): Promise<{
7
- accessToken: string;
8
- refreshToken: string;
9
- deviceId: string;
10
- challanges: Array<"verifyTwoFa" | "setTwoFa" | "resetPassword" | "setPassword">;
11
- sessionId: string;
12
- }>;
13
- register(params: PostApiV1AuthRegisterData["body"]): Promise<{
14
- userId: string;
15
- }>;
16
- logout(refreshToken: string): Promise<{
17
- success: boolean;
18
- }>;
19
- refresh(refreshToken: string): Promise<{
20
- accessToken: string;
21
- }>;
22
- loginAs(params: PostApiV1AuthLoginAsData["body"]): Promise<{
23
- accessToken: string;
24
- refreshToken: string;
25
- deviceId: string;
26
- sessionId: string;
27
- }>;
28
- }
29
- //# sourceMappingURL=Auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQ1D,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC;;;;;;;IAQ5C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC;;;IAQlD,MAAM,CAAC,YAAY,EAAE,MAAM;;;IAU3B,OAAO,CAAC,YAAY,EAAE,MAAM;;;IAU5B,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,MAAM,CAAC;;;;;;CAOvD"}
package/dist/Auth.js DELETED
@@ -1,47 +0,0 @@
1
- import { postApiV1AuthLogin, postApiV1AuthLoginAs, postApiV1AuthLogout, postApiV1AuthRegister, postApiV1AuthTokenRefresh, } from "./generated/sdk.gen.js";
2
- export class Auth {
3
- client;
4
- constructor(client) {
5
- this.client = client;
6
- }
7
- async login(params) {
8
- const { data } = await postApiV1AuthLogin({
9
- client: this.client,
10
- body: params,
11
- });
12
- return data;
13
- }
14
- async register(params) {
15
- const { data } = await postApiV1AuthRegister({
16
- client: this.client,
17
- body: params,
18
- });
19
- return data;
20
- }
21
- async logout(refreshToken) {
22
- const { data } = await postApiV1AuthLogout({
23
- client: this.client,
24
- body: {
25
- refreshToken,
26
- },
27
- });
28
- return data;
29
- }
30
- async refresh(refreshToken) {
31
- const { data } = await postApiV1AuthTokenRefresh({
32
- client: this.client,
33
- body: {
34
- refreshToken,
35
- },
36
- });
37
- return data;
38
- }
39
- async loginAs(params) {
40
- const { data } = await postApiV1AuthLoginAs({
41
- client: this.client,
42
- body: params,
43
- });
44
- return data;
45
- }
46
- }
47
- //# sourceMappingURL=Auth.js.map
package/dist/Auth.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAOhC,MAAM,OAAO,IAAI;IACc;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,KAAK,CAAC,MAAsC;QAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAyC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,qBAAqB,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAoB;QAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE;gBACJ,YAAY;aACb;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAAoB;QAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,yBAAyB,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE;gBACJ,YAAY;aACb;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwC;QACpD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,oBAAoB,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}