@payez/next-mvp 3.9.1 → 4.0.1

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 (526) hide show
  1. package/package.json +6 -18
  2. package/src/api/auth-handler.ts +550 -549
  3. package/src/api-handlers/account/change-password.ts +5 -8
  4. package/src/api-handlers/admin/analytics.ts +4 -6
  5. package/src/api-handlers/admin/audit.ts +5 -7
  6. package/src/api-handlers/admin/index.ts +1 -2
  7. package/src/api-handlers/admin/redis-sessions.ts +6 -8
  8. package/src/api-handlers/admin/sessions.ts +5 -7
  9. package/src/api-handlers/admin/site-logs.ts +8 -10
  10. package/src/api-handlers/admin/stats.ts +4 -6
  11. package/src/api-handlers/admin/users.ts +5 -7
  12. package/src/api-handlers/admin/vibe-data.ts +10 -12
  13. package/src/api-handlers/auth/refresh.ts +5 -7
  14. package/src/api-handlers/auth/signout.ts +5 -6
  15. package/src/api-handlers/auth/status.ts +4 -7
  16. package/src/api-handlers/auth/update-session.ts +123 -125
  17. package/src/api-handlers/auth/verify-code.ts +9 -13
  18. package/src/api-handlers/session/viability.ts +10 -47
  19. package/src/api-handlers/test/force-expire.ts +4 -11
  20. package/src/auth/auth-decision.ts +1 -1
  21. package/src/auth/better-auth.ts +138 -141
  22. package/src/auth/route-config.ts +219 -219
  23. package/src/auth/utils/token-utils.ts +0 -1
  24. package/src/client/AuthContext.tsx +6 -2
  25. package/src/client/fetch-with-auth.ts +47 -47
  26. package/src/components/SessionSync.tsx +6 -5
  27. package/src/components/account/MobileNavDrawer.tsx +3 -3
  28. package/src/components/account/UserAvatarMenu.tsx +6 -3
  29. package/src/components/admin/VibeAdminLayout.tsx +4 -2
  30. package/src/config/logger.ts +1 -1
  31. package/src/hooks/useAuth.ts +117 -115
  32. package/src/hooks/useAuthSettings.ts +2 -2
  33. package/src/hooks/useAvailableProviders.ts +9 -5
  34. package/src/hooks/useSessionExpiration.ts +101 -102
  35. package/src/hooks/useViabilitySession.ts +336 -335
  36. package/src/index.ts +60 -63
  37. package/src/lib/api-handler.ts +0 -1
  38. package/src/lib/app-slug.ts +6 -6
  39. package/src/lib/standardized-client-api.ts +901 -895
  40. package/src/lib/startup-init.ts +243 -247
  41. package/src/lib/test-aware-get-token.ts +22 -12
  42. package/src/lib/token-lifecycle.ts +12 -53
  43. package/src/pages/admin-login/page.tsx +9 -17
  44. package/src/pages/client-admin/ClientSiteAdminPage.tsx +4 -2
  45. package/src/pages/login/page.tsx +21 -28
  46. package/src/pages/showcase/ShowcasePage.tsx +4 -2
  47. package/src/pages/test-env/EmergencyLogoutPage.tsx +7 -6
  48. package/src/pages/test-env/JwtInspectPage.tsx +5 -3
  49. package/src/pages/test-env/RefreshTokenPage.tsx +157 -155
  50. package/src/pages/test-env/TestEnvPage.tsx +4 -2
  51. package/src/pages/verify-code/page.tsx +10 -6
  52. package/src/routes/auth/logout.ts +7 -25
  53. package/src/routes/auth/nextauth.ts +45 -71
  54. package/src/routes/auth/session.ts +25 -50
  55. package/src/routes/auth/viability.ts +7 -19
  56. package/src/server/auth.ts +60 -0
  57. package/src/stores/authStore.ts +1899 -1904
  58. package/src/utils/logout.ts +30 -30
  59. package/dist/api/auth-handler.d.ts +0 -67
  60. package/dist/api/auth-handler.js +0 -397
  61. package/dist/api/index.d.ts +0 -10
  62. package/dist/api/index.js +0 -19
  63. package/dist/api-handlers/account/change-password.d.ts +0 -9
  64. package/dist/api-handlers/account/change-password.js +0 -112
  65. package/dist/api-handlers/account/masked-info.d.ts +0 -2
  66. package/dist/api-handlers/account/masked-info.js +0 -41
  67. package/dist/api-handlers/account/profile.d.ts +0 -3
  68. package/dist/api-handlers/account/profile.js +0 -63
  69. package/dist/api-handlers/account/recovery/initiate.d.ts +0 -2
  70. package/dist/api-handlers/account/recovery/initiate.js +0 -26
  71. package/dist/api-handlers/account/recovery/send-code.d.ts +0 -2
  72. package/dist/api-handlers/account/recovery/send-code.js +0 -28
  73. package/dist/api-handlers/account/recovery/verify-code.d.ts +0 -2
  74. package/dist/api-handlers/account/recovery/verify-code.js +0 -28
  75. package/dist/api-handlers/account/reset-password.d.ts +0 -2
  76. package/dist/api-handlers/account/reset-password.js +0 -26
  77. package/dist/api-handlers/account/send-code.d.ts +0 -24
  78. package/dist/api-handlers/account/send-code.js +0 -60
  79. package/dist/api-handlers/account/update-phone.d.ts +0 -27
  80. package/dist/api-handlers/account/update-phone.js +0 -64
  81. package/dist/api-handlers/account/validate-password.d.ts +0 -17
  82. package/dist/api-handlers/account/validate-password.js +0 -81
  83. package/dist/api-handlers/account/verify-email.d.ts +0 -26
  84. package/dist/api-handlers/account/verify-email.js +0 -106
  85. package/dist/api-handlers/account/verify-sms.d.ts +0 -26
  86. package/dist/api-handlers/account/verify-sms.js +0 -106
  87. package/dist/api-handlers/admin/analytics.d.ts +0 -20
  88. package/dist/api-handlers/admin/analytics.js +0 -379
  89. package/dist/api-handlers/admin/audit.d.ts +0 -20
  90. package/dist/api-handlers/admin/audit.js +0 -214
  91. package/dist/api-handlers/admin/index.d.ts +0 -22
  92. package/dist/api-handlers/admin/index.js +0 -43
  93. package/dist/api-handlers/admin/redis-sessions.d.ts +0 -36
  94. package/dist/api-handlers/admin/redis-sessions.js +0 -204
  95. package/dist/api-handlers/admin/sessions.d.ts +0 -21
  96. package/dist/api-handlers/admin/sessions.js +0 -284
  97. package/dist/api-handlers/admin/site-logs.d.ts +0 -46
  98. package/dist/api-handlers/admin/site-logs.js +0 -318
  99. package/dist/api-handlers/admin/stats.d.ts +0 -21
  100. package/dist/api-handlers/admin/stats.js +0 -240
  101. package/dist/api-handlers/admin/users.d.ts +0 -20
  102. package/dist/api-handlers/admin/users.js +0 -222
  103. package/dist/api-handlers/admin/vibe-data.d.ts +0 -80
  104. package/dist/api-handlers/admin/vibe-data.js +0 -268
  105. package/dist/api-handlers/anon/preferences.d.ts +0 -37
  106. package/dist/api-handlers/anon/preferences.js +0 -96
  107. package/dist/api-handlers/auth/jwks.d.ts +0 -2
  108. package/dist/api-handlers/auth/jwks.js +0 -24
  109. package/dist/api-handlers/auth/login.d.ts +0 -42
  110. package/dist/api-handlers/auth/login.js +0 -178
  111. package/dist/api-handlers/auth/refresh.d.ts +0 -74
  112. package/dist/api-handlers/auth/refresh.js +0 -635
  113. package/dist/api-handlers/auth/signout.d.ts +0 -37
  114. package/dist/api-handlers/auth/signout.js +0 -187
  115. package/dist/api-handlers/auth/status.d.ts +0 -8
  116. package/dist/api-handlers/auth/status.js +0 -26
  117. package/dist/api-handlers/auth/update-session.d.ts +0 -37
  118. package/dist/api-handlers/auth/update-session.js +0 -95
  119. package/dist/api-handlers/auth/validate.d.ts +0 -6
  120. package/dist/api-handlers/auth/validate.js +0 -43
  121. package/dist/api-handlers/auth/verify-code.d.ts +0 -43
  122. package/dist/api-handlers/auth/verify-code.js +0 -94
  123. package/dist/api-handlers/session/refresh-viability.d.ts +0 -14
  124. package/dist/api-handlers/session/refresh-viability.js +0 -39
  125. package/dist/api-handlers/session/viability.d.ts +0 -13
  126. package/dist/api-handlers/session/viability.js +0 -146
  127. package/dist/api-handlers/test/force-expire.d.ts +0 -23
  128. package/dist/api-handlers/test/force-expire.js +0 -65
  129. package/dist/auth/auth-decision.d.ts +0 -39
  130. package/dist/auth/auth-decision.js +0 -182
  131. package/dist/auth/auth-options.d.ts +0 -57
  132. package/dist/auth/auth-options.js +0 -213
  133. package/dist/auth/better-auth.d.ts +0 -82
  134. package/dist/auth/better-auth.js +0 -122
  135. package/dist/auth/callbacks/index.d.ts +0 -6
  136. package/dist/auth/callbacks/index.js +0 -12
  137. package/dist/auth/callbacks/jwt.d.ts +0 -45
  138. package/dist/auth/callbacks/jwt.js +0 -305
  139. package/dist/auth/callbacks/session.d.ts +0 -60
  140. package/dist/auth/callbacks/session.js +0 -170
  141. package/dist/auth/callbacks/signin.d.ts +0 -23
  142. package/dist/auth/callbacks/signin.js +0 -44
  143. package/dist/auth/events/index.d.ts +0 -4
  144. package/dist/auth/events/index.js +0 -8
  145. package/dist/auth/events/signout.d.ts +0 -17
  146. package/dist/auth/events/signout.js +0 -32
  147. package/dist/auth/providers/credentials.d.ts +0 -32
  148. package/dist/auth/providers/credentials.js +0 -223
  149. package/dist/auth/providers/index.d.ts +0 -5
  150. package/dist/auth/providers/index.js +0 -21
  151. package/dist/auth/providers/oauth.d.ts +0 -26
  152. package/dist/auth/providers/oauth.js +0 -105
  153. package/dist/auth/route-config.d.ts +0 -66
  154. package/dist/auth/route-config.js +0 -190
  155. package/dist/auth/types/auth-types.d.ts +0 -417
  156. package/dist/auth/types/auth-types.js +0 -53
  157. package/dist/auth/types/index.d.ts +0 -6
  158. package/dist/auth/types/index.js +0 -22
  159. package/dist/auth/unauthenticated-routes.d.ts +0 -1
  160. package/dist/auth/unauthenticated-routes.js +0 -19
  161. package/dist/auth/utils/idp-client.d.ts +0 -94
  162. package/dist/auth/utils/idp-client.js +0 -384
  163. package/dist/auth/utils/index.d.ts +0 -5
  164. package/dist/auth/utils/index.js +0 -21
  165. package/dist/auth/utils/token-utils.d.ts +0 -84
  166. package/dist/auth/utils/token-utils.js +0 -219
  167. package/dist/client/AuthContext.d.ts +0 -19
  168. package/dist/client/AuthContext.js +0 -112
  169. package/dist/client/better-auth-client.d.ts +0 -1020
  170. package/dist/client/better-auth-client.js +0 -68
  171. package/dist/client/fetch-with-auth.d.ts +0 -11
  172. package/dist/client/fetch-with-auth.js +0 -44
  173. package/dist/client/fetchWithSession.d.ts +0 -3
  174. package/dist/client/fetchWithSession.js +0 -24
  175. package/dist/client/index.d.ts +0 -9
  176. package/dist/client/index.js +0 -20
  177. package/dist/client/useAnonSession.d.ts +0 -36
  178. package/dist/client/useAnonSession.js +0 -99
  179. package/dist/components/SessionSync.d.ts +0 -13
  180. package/dist/components/SessionSync.js +0 -119
  181. package/dist/components/SignalRHealthCheck.d.ts +0 -10
  182. package/dist/components/SignalRHealthCheck.js +0 -97
  183. package/dist/components/account/MobileNavDrawer.d.ts +0 -32
  184. package/dist/components/account/MobileNavDrawer.js +0 -81
  185. package/dist/components/account/UserAvatarMenu.d.ts +0 -20
  186. package/dist/components/account/UserAvatarMenu.js +0 -88
  187. package/dist/components/account/index.d.ts +0 -9
  188. package/dist/components/account/index.js +0 -13
  189. package/dist/components/admin/AlertSettingsTab.d.ts +0 -48
  190. package/dist/components/admin/AlertSettingsTab.js +0 -351
  191. package/dist/components/admin/AnalyticsTab.d.ts +0 -22
  192. package/dist/components/admin/AnalyticsTab.js +0 -167
  193. package/dist/components/admin/DataBrowserTab.d.ts +0 -19
  194. package/dist/components/admin/DataBrowserTab.js +0 -252
  195. package/dist/components/admin/LoggingSettingsTab.d.ts +0 -73
  196. package/dist/components/admin/LoggingSettingsTab.js +0 -339
  197. package/dist/components/admin/SessionsTab.d.ts +0 -37
  198. package/dist/components/admin/SessionsTab.js +0 -165
  199. package/dist/components/admin/StatsTab.d.ts +0 -53
  200. package/dist/components/admin/StatsTab.js +0 -161
  201. package/dist/components/admin/VibeAdminContext.d.ts +0 -32
  202. package/dist/components/admin/VibeAdminContext.js +0 -38
  203. package/dist/components/admin/VibeAdminLayout.d.ts +0 -11
  204. package/dist/components/admin/VibeAdminLayout.js +0 -69
  205. package/dist/components/admin/index.d.ts +0 -29
  206. package/dist/components/admin/index.js +0 -44
  207. package/dist/components/auth/FederatedAuthSection.d.ts +0 -8
  208. package/dist/components/auth/FederatedAuthSection.js +0 -45
  209. package/dist/components/auth/ModeAwareLoginPage.d.ts +0 -10
  210. package/dist/components/auth/ModeAwareLoginPage.js +0 -42
  211. package/dist/components/auth/ModeAwareSignupPage.d.ts +0 -9
  212. package/dist/components/auth/ModeAwareSignupPage.js +0 -78
  213. package/dist/components/auth/TraditionalAuthSection.d.ts +0 -14
  214. package/dist/components/auth/TraditionalAuthSection.js +0 -20
  215. package/dist/components/recovery/CompleteStep.d.ts +0 -5
  216. package/dist/components/recovery/CompleteStep.js +0 -8
  217. package/dist/components/recovery/InitiateRecoveryStep.d.ts +0 -8
  218. package/dist/components/recovery/InitiateRecoveryStep.js +0 -20
  219. package/dist/components/recovery/SelectMethodStep.d.ts +0 -8
  220. package/dist/components/recovery/SelectMethodStep.js +0 -8
  221. package/dist/components/recovery/SetPasswordStep.d.ts +0 -6
  222. package/dist/components/recovery/SetPasswordStep.js +0 -20
  223. package/dist/components/recovery/VerifyCodeStep.d.ts +0 -10
  224. package/dist/components/recovery/VerifyCodeStep.js +0 -24
  225. package/dist/components/reserved/ReservedRecoveryWarning.d.ts +0 -38
  226. package/dist/components/reserved/ReservedRecoveryWarning.js +0 -92
  227. package/dist/components/reserved/ReservedStatusBox.d.ts +0 -30
  228. package/dist/components/reserved/ReservedStatusBox.js +0 -71
  229. package/dist/components/ui/BetaBadge.d.ts +0 -29
  230. package/dist/components/ui/BetaBadge.js +0 -38
  231. package/dist/components/ui/Footer.d.ts +0 -37
  232. package/dist/components/ui/Footer.js +0 -41
  233. package/dist/config/env.d.ts +0 -66
  234. package/dist/config/env.js +0 -57
  235. package/dist/config/logger.d.ts +0 -57
  236. package/dist/config/logger.js +0 -73
  237. package/dist/config/logging-config.d.ts +0 -30
  238. package/dist/config/logging-config.js +0 -122
  239. package/dist/config/unauthenticated-routes.d.ts +0 -17
  240. package/dist/config/unauthenticated-routes.js +0 -24
  241. package/dist/config/vibe-log-transport.d.ts +0 -81
  242. package/dist/config/vibe-log-transport.js +0 -212
  243. package/dist/edge/internal-api-url.d.ts +0 -53
  244. package/dist/edge/internal-api-url.js +0 -63
  245. package/dist/edge/middleware.d.ts +0 -14
  246. package/dist/edge/middleware.js +0 -32
  247. package/dist/hooks/useAuth.d.ts +0 -23
  248. package/dist/hooks/useAuth.js +0 -81
  249. package/dist/hooks/useAuthSettings.d.ts +0 -59
  250. package/dist/hooks/useAuthSettings.js +0 -93
  251. package/dist/hooks/useAvailableProviders.d.ts +0 -45
  252. package/dist/hooks/useAvailableProviders.js +0 -108
  253. package/dist/hooks/usePasswordValidation.d.ts +0 -27
  254. package/dist/hooks/usePasswordValidation.js +0 -102
  255. package/dist/hooks/useProfile.d.ts +0 -15
  256. package/dist/hooks/useProfile.js +0 -59
  257. package/dist/hooks/usePublicAuthSettings.d.ts +0 -56
  258. package/dist/hooks/usePublicAuthSettings.js +0 -131
  259. package/dist/hooks/useSessionExpiration.d.ts +0 -57
  260. package/dist/hooks/useSessionExpiration.js +0 -72
  261. package/dist/hooks/useViabilitySession.d.ts +0 -75
  262. package/dist/hooks/useViabilitySession.js +0 -268
  263. package/dist/index.d.ts +0 -12
  264. package/dist/index.js +0 -55
  265. package/dist/lib/anon-session.d.ts +0 -74
  266. package/dist/lib/anon-session.js +0 -169
  267. package/dist/lib/api-handler.d.ts +0 -123
  268. package/dist/lib/api-handler.js +0 -478
  269. package/dist/lib/app-slug.d.ts +0 -95
  270. package/dist/lib/app-slug.js +0 -172
  271. package/dist/lib/demo-mode.d.ts +0 -6
  272. package/dist/lib/demo-mode.js +0 -16
  273. package/dist/lib/geolocation.d.ts +0 -64
  274. package/dist/lib/geolocation.js +0 -235
  275. package/dist/lib/idp-client-config.d.ts +0 -75
  276. package/dist/lib/idp-client-config.js +0 -425
  277. package/dist/lib/idp-fetch.d.ts +0 -14
  278. package/dist/lib/idp-fetch.js +0 -91
  279. package/dist/lib/internal-api.d.ts +0 -87
  280. package/dist/lib/internal-api.js +0 -122
  281. package/dist/lib/jwt-decode-client.d.ts +0 -10
  282. package/dist/lib/jwt-decode-client.js +0 -46
  283. package/dist/lib/jwt-decode.d.ts +0 -48
  284. package/dist/lib/jwt-decode.js +0 -57
  285. package/dist/lib/nextauth-secret.d.ts +0 -10
  286. package/dist/lib/nextauth-secret.js +0 -100
  287. package/dist/lib/rate-limit-service.d.ts +0 -23
  288. package/dist/lib/rate-limit-service.js +0 -6
  289. package/dist/lib/redis.d.ts +0 -5
  290. package/dist/lib/redis.js +0 -28
  291. package/dist/lib/refresh-token-validator.d.ts +0 -13
  292. package/dist/lib/refresh-token-validator.js +0 -117
  293. package/dist/lib/roles.d.ts +0 -145
  294. package/dist/lib/roles.js +0 -168
  295. package/dist/lib/secret-validation.d.ts +0 -4
  296. package/dist/lib/secret-validation.js +0 -14
  297. package/dist/lib/session-store.d.ts +0 -170
  298. package/dist/lib/session-store.js +0 -545
  299. package/dist/lib/session.d.ts +0 -21
  300. package/dist/lib/session.js +0 -26
  301. package/dist/lib/site-logger.d.ts +0 -214
  302. package/dist/lib/site-logger.js +0 -210
  303. package/dist/lib/standardized-client-api.d.ts +0 -161
  304. package/dist/lib/standardized-client-api.js +0 -786
  305. package/dist/lib/startup-init.d.ts +0 -40
  306. package/dist/lib/startup-init.js +0 -261
  307. package/dist/lib/test-aware-get-token.d.ts +0 -2
  308. package/dist/lib/test-aware-get-token.js +0 -81
  309. package/dist/lib/token-expiry.d.ts +0 -14
  310. package/dist/lib/token-expiry.js +0 -39
  311. package/dist/lib/token-lifecycle.d.ts +0 -52
  312. package/dist/lib/token-lifecycle.js +0 -398
  313. package/dist/lib/types/api-responses.d.ts +0 -128
  314. package/dist/lib/types/api-responses.js +0 -171
  315. package/dist/lib/user-agent-parser.d.ts +0 -50
  316. package/dist/lib/user-agent-parser.js +0 -220
  317. package/dist/logging/api/admin-analytics.d.ts +0 -3
  318. package/dist/logging/api/admin-analytics.js +0 -45
  319. package/dist/logging/api/audit-log.d.ts +0 -3
  320. package/dist/logging/api/audit-log.js +0 -52
  321. package/dist/logging/components/AdminAnalyticsLayout.d.ts +0 -10
  322. package/dist/logging/components/AdminAnalyticsLayout.js +0 -11
  323. package/dist/logging/components/AuditLogViewer.d.ts +0 -7
  324. package/dist/logging/components/AuditLogViewer.js +0 -51
  325. package/dist/logging/components/ErrorMetricsCard.d.ts +0 -7
  326. package/dist/logging/components/ErrorMetricsCard.js +0 -16
  327. package/dist/logging/components/HealthMetricsCard.d.ts +0 -7
  328. package/dist/logging/components/HealthMetricsCard.js +0 -19
  329. package/dist/logging/hooks/useAdminAnalytics.d.ts +0 -24
  330. package/dist/logging/hooks/useAdminAnalytics.js +0 -22
  331. package/dist/logging/hooks/useAuditLog.d.ts +0 -6
  332. package/dist/logging/hooks/useAuditLog.js +0 -25
  333. package/dist/logging/hooks/useErrorMetrics.d.ts +0 -6
  334. package/dist/logging/hooks/useErrorMetrics.js +0 -38
  335. package/dist/logging/hooks/useHealthMetrics.d.ts +0 -6
  336. package/dist/logging/hooks/useHealthMetrics.js +0 -41
  337. package/dist/logging/index.d.ts +0 -11
  338. package/dist/logging/index.js +0 -40
  339. package/dist/logging/types/analytics.d.ts +0 -68
  340. package/dist/logging/types/analytics.js +0 -3
  341. package/dist/logging/types/audit.d.ts +0 -29
  342. package/dist/logging/types/audit.js +0 -2
  343. package/dist/logging/types/index.d.ts +0 -2
  344. package/dist/logging/types/index.js +0 -19
  345. package/dist/middleware/auth-decision.d.ts +0 -33
  346. package/dist/middleware/auth-decision.js +0 -65
  347. package/dist/middleware/create-middleware.d.ts +0 -102
  348. package/dist/middleware/create-middleware.js +0 -469
  349. package/dist/middleware/rbac-check.d.ts +0 -51
  350. package/dist/middleware/rbac-check.js +0 -219
  351. package/dist/middleware/twofa-presets.d.ts +0 -134
  352. package/dist/middleware/twofa-presets.js +0 -175
  353. package/dist/models/DecodedAccessToken.d.ts +0 -17
  354. package/dist/models/DecodedAccessToken.js +0 -2
  355. package/dist/models/SessionModel.d.ts +0 -122
  356. package/dist/models/SessionModel.js +0 -136
  357. package/dist/pages/admin-login/page.d.ts +0 -31
  358. package/dist/pages/admin-login/page.js +0 -83
  359. package/dist/pages/admin-page-permissions/PagePermissionsAdminPage.d.ts +0 -18
  360. package/dist/pages/admin-page-permissions/PagePermissionsAdminPage.js +0 -276
  361. package/dist/pages/admin-page-permissions/index.d.ts +0 -6
  362. package/dist/pages/admin-page-permissions/index.js +0 -13
  363. package/dist/pages/admin-roles/RolesAdminPage.d.ts +0 -16
  364. package/dist/pages/admin-roles/RolesAdminPage.js +0 -261
  365. package/dist/pages/admin-roles/index.d.ts +0 -8
  366. package/dist/pages/admin-roles/index.js +0 -15
  367. package/dist/pages/admin-roles/modals.d.ts +0 -72
  368. package/dist/pages/admin-roles/modals.js +0 -154
  369. package/dist/pages/client-admin/ClientSiteAdminPage.d.ts +0 -79
  370. package/dist/pages/client-admin/ClientSiteAdminPage.js +0 -177
  371. package/dist/pages/client-admin/index.d.ts +0 -32
  372. package/dist/pages/client-admin/index.js +0 -37
  373. package/dist/pages/coming-soon/page.d.ts +0 -8
  374. package/dist/pages/coming-soon/page.js +0 -28
  375. package/dist/pages/login/page.d.ts +0 -22
  376. package/dist/pages/login/page.js +0 -239
  377. package/dist/pages/profile/EnhancedProfilePage.d.ts +0 -13
  378. package/dist/pages/profile/EnhancedProfilePage.js +0 -150
  379. package/dist/pages/profile/index.d.ts +0 -8
  380. package/dist/pages/profile/index.js +0 -16
  381. package/dist/pages/profile/page.d.ts +0 -19
  382. package/dist/pages/profile/page.js +0 -47
  383. package/dist/pages/profile/profile-patch.d.ts +0 -1
  384. package/dist/pages/profile/profile-patch.js +0 -281
  385. package/dist/pages/recovery/page.d.ts +0 -1
  386. package/dist/pages/recovery/page.js +0 -142
  387. package/dist/pages/roles/MyRolesPage.d.ts +0 -24
  388. package/dist/pages/roles/MyRolesPage.js +0 -71
  389. package/dist/pages/roles/components.d.ts +0 -63
  390. package/dist/pages/roles/components.js +0 -108
  391. package/dist/pages/roles/index.d.ts +0 -8
  392. package/dist/pages/roles/index.js +0 -19
  393. package/dist/pages/security/EnhancedSecurityPage.d.ts +0 -14
  394. package/dist/pages/security/EnhancedSecurityPage.js +0 -248
  395. package/dist/pages/security/index.d.ts +0 -8
  396. package/dist/pages/security/index.js +0 -16
  397. package/dist/pages/security/page.d.ts +0 -21
  398. package/dist/pages/security/page.js +0 -212
  399. package/dist/pages/security/security-patch.d.ts +0 -1
  400. package/dist/pages/security/security-patch.js +0 -302
  401. package/dist/pages/settings/EnhancedSettingsPage.d.ts +0 -46
  402. package/dist/pages/settings/EnhancedSettingsPage.js +0 -231
  403. package/dist/pages/settings/index.d.ts +0 -8
  404. package/dist/pages/settings/index.js +0 -16
  405. package/dist/pages/settings/page.d.ts +0 -7
  406. package/dist/pages/settings/page.js +0 -26
  407. package/dist/pages/showcase/ShowcasePage.d.ts +0 -13
  408. package/dist/pages/showcase/ShowcasePage.js +0 -140
  409. package/dist/pages/showcase/index.d.ts +0 -12
  410. package/dist/pages/showcase/index.js +0 -17
  411. package/dist/pages/test-env/EmergencyLogoutPage.d.ts +0 -14
  412. package/dist/pages/test-env/EmergencyLogoutPage.js +0 -98
  413. package/dist/pages/test-env/JwtInspectPage.d.ts +0 -14
  414. package/dist/pages/test-env/JwtInspectPage.js +0 -114
  415. package/dist/pages/test-env/RefreshTokenPage.d.ts +0 -15
  416. package/dist/pages/test-env/RefreshTokenPage.js +0 -91
  417. package/dist/pages/test-env/TestEnvPage.d.ts +0 -13
  418. package/dist/pages/test-env/TestEnvPage.js +0 -49
  419. package/dist/pages/test-env/index.d.ts +0 -24
  420. package/dist/pages/test-env/index.js +0 -32
  421. package/dist/pages/verify-code/page.d.ts +0 -30
  422. package/dist/pages/verify-code/page.js +0 -408
  423. package/dist/routes/account/index.d.ts +0 -28
  424. package/dist/routes/account/index.js +0 -71
  425. package/dist/routes/account/masked-info.d.ts +0 -33
  426. package/dist/routes/account/masked-info.js +0 -39
  427. package/dist/routes/account/send-code.d.ts +0 -37
  428. package/dist/routes/account/send-code.js +0 -42
  429. package/dist/routes/account/update-phone.d.ts +0 -13
  430. package/dist/routes/account/update-phone.js +0 -17
  431. package/dist/routes/account/verify-email.d.ts +0 -38
  432. package/dist/routes/account/verify-email.js +0 -43
  433. package/dist/routes/account/verify-sms.d.ts +0 -38
  434. package/dist/routes/account/verify-sms.js +0 -43
  435. package/dist/routes/auth/index.d.ts +0 -19
  436. package/dist/routes/auth/index.js +0 -64
  437. package/dist/routes/auth/logout.d.ts +0 -31
  438. package/dist/routes/auth/logout.js +0 -113
  439. package/dist/routes/auth/nextauth.d.ts +0 -19
  440. package/dist/routes/auth/nextauth.js +0 -72
  441. package/dist/routes/auth/refresh.d.ts +0 -30
  442. package/dist/routes/auth/refresh.js +0 -51
  443. package/dist/routes/auth/session.d.ts +0 -43
  444. package/dist/routes/auth/session.js +0 -179
  445. package/dist/routes/auth/settings.d.ts +0 -25
  446. package/dist/routes/auth/settings.js +0 -55
  447. package/dist/routes/auth/viability.d.ts +0 -52
  448. package/dist/routes/auth/viability.js +0 -201
  449. package/dist/routes/index.d.ts +0 -12
  450. package/dist/routes/index.js +0 -54
  451. package/dist/routes/session/index.d.ts +0 -6
  452. package/dist/routes/session/index.js +0 -10
  453. package/dist/routes/session/refresh-viability.d.ts +0 -16
  454. package/dist/routes/session/refresh-viability.js +0 -20
  455. package/dist/server/auth-guard.d.ts +0 -46
  456. package/dist/server/auth-guard.js +0 -128
  457. package/dist/server/decode-session.d.ts +0 -30
  458. package/dist/server/decode-session.js +0 -78
  459. package/dist/server/slim-middleware.d.ts +0 -23
  460. package/dist/server/slim-middleware.js +0 -89
  461. package/dist/server/with-auth.d.ts +0 -33
  462. package/dist/server/with-auth.js +0 -59
  463. package/dist/services/signalrActivityService.d.ts +0 -44
  464. package/dist/services/signalrActivityService.js +0 -257
  465. package/dist/stores/authStore.d.ts +0 -154
  466. package/dist/stores/authStore.js +0 -1531
  467. package/dist/theme/ThemeProvider.d.ts +0 -14
  468. package/dist/theme/ThemeProvider.js +0 -28
  469. package/dist/theme/default.d.ts +0 -8
  470. package/dist/theme/default.js +0 -33
  471. package/dist/theme/index.d.ts +0 -15
  472. package/dist/theme/index.js +0 -25
  473. package/dist/theme/types.d.ts +0 -56
  474. package/dist/theme/types.js +0 -8
  475. package/dist/theme/useTheme.d.ts +0 -60
  476. package/dist/theme/useTheme.js +0 -63
  477. package/dist/theme/utils.d.ts +0 -13
  478. package/dist/theme/utils.js +0 -39
  479. package/dist/types/api.d.ts +0 -134
  480. package/dist/types/api.js +0 -44
  481. package/dist/types/auth.d.ts +0 -19
  482. package/dist/types/auth.js +0 -2
  483. package/dist/types/logging.d.ts +0 -42
  484. package/dist/types/logging.js +0 -2
  485. package/dist/types/recovery.d.ts +0 -48
  486. package/dist/types/recovery.js +0 -2
  487. package/dist/types/security.d.ts +0 -1
  488. package/dist/types/security.js +0 -2
  489. package/dist/utils/api.d.ts +0 -85
  490. package/dist/utils/api.js +0 -287
  491. package/dist/utils/circuitBreaker.d.ts +0 -43
  492. package/dist/utils/circuitBreaker.js +0 -91
  493. package/dist/utils/error-message.d.ts +0 -1
  494. package/dist/utils/error-message.js +0 -103
  495. package/dist/utils/layout/reservedSpace.d.ts +0 -59
  496. package/dist/utils/layout/reservedSpace.js +0 -102
  497. package/dist/utils/logout.d.ts +0 -14
  498. package/dist/utils/logout.js +0 -32
  499. package/dist/vibe/client.d.ts +0 -261
  500. package/dist/vibe/client.js +0 -445
  501. package/dist/vibe/enterprise-auth.d.ts +0 -106
  502. package/dist/vibe/enterprise-auth.js +0 -173
  503. package/dist/vibe/errors.d.ts +0 -83
  504. package/dist/vibe/errors.js +0 -146
  505. package/dist/vibe/generic.d.ts +0 -234
  506. package/dist/vibe/generic.js +0 -369
  507. package/dist/vibe/hooks/index.d.ts +0 -169
  508. package/dist/vibe/hooks/index.js +0 -252
  509. package/dist/vibe/index.d.ts +0 -25
  510. package/dist/vibe/index.js +0 -72
  511. package/dist/vibe/sessions.d.ts +0 -161
  512. package/dist/vibe/sessions.js +0 -391
  513. package/dist/vibe/types.d.ts +0 -353
  514. package/dist/vibe/types.js +0 -315
  515. package/src/auth/auth-options.ts +0 -237
  516. package/src/auth/callbacks/index.ts +0 -7
  517. package/src/auth/callbacks/jwt.ts +0 -382
  518. package/src/auth/callbacks/session.ts +0 -243
  519. package/src/auth/callbacks/signin.ts +0 -56
  520. package/src/auth/events/index.ts +0 -5
  521. package/src/auth/events/signout.ts +0 -33
  522. package/src/auth/providers/credentials.ts +0 -256
  523. package/src/auth/providers/index.ts +0 -6
  524. package/src/auth/providers/oauth.ts +0 -114
  525. package/src/lib/nextauth-secret.ts +0 -121
  526. package/src/types/next-auth.d.ts +0 -15
@@ -1,384 +0,0 @@
1
- "use strict";
2
- /**
3
- * IDP Client Utilities
4
- *
5
- * Functions for calling PayEz IDP API endpoints.
6
- * Handles login, OAuth callback, token refresh, and 2FA verification.
7
- *
8
- * URL USAGE:
9
- * - IDP_URL: Used for all calls to the PayEz Identity Provider
10
- * - INTERNAL_API_URL: NOT used here - that's for calling THIS app's own endpoints
11
- *
12
- * @version 1.0.0
13
- * @since auth-refactor-2026-01
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.getIdpUrl = getIdpUrl;
17
- exports.getClientId = getClientId;
18
- exports.idpLogin = idpLogin;
19
- exports.idpOAuthCallback = idpOAuthCallback;
20
- exports.idpRefreshToken = idpRefreshToken;
21
- exports.idpVerify2FA = idpVerify2FA;
22
- exports.idpSend2FACode = idpSend2FACode;
23
- // ============================================================================
24
- // CONFIGURATION
25
- // ============================================================================
26
- /**
27
- * Get IDP base URL. Throws if not configured.
28
- */
29
- function getIdpUrl() {
30
- const url = process.env.IDP_URL;
31
- if (!url) {
32
- throw new Error('[IDP_CLIENT] FATAL: IDP_URL environment variable is REQUIRED');
33
- }
34
- return url.replace(/\/$/, ''); // Remove trailing slash
35
- }
36
- /**
37
- * Get client ID for this application.
38
- */
39
- function getClientId() {
40
- const clientId = process.env.CLIENT_ID || process.env.NEXT_PUBLIC_CLIENT_ID;
41
- if (!clientId) {
42
- throw new Error('[IDP_CLIENT] FATAL: CLIENT_ID environment variable is REQUIRED');
43
- }
44
- return clientId;
45
- }
46
- // ============================================================================
47
- // LOGIN
48
- // ============================================================================
49
- /**
50
- * Authenticate user with email/password via IDP.
51
- *
52
- * @param credentials - User's email and password
53
- * @param clientHeaders - Headers to forward (IP, User-Agent for audit)
54
- * @returns IDP login response with tokens or error
55
- */
56
- async function idpLogin(credentials, clientHeaders) {
57
- const idpUrl = getIdpUrl();
58
- const clientId = getClientId();
59
- const headers = {
60
- 'Content-Type': 'application/json',
61
- 'X-Client-Id': clientId,
62
- };
63
- // Forward client IP for audit logging
64
- if (clientHeaders?.ip) {
65
- headers['X-Forwarded-For'] = clientHeaders.ip;
66
- }
67
- // Forward User-Agent for audit logging
68
- if (clientHeaders?.userAgent) {
69
- headers['User-Agent'] = clientHeaders.userAgent;
70
- }
71
- try {
72
- const response = await fetch(`${idpUrl}/api/ExternalAuth/login`, {
73
- method: 'POST',
74
- headers,
75
- body: JSON.stringify({
76
- username_or_email: credentials.email,
77
- password: credentials.password,
78
- client_id: clientId,
79
- }),
80
- });
81
- const data = await response.json();
82
- // Unwrap PayEz response envelope if present
83
- const responseData = data.data || data;
84
- if (!response.ok || !responseData.result || !responseData.success) {
85
- return {
86
- success: false,
87
- error: responseData.error || {
88
- code: `HTTP_${response.status}`,
89
- message: getLoginErrorMessage(response.status, responseData),
90
- },
91
- };
92
- }
93
- return {
94
- success: true,
95
- result: responseData.result,
96
- };
97
- }
98
- catch (error) {
99
- console.error('[IDP_CLIENT] Login request failed:', error);
100
- return {
101
- success: false,
102
- error: {
103
- code: 'NETWORK_ERROR',
104
- message: 'Failed to connect to authentication service',
105
- },
106
- };
107
- }
108
- }
109
- /**
110
- * Get user-friendly error message for login failures.
111
- */
112
- function getLoginErrorMessage(status, responseData) {
113
- // Check for structured error from IDP
114
- if (responseData?.error?.message) {
115
- return responseData.error.message;
116
- }
117
- // Fallback to HTTP status-based messages
118
- switch (status) {
119
- case 401:
120
- return 'Invalid email or password. Please try again.';
121
- case 403:
122
- return 'Account access denied. Please contact support.';
123
- case 429:
124
- return 'Too many login attempts. Please try again later.';
125
- default:
126
- if (status >= 500) {
127
- return 'Authentication service is temporarily unavailable.';
128
- }
129
- return 'Authentication failed. Please try again.';
130
- }
131
- }
132
- // ============================================================================
133
- // OAUTH CALLBACK
134
- // ============================================================================
135
- /**
136
- * Register/authenticate OAuth user with IDP.
137
- *
138
- * Called after OAuth provider (Google, etc.) redirects back.
139
- * Creates or retrieves IDP user and returns IDP tokens.
140
- *
141
- * @param oauthData - Data from OAuth provider
142
- * @returns IDP response with tokens and user info
143
- */
144
- async function idpOAuthCallback(oauthData) {
145
- const idpUrl = getIdpUrl();
146
- const clientId = getClientId();
147
- try {
148
- const response = await fetch(`${idpUrl}/api/ExternalAuth/oauth-callback`, {
149
- method: 'POST',
150
- headers: {
151
- 'Content-Type': 'application/json',
152
- 'X-Client-Id': clientId,
153
- },
154
- body: JSON.stringify({
155
- provider: oauthData.provider,
156
- provider_account_id: oauthData.providerAccountId,
157
- email: oauthData.email,
158
- name: oauthData.name || '',
159
- image: oauthData.image || '',
160
- access_token: oauthData.accessToken || '',
161
- refresh_token: oauthData.refreshToken || '',
162
- expires_at: oauthData.expiresAt || 0,
163
- client_id: clientId,
164
- }),
165
- });
166
- if (!response.ok) {
167
- const errorText = await response.text().catch(() => 'Unknown error');
168
- console.error('[IDP_CLIENT] OAuth callback failed:', response.status, errorText);
169
- return {
170
- success: false,
171
- error: {
172
- code: `HTTP_${response.status}`,
173
- message: 'OAuth registration failed',
174
- },
175
- };
176
- }
177
- const data = await response.json();
178
- const responseData = data.data || data;
179
- // Normalize snake_case to camelCase
180
- return {
181
- success: responseData.success !== false,
182
- data: responseData.success !== false
183
- ? {
184
- accessToken: responseData.accessToken || responseData.access_token,
185
- refreshToken: responseData.refreshToken || responseData.refresh_token,
186
- isNewUser: responseData.isNewUser ?? responseData.is_new_user ?? false,
187
- user: responseData.user
188
- ? {
189
- userId: responseData.user.userId || responseData.user.user_id,
190
- email: responseData.user.email || responseData.user.Email,
191
- fullName: responseData.user.fullName || responseData.user.full_name || responseData.user.name,
192
- roles: responseData.user.roles || [],
193
- }
194
- : undefined,
195
- }
196
- : undefined,
197
- error: responseData.error,
198
- };
199
- }
200
- catch (error) {
201
- console.error('[IDP_CLIENT] OAuth callback request failed:', error);
202
- return {
203
- success: false,
204
- error: {
205
- code: 'NETWORK_ERROR',
206
- message: 'Failed to connect to authentication service',
207
- },
208
- };
209
- }
210
- }
211
- // ============================================================================
212
- // TOKEN REFRESH
213
- // ============================================================================
214
- /**
215
- * Refresh an expired access token using the refresh token.
216
- *
217
- * @param refreshToken - The refresh token from previous login
218
- * @param mfaContext - MFA context to preserve across refresh
219
- * @returns New tokens or error
220
- */
221
- async function idpRefreshToken(refreshToken, mfaContext) {
222
- const idpUrl = getIdpUrl();
223
- const clientId = getClientId();
224
- const requestBody = {
225
- refresh_token: refreshToken,
226
- };
227
- // Include MFA context so new token preserves authentication level
228
- if (mfaContext) {
229
- if (mfaContext.amr) {
230
- requestBody.amr = mfaContext.amr;
231
- }
232
- if (mfaContext.acr) {
233
- requestBody.acr = mfaContext.acr;
234
- }
235
- if (mfaContext.twoFactorVerified) {
236
- requestBody.two_factor_verified = true;
237
- }
238
- if (mfaContext.twoFactorMethod) {
239
- requestBody.two_factor_method = mfaContext.twoFactorMethod;
240
- }
241
- if (mfaContext.twoFactorCompletedAt) {
242
- requestBody.two_factor_completed_at = new Date(mfaContext.twoFactorCompletedAt).toISOString();
243
- }
244
- }
245
- try {
246
- const response = await fetch(`${idpUrl}/api/ExternalAuth/refresh`, {
247
- method: 'POST',
248
- headers: {
249
- 'Content-Type': 'application/json',
250
- 'X-Client-Id': clientId,
251
- },
252
- body: JSON.stringify(requestBody),
253
- });
254
- if (!response.ok) {
255
- const errorText = await response.text().catch(() => 'Unknown error');
256
- console.error('[IDP_CLIENT] Token refresh failed:', response.status, errorText);
257
- return {
258
- success: false,
259
- error: {
260
- code: `HTTP_${response.status}`,
261
- message: response.status === 401 ? 'Refresh token expired' : 'Token refresh failed',
262
- },
263
- };
264
- }
265
- const data = await response.json();
266
- if (data.success === false) {
267
- return {
268
- success: false,
269
- error: data.error || { code: 'REFRESH_FAILED', message: 'Token refresh failed' },
270
- };
271
- }
272
- const tokenData = data.data || data;
273
- return {
274
- success: true,
275
- data: {
276
- access_token: tokenData.access_token,
277
- refresh_token: tokenData.refresh_token,
278
- expires_in: tokenData.expires_in || 3600,
279
- },
280
- };
281
- }
282
- catch (error) {
283
- console.error('[IDP_CLIENT] Token refresh request failed:', error);
284
- return {
285
- success: false,
286
- error: {
287
- code: 'NETWORK_ERROR',
288
- message: 'Failed to connect to authentication service',
289
- },
290
- };
291
- }
292
- }
293
- // ============================================================================
294
- // 2FA VERIFICATION
295
- // ============================================================================
296
- /**
297
- * Verify 2FA code with IDP.
298
- *
299
- * @param sessionToken - Redis session ID
300
- * @param code - The 2FA code entered by user
301
- * @param method - The 2FA method ('email' | 'sms' | 'totp')
302
- * @returns Success status and updated tokens
303
- */
304
- async function idpVerify2FA(accessToken, code, method) {
305
- const idpUrl = getIdpUrl();
306
- const clientId = getClientId();
307
- try {
308
- const response = await fetch(`${idpUrl}/api/ExternalAuth/verify-2fa`, {
309
- method: 'POST',
310
- headers: {
311
- 'Content-Type': 'application/json',
312
- 'X-Client-Id': clientId,
313
- Authorization: `Bearer ${accessToken}`,
314
- },
315
- body: JSON.stringify({
316
- code,
317
- method,
318
- }),
319
- });
320
- if (!response.ok) {
321
- const data = await response.json().catch(() => ({}));
322
- return {
323
- success: false,
324
- error: data.error || {
325
- code: `HTTP_${response.status}`,
326
- message: response.status === 401 ? 'Invalid code' : '2FA verification failed',
327
- },
328
- };
329
- }
330
- return { success: true };
331
- }
332
- catch (error) {
333
- console.error('[IDP_CLIENT] 2FA verification failed:', error);
334
- return {
335
- success: false,
336
- error: {
337
- code: 'NETWORK_ERROR',
338
- message: 'Failed to connect to authentication service',
339
- },
340
- };
341
- }
342
- }
343
- /**
344
- * Request a new 2FA code to be sent.
345
- *
346
- * @param accessToken - User's access token
347
- * @param method - How to send the code ('email' | 'sms')
348
- */
349
- async function idpSend2FACode(accessToken, method) {
350
- const idpUrl = getIdpUrl();
351
- const clientId = getClientId();
352
- try {
353
- const response = await fetch(`${idpUrl}/api/ExternalAuth/send-2fa-code`, {
354
- method: 'POST',
355
- headers: {
356
- 'Content-Type': 'application/json',
357
- 'X-Client-Id': clientId,
358
- Authorization: `Bearer ${accessToken}`,
359
- },
360
- body: JSON.stringify({ method }),
361
- });
362
- if (!response.ok) {
363
- const data = await response.json().catch(() => ({}));
364
- return {
365
- success: false,
366
- error: data.error || {
367
- code: `HTTP_${response.status}`,
368
- message: 'Failed to send 2FA code',
369
- },
370
- };
371
- }
372
- return { success: true };
373
- }
374
- catch (error) {
375
- console.error('[IDP_CLIENT] Send 2FA code failed:', error);
376
- return {
377
- success: false,
378
- error: {
379
- code: 'NETWORK_ERROR',
380
- message: 'Failed to connect to authentication service',
381
- },
382
- };
383
- }
384
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Auth Utilities - Public Exports
3
- */
4
- export * from './token-utils';
5
- export * from './idp-client';
@@ -1,21 +0,0 @@
1
- "use strict";
2
- /**
3
- * Auth Utilities - Public Exports
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- __exportStar(require("./token-utils"), exports);
21
- __exportStar(require("./idp-client"), exports);
@@ -1,84 +0,0 @@
1
- /**
2
- * Token Utilities
3
- *
4
- * JWT decoding and expiry checking utilities.
5
- * Extracted from auth-options.ts for clarity.
6
- *
7
- * @version 1.0.0
8
- * @since auth-refactor-2026-01
9
- */
10
- import { JwtHeader } from '../../lib/jwt-decode';
11
- import type { DecodedIdpAccessToken } from '../types/auth-types';
12
- export { decodeJwtHeader, extractKidFromToken, type JwtHeader } from '../../lib/jwt-decode';
13
- /**
14
- * Decode an IDP access token and extract claims.
15
- *
16
- * @param token - The JWT access token from IDP
17
- * @returns Decoded token claims, or null if decode fails
18
- */
19
- export declare function decodeIdpAccessToken(token: string): DecodedIdpAccessToken | null;
20
- /**
21
- * Decode both JWT header and payload from an IDP access token.
22
- * Returns the signing key ID (kid) along with payload claims.
23
- *
24
- * @param token - The JWT access token from IDP
25
- * @returns Object with header (including kid) and payload, or null if decode fails
26
- */
27
- export declare function decodeIdpAccessTokenFull(token: string): {
28
- header: JwtHeader;
29
- payload: DecodedIdpAccessToken;
30
- bearerKeyId: string | undefined;
31
- } | null;
32
- /**
33
- * Extract user email from decoded token.
34
- * Handles multiple possible claim names used by IDP.
35
- */
36
- export declare function extractEmailFromToken(decoded: DecodedIdpAccessToken): string;
37
- /**
38
- * Extract roles from decoded token.
39
- * Handles both 'role' and 'roles' claims, and both string and array formats.
40
- */
41
- export declare function extractRolesFromToken(decoded: DecodedIdpAccessToken): string[];
42
- /**
43
- * Extract AMR (Authentication Methods References) from decoded token.
44
- */
45
- export declare function extractAmrFromToken(decoded: DecodedIdpAccessToken): string[];
46
- /**
47
- * Check if a token expiry timestamp indicates the token needs refresh.
48
- *
49
- * @param expiresAt - Token expiry timestamp (Unix milliseconds)
50
- * @param bufferMs - How early to trigger refresh (default 5 minutes)
51
- * @returns true if token is expired or will expire within buffer period
52
- */
53
- export declare function tokenNeedsRefresh(expiresAt: number | undefined, bufferMs?: number): boolean;
54
- /**
55
- * Check if a token is completely expired (past its exp time).
56
- *
57
- * @param expiresAt - Token expiry timestamp (Unix milliseconds)
58
- * @returns true if token is expired
59
- */
60
- export declare function tokenIsExpired(expiresAt: number | undefined): boolean;
61
- /**
62
- * Calculate milliseconds until token expires.
63
- *
64
- * @param expiresAt - Token expiry timestamp (Unix milliseconds)
65
- * @returns Milliseconds until expiry, or 0 if already expired
66
- */
67
- export declare function msUntilExpiry(expiresAt: number | undefined): number;
68
- /**
69
- * Convert Unix seconds (from JWT exp claim) to milliseconds.
70
- */
71
- export declare function expClaimToMs(exp: number): number;
72
- /**
73
- * Validate that an access token's actual JWT exp matches what we have cached.
74
- * This catches cases where the token was refreshed but cache wasn't updated.
75
- *
76
- * @param accessToken - The JWT access token
77
- * @param cachedExpiresAt - What we think the expiry is (Unix ms)
78
- * @returns Object with validation result and actual expiry
79
- */
80
- export declare function validateTokenExpiry(accessToken: string, cachedExpiresAt: number | undefined): {
81
- valid: boolean;
82
- actualExpiresAt: number | null;
83
- mismatch: boolean;
84
- };