@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,445 +0,0 @@
1
- "use strict";
2
- /**
3
- * =============================================================================
4
- * VIBE CLIENT - PRISMA-STYLE QUERY BUILDER
5
- * =============================================================================
6
- *
7
- * A typed query builder for the Vibe App API.
8
- * Provides Prisma-like DX for CRUD operations on Vibe tables.
9
- *
10
- * Usage:
11
- * import { vibe } from '@payez/next-mvp/vibe'
12
- *
13
- * // Find many with filters
14
- * const users = await vibe.users.findMany({
15
- * where: { status: 'active' },
16
- * take: 10,
17
- * skip: 0,
18
- * orderBy: { created_at: 'desc' }
19
- * })
20
- *
21
- * // Find one by ID
22
- * const user = await vibe.users.findUnique({ where: { id: 123 } })
23
- *
24
- * // Create
25
- * const newUser = await vibe.users.create({
26
- * data: { email: 'test@example.com', name: 'Test' }
27
- * })
28
- *
29
- * // Update
30
- * const updated = await vibe.users.update({
31
- * where: { id: 123 },
32
- * data: { name: 'Updated' }
33
- * })
34
- *
35
- * // Delete (soft delete)
36
- * await vibe.users.delete({ where: { id: 123 } })
37
- *
38
- * =============================================================================
39
- */
40
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
41
- if (k2 === undefined) k2 = k;
42
- var desc = Object.getOwnPropertyDescriptor(m, k);
43
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
44
- desc = { enumerable: true, get: function() { return m[k]; } };
45
- }
46
- Object.defineProperty(o, k2, desc);
47
- }) : (function(o, m, k, k2) {
48
- if (k2 === undefined) k2 = k;
49
- o[k2] = m[k];
50
- }));
51
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
52
- Object.defineProperty(o, "default", { enumerable: true, value: v });
53
- }) : function(o, v) {
54
- o["default"] = v;
55
- });
56
- var __importStar = (this && this.__importStar) || (function () {
57
- var ownKeys = function(o) {
58
- ownKeys = Object.getOwnPropertyNames || function (o) {
59
- var ar = [];
60
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
61
- return ar;
62
- };
63
- return ownKeys(o);
64
- };
65
- return function (mod) {
66
- if (mod && mod.__esModule) return mod;
67
- var result = {};
68
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
69
- __setModuleDefault(result, mod);
70
- return result;
71
- };
72
- })();
73
- Object.defineProperty(exports, "__esModule", { value: true });
74
- exports.vibe = exports.VibeClient = exports.VibeTableDelegate = void 0;
75
- exports.createVibeClient = createVibeClient;
76
- const errors_1 = require("./errors");
77
- // -----------------------------------------------------------------------------
78
- // RETRY HELPERS
79
- // -----------------------------------------------------------------------------
80
- const DEFAULT_RETRY_CONFIG = {
81
- maxRetries: 3,
82
- baseDelay: 1000,
83
- maxDelay: 10000,
84
- retryOnRateLimit: true,
85
- };
86
- /** Sleep for a given number of milliseconds */
87
- function sleep(ms) {
88
- return new Promise(resolve => setTimeout(resolve, ms));
89
- }
90
- /** Calculate exponential backoff delay with jitter */
91
- function getBackoffDelay(attempt, baseDelay, maxDelay) {
92
- // Exponential backoff: baseDelay * 2^attempt
93
- const exponentialDelay = baseDelay * Math.pow(2, attempt);
94
- // Add jitter (±25%) to prevent thundering herd
95
- const jitter = exponentialDelay * 0.25 * (Math.random() * 2 - 1);
96
- return Math.min(exponentialDelay + jitter, maxDelay);
97
- }
98
- // -----------------------------------------------------------------------------
99
- // TABLE DELEGATE
100
- // -----------------------------------------------------------------------------
101
- /**
102
- * Delegate class for table operations.
103
- * Provides Prisma-style methods for a specific table.
104
- */
105
- class VibeTableDelegate {
106
- tableName;
107
- client;
108
- constructor(tableName, client) {
109
- this.tableName = tableName;
110
- this.client = client;
111
- }
112
- /**
113
- * Find multiple records with optional filtering and pagination.
114
- */
115
- async findMany(options) {
116
- const params = new URLSearchParams();
117
- // Build filter params
118
- if (options?.where) {
119
- for (const [key, value] of Object.entries(options.where)) {
120
- if (value !== undefined) {
121
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
122
- // Handle operator objects (e.g., { gt: 5 }, { in: [1,2,3] })
123
- for (const [op, val] of Object.entries(value)) {
124
- if (Array.isArray(val)) {
125
- // Handle array values for in/nin operators
126
- val.forEach(v => params.append(`filter[${key}][${op}][]`, String(v)));
127
- }
128
- else {
129
- params.append(`filter[${key}][${op}]`, String(val));
130
- }
131
- }
132
- }
133
- else if (Array.isArray(value)) {
134
- // Handle direct array values
135
- value.forEach(v => params.append(`filter[${key}][]`, String(v)));
136
- }
137
- else {
138
- params.append(`filter[${key}]`, String(value));
139
- }
140
- }
141
- }
142
- }
143
- // Pagination
144
- if (options?.take !== undefined) {
145
- params.append('limit', String(options.take));
146
- }
147
- if (options?.skip !== undefined) {
148
- params.append('offset', String(options.skip));
149
- }
150
- // Sorting
151
- if (options?.orderBy) {
152
- const sortParts = [];
153
- for (const [key, dir] of Object.entries(options.orderBy)) {
154
- sortParts.push(dir === 'desc' ? `-${key}` : key);
155
- }
156
- if (sortParts.length > 0) {
157
- params.append('sort', sortParts.join(','));
158
- }
159
- }
160
- const queryString = params.toString();
161
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/${this.tableName}${queryString ? `?${queryString}` : ''}`;
162
- const response = await this.client.request(url, 'GET');
163
- return {
164
- data: response.data,
165
- meta: response.meta || { total: response.data.length, limit: options?.take || 50, offset: options?.skip || 0 },
166
- };
167
- }
168
- /**
169
- * Find a single record by ID.
170
- * Throws VibeNotFoundError if not found.
171
- */
172
- async findUnique(options) {
173
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/${this.tableName}/${options.where.id}`;
174
- const response = await this.client.request(url, 'GET');
175
- return response.data;
176
- }
177
- /**
178
- * Find a single record by ID.
179
- * Returns null if not found (instead of throwing).
180
- */
181
- async findUniqueOrNull(options) {
182
- try {
183
- return await this.findUnique(options);
184
- }
185
- catch (error) {
186
- if (error instanceof errors_1.VibeNotFoundError) {
187
- return null;
188
- }
189
- throw error;
190
- }
191
- }
192
- /**
193
- * Find the first record matching the filter.
194
- * Returns null if none found.
195
- */
196
- async findFirst(options) {
197
- const result = await this.findMany({ ...options, take: 1 });
198
- return result.data[0] || null;
199
- }
200
- /**
201
- * Create a new record.
202
- */
203
- async create(options) {
204
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/${this.tableName}`;
205
- const response = await this.client.request(url, 'POST', options.data);
206
- return response.data;
207
- }
208
- /**
209
- * Update an existing record by ID.
210
- * Throws VibeNotFoundError if not found.
211
- */
212
- async update(options) {
213
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/${this.tableName}/${options.where.id}`;
214
- const response = await this.client.request(url, 'PUT', options.data);
215
- return response.data;
216
- }
217
- /**
218
- * Delete a record by ID (soft delete).
219
- * Throws VibeNotFoundError if not found.
220
- */
221
- async delete(options) {
222
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/${this.tableName}/${options.where.id}`;
223
- const response = await this.client.request(url, 'DELETE');
224
- return response.data;
225
- }
226
- /**
227
- * Count records matching the filter.
228
- */
229
- async count(options) {
230
- // Use findMany with limit 0 to get just the count
231
- const result = await this.findMany({ ...options, take: 0 });
232
- return result.meta.total;
233
- }
234
- /**
235
- * Create multiple records in a batch.
236
- */
237
- async createMany(options) {
238
- const url = `${this.client.getBaseUrl()}/api/v1/vibe_app/batch`;
239
- const response = await this.client.request(url, 'POST', {
240
- operations: options.data.map(item => ({
241
- table: this.tableName,
242
- operation: 'create',
243
- data: item,
244
- })),
245
- });
246
- return response.data;
247
- }
248
- }
249
- exports.VibeTableDelegate = VibeTableDelegate;
250
- // -----------------------------------------------------------------------------
251
- // VIBE CLIENT
252
- // -----------------------------------------------------------------------------
253
- /**
254
- * Main Vibe client class.
255
- * Provides access to all Vibe App tables via table delegates.
256
- */
257
- class VibeClient {
258
- config;
259
- // Table delegates
260
- users;
261
- login_sessions;
262
- profiles;
263
- settings;
264
- files;
265
- notifications;
266
- activity_log;
267
- tags;
268
- comments;
269
- site_logs;
270
- constructor(config = {}) {
271
- this.config = {
272
- baseUrl: config.baseUrl || process.env.VIBE_API_URL || '',
273
- clientId: config.clientId || process.env.VIBE_CLIENT_ID || '',
274
- idpUrl: config.idpUrl || process.env.IDP_URL || '',
275
- appSigningKey: config.appSigningKey || process.env.VIBE_HMAC_KEY || '',
276
- fetch: config.fetch || globalThis.fetch,
277
- retry: { ...DEFAULT_RETRY_CONFIG, ...config.retry },
278
- };
279
- // Initialize table delegates
280
- this.users = new VibeTableDelegate('users', this);
281
- this.login_sessions = new VibeTableDelegate('login_sessions', this);
282
- this.profiles = new VibeTableDelegate('profiles', this);
283
- this.settings = new VibeTableDelegate('settings', this);
284
- this.files = new VibeTableDelegate('files', this);
285
- this.notifications = new VibeTableDelegate('notifications', this);
286
- this.activity_log = new VibeTableDelegate('activity_log', this);
287
- this.tags = new VibeTableDelegate('tags', this);
288
- this.comments = new VibeTableDelegate('comments', this);
289
- this.site_logs = new VibeTableDelegate('site_logs', this);
290
- }
291
- /**
292
- * Check if the client is configured to use proxy mode (IDP proxy).
293
- * MVP always uses proxy mode - direct Vibe access is not supported.
294
- */
295
- useProxyMode() {
296
- return !!this.config.appSigningKey && !!this.config.idpUrl;
297
- }
298
- /**
299
- * Generate HMAC-SHA256 signature for IDP proxy authentication.
300
- * Message format: {timestamp}|{method}|{endpoint}
301
- */
302
- async generateProxySignature(timestamp, method, endpoint) {
303
- const message = `${timestamp}|${method}|${endpoint}`;
304
- const keyBuffer = Buffer.from(this.config.appSigningKey, 'base64');
305
- // Use Web Crypto API for browser/edge compatibility, fall back to Node crypto
306
- if (typeof globalThis.crypto !== 'undefined' && globalThis.crypto.subtle) {
307
- const encoder = new TextEncoder();
308
- const key = await globalThis.crypto.subtle.importKey('raw', keyBuffer, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
309
- const signature = await globalThis.crypto.subtle.sign('HMAC', key, encoder.encode(message));
310
- return Buffer.from(signature).toString('base64');
311
- }
312
- else {
313
- // Node.js fallback
314
- const crypto = await Promise.resolve().then(() => __importStar(require('crypto')));
315
- return crypto.createHmac('sha256', keyBuffer).update(message).digest('base64');
316
- }
317
- }
318
- /**
319
- * Make a request through the IDP Vibe proxy.
320
- * The proxy handles credential injection securely.
321
- */
322
- async requestViaProxy(url, method, body, authToken) {
323
- // Extract the endpoint path from the full URL
324
- const urlObj = new URL(url);
325
- const endpoint = urlObj.pathname + urlObj.search;
326
- const timestamp = Math.floor(Date.now() / 1000);
327
- const signature = await this.generateProxySignature(timestamp, method, endpoint);
328
- const proxyUrl = `${this.config.idpUrl}/api/vibe/proxy`;
329
- const headers = {
330
- 'Content-Type': 'application/json',
331
- 'X-Vibe-Client-Id': this.config.clientId,
332
- 'X-Vibe-Timestamp': String(timestamp),
333
- 'X-Vibe-Signature': signature,
334
- };
335
- // Pass through auth token if provided (for user context)
336
- if (authToken) {
337
- headers['Authorization'] = `Bearer ${authToken}`;
338
- }
339
- const proxyBody = {
340
- method,
341
- endpoint,
342
- ...(body !== undefined && { body }),
343
- };
344
- const response = await this.config.fetch(proxyUrl, {
345
- method: 'POST',
346
- headers,
347
- body: JSON.stringify(proxyBody),
348
- });
349
- if (!response.ok) {
350
- const errorBody = await this.parseErrorResponse(response);
351
- throw errors_1.VibeError.fromResponse(errorBody, response.status);
352
- }
353
- const responseData = await response.json();
354
- if (!responseData.success) {
355
- throw errors_1.VibeError.fromResponse(responseData, response.status);
356
- }
357
- return responseData;
358
- }
359
- /**
360
- * Get the configured base URL.
361
- */
362
- getBaseUrl() {
363
- return this.config.baseUrl;
364
- }
365
- /**
366
- * Make an authenticated request to the Vibe API with smart retry logic.
367
- *
368
- * Routing:
369
- * - All requests route through the IDP proxy (requires VIBE_HMAC_KEY + IDP_URL)
370
- *
371
- * Retry behavior:
372
- * - 5xx errors: Retry up to maxRetries times with exponential backoff
373
- * - 429 errors: Retry once after Retry-After delay (if retryOnRateLimit enabled)
374
- * - 401/403 errors: No retry (auth errors)
375
- * - Network errors: Retry with backoff
376
- */
377
- async request(url, method, body, authToken) {
378
- if (!this.config.clientId) {
379
- throw new errors_1.VibeServiceError('VIBE_CLIENT_ID is not configured');
380
- }
381
- // Check if we should use proxy mode
382
- if (this.useProxyMode()) {
383
- if (!this.config.idpUrl) {
384
- throw new errors_1.VibeServiceError('IDP_URL is not configured (required for proxy mode)');
385
- }
386
- if (!this.config.appSigningKey) {
387
- throw new errors_1.VibeServiceError('VIBE_HMAC_KEY is not configured (required for proxy mode)');
388
- }
389
- // Route through IDP proxy
390
- return this.requestViaProxy(url, method, body, authToken);
391
- }
392
- // MVP requires proxy mode - direct Vibe access is not supported
393
- throw new errors_1.VibeServiceError('Vibe proxy not configured. Set VIBE_HMAC_KEY + IDP_URL for proxy mode.');
394
- }
395
- /**
396
- * Parse error response body, handling non-JSON responses gracefully.
397
- */
398
- async parseErrorResponse(response) {
399
- try {
400
- return await response.json();
401
- }
402
- catch {
403
- // Non-JSON error response
404
- const text = await response.text().catch(() => 'Unknown error');
405
- return {
406
- success: false,
407
- error: {
408
- code: `HTTP_${response.status}`,
409
- message: text || response.statusText,
410
- },
411
- };
412
- }
413
- }
414
- /**
415
- * Fetch the schema for type generation.
416
- */
417
- async getSchema() {
418
- const url = `${this.config.baseUrl}/api/v1/vibe_app/schema`;
419
- const response = await this.request(url, 'GET');
420
- return response.data;
421
- }
422
- }
423
- exports.VibeClient = VibeClient;
424
- // -----------------------------------------------------------------------------
425
- // SINGLETON INSTANCE
426
- // -----------------------------------------------------------------------------
427
- /**
428
- * Default Vibe client instance.
429
- * Uses environment variables for configuration.
430
- *
431
- * Usage:
432
- * import { vibe } from '@payez/next-mvp/vibe'
433
- * const users = await vibe.users.findMany()
434
- */
435
- exports.vibe = new VibeClient();
436
- /**
437
- * Create a new Vibe client with custom configuration.
438
- *
439
- * Usage:
440
- * import { createVibeClient } from '@payez/next-mvp/vibe'
441
- * const customVibe = createVibeClient({ baseUrl: 'https://custom-api.example.com' })
442
- */
443
- function createVibeClient(config) {
444
- return new VibeClient(config);
445
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * =============================================================================
3
- * VIBE ENTERPRISE AUTHENTICATION
4
- * =============================================================================
5
- *
6
- * Server-side HMAC authentication for enterprise/service account requests.
7
- * Validates incoming requests with X-Vibe-Client-Id, X-Vibe-Timestamp, and
8
- * X-Vibe-Signature headers.
9
- *
10
- * Usage in Next.js API routes:
11
- * import { validateEnterpriseAuth, hasEnterpriseAuthHeaders } from '@payez/next-mvp/vibe/enterprise-auth'
12
- *
13
- * export async function GET(request: NextRequest) {
14
- * if (hasEnterpriseAuthHeaders(request)) {
15
- * const auth = await validateEnterpriseAuth(request, ENTERPRISE_CLIENTS);
16
- * if (!auth.success) {
17
- * return NextResponse.json({ error: auth.error }, { status: 401 });
18
- * }
19
- * // Use auth.clientId for authenticated requests
20
- * }
21
- * }
22
- *
23
- * =============================================================================
24
- */
25
- import { NextRequest } from 'next/server';
26
- /**
27
- * Enterprise client credentials configuration
28
- * Maps client IDs to their HMAC secret keys (base64-encoded)
29
- */
30
- export interface EnterpriseClientsConfig {
31
- [clientId: string]: string;
32
- }
33
- export interface EnterpriseAuthResult {
34
- success: boolean;
35
- clientId?: string;
36
- error?: string;
37
- }
38
- /**
39
- * Validates enterprise HMAC authentication headers on incoming requests.
40
- *
41
- * Expected headers:
42
- * - X-Vibe-Client-Id: The client identifier
43
- * - X-Vibe-Timestamp: Unix timestamp in seconds
44
- * - X-Vibe-Signature: HMAC-SHA256 signature of "{timestamp}|{method}|{path}"
45
- *
46
- * Security features:
47
- * - Constant-time signature comparison (prevents timing attacks)
48
- * - Timestamp validation with 5-minute window (prevents replay attacks)
49
- * - Base64-encoded secret keys
50
- *
51
- * @param request - The Next.js request object
52
- * @param enterpriseClients - Map of client IDs to secret keys
53
- * @returns Authentication result with success status and client ID
54
- *
55
- * @example
56
- * const CLIENTS = {
57
- * 'vibe_abc123': 'base64SecretKey=='
58
- * };
59
- * const result = await validateEnterpriseAuth(request, CLIENTS);
60
- * if (result.success) {
61
- * console.log(`Authenticated client: ${result.clientId}`);
62
- * }
63
- */
64
- export declare function validateEnterpriseAuth(request: NextRequest, enterpriseClients: EnterpriseClientsConfig): Promise<EnterpriseAuthResult>;
65
- /**
66
- * Checks if request has enterprise authentication headers.
67
- * Does not validate - just checks if all required headers are present.
68
- *
69
- * @param request - The Next.js request object
70
- * @returns True if all enterprise auth headers are present
71
- *
72
- * @example
73
- * if (hasEnterpriseAuthHeaders(request)) {
74
- * // Validate the headers
75
- * const auth = await validateEnterpriseAuth(request, clients);
76
- * } else {
77
- * // Fall back to user session auth
78
- * const token = await ensureFreshToken(request);
79
- * }
80
- */
81
- export declare function hasEnterpriseAuthHeaders(request: NextRequest): boolean;
82
- /**
83
- * Generates HMAC signature for backend API requests.
84
- * Used when frontend needs to proxy enterprise auth requests to backend
85
- * with a different path (e.g., /api/vibe/* -> /v1/collections/*).
86
- *
87
- * @param clientId - The Vibe client ID
88
- * @param secretKey - Base64-encoded HMAC secret key
89
- * @param timestamp - Unix timestamp (seconds) as string
90
- * @param method - HTTP method (GET, POST, etc)
91
- * @param backendPath - The backend API path (e.g., "/v1/collections/agent_mail/tables")
92
- * @returns HMAC signature for the backend request
93
- *
94
- * @example
95
- * // Frontend received request for /api/vibe/agent_mail/tables
96
- * // Need to call backend at /v1/collections/agent_mail/tables
97
- * const signature = generateBackendHmacSignature(
98
- * 'vibe_abc123',
99
- * 'base64SecretKey==',
100
- * '1234567890',
101
- * 'GET',
102
- * '/v1/collections/agent_mail/tables'
103
- * );
104
- * // Use signature in backend request headers
105
- */
106
- export declare function generateBackendHmacSignature(clientId: string, secretKey: string, timestamp: string, method: string, backendPath: string): string;