@payez/next-mvp 3.9.1 → 4.0.0

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 (147) hide show
  1. package/dist/api/auth-handler.d.ts +1 -2
  2. package/dist/api/auth-handler.js +9 -9
  3. package/dist/api-handlers/account/change-password.js +110 -112
  4. package/dist/api-handlers/admin/analytics.d.ts +19 -20
  5. package/dist/api-handlers/admin/analytics.js +378 -379
  6. package/dist/api-handlers/admin/audit.d.ts +19 -20
  7. package/dist/api-handlers/admin/audit.js +213 -214
  8. package/dist/api-handlers/admin/index.d.ts +21 -22
  9. package/dist/api-handlers/admin/index.js +42 -43
  10. package/dist/api-handlers/admin/redis-sessions.d.ts +35 -36
  11. package/dist/api-handlers/admin/redis-sessions.js +203 -204
  12. package/dist/api-handlers/admin/sessions.d.ts +20 -21
  13. package/dist/api-handlers/admin/sessions.js +283 -284
  14. package/dist/api-handlers/admin/site-logs.d.ts +45 -46
  15. package/dist/api-handlers/admin/site-logs.js +317 -318
  16. package/dist/api-handlers/admin/stats.d.ts +20 -21
  17. package/dist/api-handlers/admin/stats.js +239 -240
  18. package/dist/api-handlers/admin/users.d.ts +19 -20
  19. package/dist/api-handlers/admin/users.js +221 -222
  20. package/dist/api-handlers/admin/vibe-data.d.ts +79 -80
  21. package/dist/api-handlers/admin/vibe-data.js +267 -268
  22. package/dist/api-handlers/auth/refresh.js +633 -635
  23. package/dist/api-handlers/auth/signout.js +186 -187
  24. package/dist/api-handlers/auth/status.js +4 -7
  25. package/dist/api-handlers/auth/update-session.d.ts +1 -1
  26. package/dist/api-handlers/auth/update-session.js +12 -14
  27. package/dist/api-handlers/auth/verify-code.d.ts +43 -43
  28. package/dist/api-handlers/auth/verify-code.js +90 -94
  29. package/dist/api-handlers/session/viability.js +114 -146
  30. package/dist/api-handlers/test/force-expire.js +59 -65
  31. package/dist/auth/auth-decision.js +182 -182
  32. package/dist/auth/better-auth.d.ts +3 -6
  33. package/dist/auth/better-auth.js +3 -6
  34. package/dist/auth/route-config.js +2 -2
  35. package/dist/auth/utils/token-utils.d.ts +83 -84
  36. package/dist/auth/utils/token-utils.js +218 -219
  37. package/dist/client/AuthContext.js +115 -112
  38. package/dist/client/better-auth-client.d.ts +1020 -1020
  39. package/dist/client/fetch-with-auth.js +2 -2
  40. package/dist/components/SessionSync.js +121 -119
  41. package/dist/components/account/MobileNavDrawer.js +64 -64
  42. package/dist/components/account/UserAvatarMenu.js +91 -88
  43. package/dist/components/admin/VibeAdminLayout.js +71 -69
  44. package/dist/hooks/useAuth.js +9 -7
  45. package/dist/hooks/useAuthSettings.js +93 -93
  46. package/dist/hooks/useAvailableProviders.d.ts +43 -45
  47. package/dist/hooks/useAvailableProviders.js +112 -108
  48. package/dist/hooks/useSessionExpiration.d.ts +2 -3
  49. package/dist/hooks/useSessionExpiration.js +2 -2
  50. package/dist/hooks/useViabilitySession.js +3 -2
  51. package/dist/index.js +4 -6
  52. package/dist/lib/app-slug.d.ts +95 -95
  53. package/dist/lib/app-slug.js +172 -172
  54. package/dist/lib/standardized-client-api.js +10 -5
  55. package/dist/lib/startup-init.js +21 -25
  56. package/dist/lib/test-aware-get-token.js +86 -81
  57. package/dist/lib/token-lifecycle.d.ts +78 -52
  58. package/dist/lib/token-lifecycle.js +360 -398
  59. package/dist/pages/admin-login/page.js +73 -83
  60. package/dist/pages/client-admin/ClientSiteAdminPage.js +179 -177
  61. package/dist/pages/login/page.js +202 -211
  62. package/dist/pages/showcase/ShowcasePage.js +142 -140
  63. package/dist/pages/test-env/EmergencyLogoutPage.js +99 -98
  64. package/dist/pages/test-env/JwtInspectPage.js +116 -114
  65. package/dist/pages/test-env/RefreshTokenPage.js +4 -2
  66. package/dist/pages/test-env/TestEnvPage.js +51 -49
  67. package/dist/pages/verify-code/page.js +412 -408
  68. package/dist/routes/auth/logout.d.ts +31 -31
  69. package/dist/routes/auth/logout.js +98 -113
  70. package/dist/routes/auth/nextauth.d.ts +14 -11
  71. package/dist/routes/auth/nextauth.js +25 -57
  72. package/dist/routes/auth/session.js +157 -179
  73. package/dist/routes/auth/viability.js +190 -201
  74. package/dist/server/auth.d.ts +50 -0
  75. package/dist/server/auth.js +62 -0
  76. package/dist/stores/authStore.js +19 -23
  77. package/dist/utils/logout.js +5 -5
  78. package/package.json +1 -3
  79. package/src/api/auth-handler.ts +550 -549
  80. package/src/api-handlers/account/change-password.ts +5 -8
  81. package/src/api-handlers/admin/analytics.ts +4 -6
  82. package/src/api-handlers/admin/audit.ts +5 -7
  83. package/src/api-handlers/admin/index.ts +1 -2
  84. package/src/api-handlers/admin/redis-sessions.ts +6 -8
  85. package/src/api-handlers/admin/sessions.ts +5 -7
  86. package/src/api-handlers/admin/site-logs.ts +8 -10
  87. package/src/api-handlers/admin/stats.ts +4 -6
  88. package/src/api-handlers/admin/users.ts +5 -7
  89. package/src/api-handlers/admin/vibe-data.ts +10 -12
  90. package/src/api-handlers/auth/refresh.ts +5 -7
  91. package/src/api-handlers/auth/signout.ts +5 -6
  92. package/src/api-handlers/auth/status.ts +4 -7
  93. package/src/api-handlers/auth/update-session.ts +123 -125
  94. package/src/api-handlers/auth/verify-code.ts +9 -13
  95. package/src/api-handlers/session/viability.ts +10 -47
  96. package/src/api-handlers/test/force-expire.ts +4 -11
  97. package/src/auth/auth-decision.ts +1 -1
  98. package/src/auth/better-auth.ts +138 -141
  99. package/src/auth/route-config.ts +219 -219
  100. package/src/auth/utils/token-utils.ts +0 -1
  101. package/src/client/AuthContext.tsx +6 -2
  102. package/src/client/fetch-with-auth.ts +47 -47
  103. package/src/components/SessionSync.tsx +6 -5
  104. package/src/components/account/MobileNavDrawer.tsx +3 -3
  105. package/src/components/account/UserAvatarMenu.tsx +6 -3
  106. package/src/components/admin/VibeAdminLayout.tsx +4 -2
  107. package/src/config/logger.ts +1 -1
  108. package/src/hooks/useAuth.ts +117 -115
  109. package/src/hooks/useAuthSettings.ts +2 -2
  110. package/src/hooks/useAvailableProviders.ts +9 -5
  111. package/src/hooks/useSessionExpiration.ts +101 -102
  112. package/src/hooks/useViabilitySession.ts +336 -335
  113. package/src/index.ts +60 -63
  114. package/src/lib/api-handler.ts +0 -1
  115. package/src/lib/app-slug.ts +6 -6
  116. package/src/lib/standardized-client-api.ts +901 -895
  117. package/src/lib/startup-init.ts +243 -247
  118. package/src/lib/test-aware-get-token.ts +22 -12
  119. package/src/lib/token-lifecycle.ts +12 -53
  120. package/src/pages/admin-login/page.tsx +9 -17
  121. package/src/pages/client-admin/ClientSiteAdminPage.tsx +4 -2
  122. package/src/pages/login/page.tsx +21 -28
  123. package/src/pages/showcase/ShowcasePage.tsx +4 -2
  124. package/src/pages/test-env/EmergencyLogoutPage.tsx +7 -6
  125. package/src/pages/test-env/JwtInspectPage.tsx +5 -3
  126. package/src/pages/test-env/RefreshTokenPage.tsx +157 -155
  127. package/src/pages/test-env/TestEnvPage.tsx +4 -2
  128. package/src/pages/verify-code/page.tsx +10 -6
  129. package/src/routes/auth/logout.ts +7 -25
  130. package/src/routes/auth/nextauth.ts +45 -71
  131. package/src/routes/auth/session.ts +25 -50
  132. package/src/routes/auth/viability.ts +7 -19
  133. package/src/server/auth.ts +60 -0
  134. package/src/stores/authStore.ts +1899 -1904
  135. package/src/utils/logout.ts +30 -30
  136. package/src/auth/auth-options.ts +0 -237
  137. package/src/auth/callbacks/index.ts +0 -7
  138. package/src/auth/callbacks/jwt.ts +0 -382
  139. package/src/auth/callbacks/session.ts +0 -243
  140. package/src/auth/callbacks/signin.ts +0 -56
  141. package/src/auth/events/index.ts +0 -5
  142. package/src/auth/events/signout.ts +0 -33
  143. package/src/auth/providers/credentials.ts +0 -256
  144. package/src/auth/providers/index.ts +0 -6
  145. package/src/auth/providers/oauth.ts +0 -114
  146. package/src/lib/nextauth-secret.ts +0 -121
  147. package/src/types/next-auth.d.ts +0 -15
@@ -1,112 +1,115 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.AuthProvider = AuthProvider;
5
- exports.useAuthConfig = useAuthConfig;
6
- exports.useAuthMode = useAuthMode;
7
- exports.useFederatedProviders = useFederatedProviders;
8
- exports.useFederatedAuthEnabled = useFederatedAuthEnabled;
9
- exports.useTraditionalAuthEnabled = useTraditionalAuthEnabled;
10
- const jsx_runtime_1 = require("react/jsx-runtime");
11
- const react_1 = require("react");
12
- const react_2 = require("next-auth/react");
13
- const react_query_1 = require("@tanstack/react-query");
14
- const AuthContext = (0, react_1.createContext)(null);
15
- const defaultConfig = {
16
- mode: 'traditional',
17
- providers: [],
18
- enableRecovery: true,
19
- enableEmailSignup: true,
20
- allowPasswordReset: true,
21
- };
22
- // Map NextAuth provider IDs to our FederatedProvider type
23
- const PROVIDER_MAP = {
24
- 'google': 'google',
25
- 'apple': 'apple',
26
- 'facebook': 'facebook',
27
- 'github': 'github',
28
- 'azure-ad': 'microsoft',
29
- 'microsoft-entra-id': 'microsoft',
30
- };
31
- // OAuth providers we support in UI (excludes credentials)
32
- const OAUTH_PROVIDER_IDS = ['google', 'apple', 'facebook', 'github', 'azure-ad', 'microsoft-entra-id'];
33
- function AuthProvider({ children, config, useDynamicProviders = true }) {
34
- const [dynamicProviders, setDynamicProviders] = (0, react_1.useState)([]);
35
- const [providersLoaded, setProvidersLoaded] = (0, react_1.useState)(!useDynamicProviders);
36
- // Create QueryClient instance for React Query - used internally by MVP hooks
37
- const [queryClient] = (0, react_1.useState)(() => new react_query_1.QueryClient({
38
- defaultOptions: {
39
- queries: {
40
- staleTime: 60 * 1000, // 1 minute
41
- retry: 1,
42
- refetchOnWindowFocus: false,
43
- },
44
- },
45
- }));
46
- // Fetch dynamic providers from NextAuth on mount
47
- (0, react_1.useEffect)(() => {
48
- if (!useDynamicProviders)
49
- return;
50
- let mounted = true;
51
- async function fetchDynamicProviders() {
52
- try {
53
- const result = await (0, react_2.getProviders)();
54
- if (!mounted)
55
- return;
56
- if (result) {
57
- // Filter to OAuth providers only and map to FederatedProvider type
58
- const oauthProviders = Object.keys(result)
59
- .filter(id => OAUTH_PROVIDER_IDS.includes(id))
60
- .map(id => PROVIDER_MAP[id])
61
- .filter((p) => p !== undefined);
62
- setDynamicProviders(oauthProviders);
63
- }
64
- }
65
- catch (err) {
66
- // Fall back to static config providers on error
67
- }
68
- finally {
69
- if (mounted) {
70
- setProvidersLoaded(true);
71
- }
72
- }
73
- }
74
- fetchDynamicProviders();
75
- return () => {
76
- mounted = false;
77
- };
78
- }, [useDynamicProviders]);
79
- // Determine final providers list
80
- const providers = useDynamicProviders && providersLoaded
81
- ? dynamicProviders
82
- : (config?.providers ?? defaultConfig.providers);
83
- const authConfig = {
84
- ...defaultConfig,
85
- ...config,
86
- providers, // Override with dynamic providers if enabled
87
- };
88
- return ((0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(AuthContext.Provider, { value: authConfig, children: children }) }));
89
- }
90
- function useAuthConfig() {
91
- const context = (0, react_1.useContext)(AuthContext);
92
- if (!context) {
93
- return defaultConfig;
94
- }
95
- return context;
96
- }
97
- function useAuthMode() {
98
- const config = useAuthConfig();
99
- return config.mode;
100
- }
101
- function useFederatedProviders() {
102
- const config = useAuthConfig();
103
- return config.providers;
104
- }
105
- function useFederatedAuthEnabled() {
106
- const config = useAuthConfig();
107
- return config.mode === 'federated' && config.providers.length > 0;
108
- }
109
- function useTraditionalAuthEnabled() {
110
- const config = useAuthConfig();
111
- return config.mode === 'traditional';
112
- }
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AuthProvider = AuthProvider;
5
+ exports.useAuthConfig = useAuthConfig;
6
+ exports.useAuthMode = useAuthMode;
7
+ exports.useFederatedProviders = useFederatedProviders;
8
+ exports.useFederatedAuthEnabled = useFederatedAuthEnabled;
9
+ exports.useTraditionalAuthEnabled = useTraditionalAuthEnabled;
10
+ const jsx_runtime_1 = require("react/jsx-runtime");
11
+ const react_1 = require("react");
12
+ const react_query_1 = require("@tanstack/react-query");
13
+ const AuthContext = (0, react_1.createContext)(null);
14
+ const defaultConfig = {
15
+ mode: 'traditional',
16
+ providers: [],
17
+ enableRecovery: true,
18
+ enableEmailSignup: true,
19
+ allowPasswordReset: true,
20
+ };
21
+ // Map NextAuth provider IDs to our FederatedProvider type
22
+ const PROVIDER_MAP = {
23
+ 'google': 'google',
24
+ 'apple': 'apple',
25
+ 'facebook': 'facebook',
26
+ 'github': 'github',
27
+ 'azure-ad': 'microsoft',
28
+ 'microsoft-entra-id': 'microsoft',
29
+ };
30
+ // OAuth providers we support in UI (excludes credentials)
31
+ const OAUTH_PROVIDER_IDS = ['google', 'apple', 'facebook', 'github', 'azure-ad', 'microsoft-entra-id'];
32
+ function AuthProvider({ children, config, useDynamicProviders = true }) {
33
+ const [dynamicProviders, setDynamicProviders] = (0, react_1.useState)([]);
34
+ const [providersLoaded, setProvidersLoaded] = (0, react_1.useState)(!useDynamicProviders);
35
+ // Create QueryClient instance for React Query - used internally by MVP hooks
36
+ const [queryClient] = (0, react_1.useState)(() => new react_query_1.QueryClient({
37
+ defaultOptions: {
38
+ queries: {
39
+ staleTime: 60 * 1000, // 1 minute
40
+ retry: 1,
41
+ refetchOnWindowFocus: false,
42
+ },
43
+ },
44
+ }));
45
+ // Fetch dynamic providers from NextAuth on mount
46
+ (0, react_1.useEffect)(() => {
47
+ if (!useDynamicProviders)
48
+ return;
49
+ let mounted = true;
50
+ async function fetchDynamicProviders() {
51
+ try {
52
+ // Better Auth doesn't have a getProviders equivalent.
53
+ // Use static provider map based on configured social providers.
54
+ const result = {
55
+ google: { id: 'google', name: 'Google' },
56
+ };
57
+ if (!mounted)
58
+ return;
59
+ if (result) {
60
+ // Filter to OAuth providers only and map to FederatedProvider type
61
+ const oauthProviders = Object.keys(result)
62
+ .filter(id => OAUTH_PROVIDER_IDS.includes(id))
63
+ .map(id => PROVIDER_MAP[id])
64
+ .filter((p) => p !== undefined);
65
+ setDynamicProviders(oauthProviders);
66
+ }
67
+ }
68
+ catch (err) {
69
+ // Fall back to static config providers on error
70
+ }
71
+ finally {
72
+ if (mounted) {
73
+ setProvidersLoaded(true);
74
+ }
75
+ }
76
+ }
77
+ fetchDynamicProviders();
78
+ return () => {
79
+ mounted = false;
80
+ };
81
+ }, [useDynamicProviders]);
82
+ // Determine final providers list
83
+ const providers = useDynamicProviders && providersLoaded
84
+ ? dynamicProviders
85
+ : (config?.providers ?? defaultConfig.providers);
86
+ const authConfig = {
87
+ ...defaultConfig,
88
+ ...config,
89
+ providers, // Override with dynamic providers if enabled
90
+ };
91
+ return ((0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(AuthContext.Provider, { value: authConfig, children: children }) }));
92
+ }
93
+ function useAuthConfig() {
94
+ const context = (0, react_1.useContext)(AuthContext);
95
+ if (!context) {
96
+ return defaultConfig;
97
+ }
98
+ return context;
99
+ }
100
+ function useAuthMode() {
101
+ const config = useAuthConfig();
102
+ return config.mode;
103
+ }
104
+ function useFederatedProviders() {
105
+ const config = useAuthConfig();
106
+ return config.providers;
107
+ }
108
+ function useFederatedAuthEnabled() {
109
+ const config = useAuthConfig();
110
+ return config.mode === 'federated' && config.providers.length > 0;
111
+ }
112
+ function useTraditionalAuthEnabled() {
113
+ const config = useAuthConfig();
114
+ return config.mode === 'traditional';
115
+ }