@diviswap/sdk 1.7.16 → 1.7.17
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.
- package/dist/cli/index.js +1 -1
- package/dist/cli/templates/nextjs-app/actions.ts.hbs +45 -38
- package/dist/cli/templates/nextjs-app/api-hooks.ts.hbs +10 -10
- package/dist/cli/templates/nextjs-app/api-route.ts.hbs +65 -65
- package/dist/cli/templates/nextjs-app/auth-context.tsx.hbs +1 -1
- package/dist/cli/templates/nextjs-app/client.ts.hbs +4 -4
- package/dist/cli/templates/nextjs-app/dashboard-hooks.ts.hbs +7 -7
- package/dist/cli/templates/nextjs-app/example-page.tsx.hbs +9 -9
- package/dist/cli/templates/nextjs-app/hooks.ts.hbs +7 -7
- package/dist/cli/templates/nextjs-app/kyc-hooks.ts.hbs +2 -2
- package/dist/cli/templates/nextjs-app/kyc-wizard.css.hbs +16 -16
- package/dist/cli/templates/nextjs-app/kyc-wizard.tsx.hbs +71 -38
- package/dist/cli/templates/nextjs-app/layout-wrapper.tsx.hbs +4 -4
- package/dist/cli/templates/nextjs-app/layout.tsx.hbs +4 -4
- package/dist/cli/templates/nextjs-app/middleware.ts.hbs +15 -15
- package/dist/cli/templates/nextjs-app/provider-wrapper.tsx.hbs +4 -4
- package/dist/cli/templates/nextjs-app/provider.tsx.hbs +15 -15
- package/dist/cli/templates/nextjs-app/setup-provider.tsx.hbs +4 -4
- package/dist/cli/templates/react/api-client-wrapper.ts.hbs +11 -11
- package/dist/cli/templates/react/example.tsx.hbs +6 -6
- package/dist/cli/templates/react/tanstack-hooks.ts.hbs +14 -14
- package/dist/cli/templates/webhooks/nextjs.hbs +3 -3
- package/package.json +1 -1
- package/src/cli/templates/nextjs-app/actions.ts.hbs +45 -38
- package/src/cli/templates/nextjs-app/api-hooks.ts.hbs +10 -10
- package/src/cli/templates/nextjs-app/api-route.ts.hbs +65 -65
- package/src/cli/templates/nextjs-app/auth-context.tsx.hbs +1 -1
- package/src/cli/templates/nextjs-app/client.ts.hbs +4 -4
- package/src/cli/templates/nextjs-app/dashboard-hooks.ts.hbs +7 -7
- package/src/cli/templates/nextjs-app/example-page.tsx.hbs +9 -9
- package/src/cli/templates/nextjs-app/hooks.ts.hbs +7 -7
- package/src/cli/templates/nextjs-app/kyc-hooks.ts.hbs +2 -2
- package/src/cli/templates/nextjs-app/kyc-wizard.css.hbs +16 -16
- package/src/cli/templates/nextjs-app/kyc-wizard.tsx.hbs +71 -38
- package/src/cli/templates/nextjs-app/layout-wrapper.tsx.hbs +4 -4
- package/src/cli/templates/nextjs-app/layout.tsx.hbs +4 -4
- package/src/cli/templates/nextjs-app/middleware.ts.hbs +15 -15
- package/src/cli/templates/nextjs-app/provider-wrapper.tsx.hbs +4 -4
- package/src/cli/templates/nextjs-app/provider.tsx.hbs +15 -15
- package/src/cli/templates/nextjs-app/setup-provider.tsx.hbs +4 -4
- package/src/cli/templates/react/api-client-wrapper.ts.hbs +11 -11
- package/src/cli/templates/react/example.tsx.hbs +6 -6
- package/src/cli/templates/react/tanstack-hooks.ts.hbs +14 -14
- package/src/cli/templates/webhooks/nextjs.hbs +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { DiviswapProvider, useDiviswap } from '@diviswap/sdk/react';
|
|
3
3
|
import { apiClient } from './api-client';
|
|
4
4
|
|
|
5
5
|
function TransactionDemo() {
|
|
@@ -11,7 +11,7 @@ function TransactionDemo() {
|
|
|
11
11
|
logout,
|
|
12
12
|
createTransaction,
|
|
13
13
|
getTransactions
|
|
14
|
-
} =
|
|
14
|
+
} = useDiviswap();
|
|
15
15
|
|
|
16
16
|
const handleLogin = async () => {
|
|
17
17
|
try {
|
|
@@ -44,8 +44,8 @@ function TransactionDemo() {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
|
-
<div className="
|
|
48
|
-
<h1>
|
|
47
|
+
<div className="diviswap-demo">
|
|
48
|
+
<h1>Diviswap Demo</h1>
|
|
49
49
|
|
|
50
50
|
{!user ? (
|
|
51
51
|
<button onClick={handleLogin}>Login</button>
|
|
@@ -62,8 +62,8 @@ function TransactionDemo() {
|
|
|
62
62
|
|
|
63
63
|
export default function App() {
|
|
64
64
|
return (
|
|
65
|
-
<
|
|
65
|
+
<DiviswapProvider>
|
|
66
66
|
<TransactionDemo />
|
|
67
|
-
</
|
|
67
|
+
</DiviswapProvider>
|
|
68
68
|
);
|
|
69
69
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Example of using TanStack Query with
|
|
2
|
+
* Example of using TanStack Query with Diviswap API routes
|
|
3
3
|
* This provides automatic caching, background refetching, and optimistic updates
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,17 +8,17 @@ import { apiClient } from './api-client';
|
|
|
8
8
|
|
|
9
9
|
// Query keys for cache invalidation
|
|
10
10
|
const queryKeys = {
|
|
11
|
-
user: ['
|
|
12
|
-
transactions: (filters?: any) => ['
|
|
13
|
-
payees: ['
|
|
14
|
-
fees: (amount: number) => ['
|
|
11
|
+
user: ['diviswap', 'user'],
|
|
12
|
+
transactions: (filters?: any) => ['diviswap', 'transactions', filters],
|
|
13
|
+
payees: ['diviswap', 'payees'],
|
|
14
|
+
fees: (amount: number) => ['diviswap', 'fees', amount],
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// User hooks
|
|
18
18
|
export function useUser() {
|
|
19
19
|
return useQuery({
|
|
20
20
|
queryKey: queryKeys.user,
|
|
21
|
-
queryFn: () => apiClient.
|
|
21
|
+
queryFn: () => apiClient.diviswap.getSession(),
|
|
22
22
|
retry: false,
|
|
23
23
|
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
24
24
|
});
|
|
@@ -29,7 +29,7 @@ export function useLogin() {
|
|
|
29
29
|
|
|
30
30
|
return useMutation({
|
|
31
31
|
mutationFn: ({ email, password }: { email: string; password: string }) =>
|
|
32
|
-
apiClient.
|
|
32
|
+
apiClient.diviswap.login(email, password),
|
|
33
33
|
onSuccess: (data) => {
|
|
34
34
|
queryClient.setQueryData(queryKeys.user, data.user);
|
|
35
35
|
queryClient.invalidateQueries({ queryKey: queryKeys.transactions() });
|
|
@@ -42,7 +42,7 @@ export function useLogout() {
|
|
|
42
42
|
const queryClient = useQueryClient();
|
|
43
43
|
|
|
44
44
|
return useMutation({
|
|
45
|
-
mutationFn: () => apiClient.
|
|
45
|
+
mutationFn: () => apiClient.diviswap.logout(),
|
|
46
46
|
onSuccess: () => {
|
|
47
47
|
queryClient.clear(); // Clear all cached data
|
|
48
48
|
},
|
|
@@ -55,7 +55,7 @@ export function useTransactions(filters?: any) {
|
|
|
55
55
|
|
|
56
56
|
return useQuery({
|
|
57
57
|
queryKey: queryKeys.transactions(filters),
|
|
58
|
-
queryFn: () => apiClient.
|
|
58
|
+
queryFn: () => apiClient.diviswap.getTransactions(filters),
|
|
59
59
|
enabled: !!user, // Only fetch if user is authenticated
|
|
60
60
|
staleTime: 30 * 1000, // 30 seconds
|
|
61
61
|
});
|
|
@@ -65,7 +65,7 @@ export function useCreateTransaction() {
|
|
|
65
65
|
const queryClient = useQueryClient();
|
|
66
66
|
|
|
67
67
|
return useMutation({
|
|
68
|
-
mutationFn: (data: any) => apiClient.
|
|
68
|
+
mutationFn: (data: any) => apiClient.diviswap.createTransaction(data),
|
|
69
69
|
onSuccess: () => {
|
|
70
70
|
// Invalidate and refetch transactions
|
|
71
71
|
queryClient.invalidateQueries({ queryKey: queryKeys.transactions() });
|
|
@@ -82,7 +82,7 @@ export function usePayees() {
|
|
|
82
82
|
|
|
83
83
|
return useQuery({
|
|
84
84
|
queryKey: queryKeys.payees,
|
|
85
|
-
queryFn: () => apiClient.
|
|
85
|
+
queryFn: () => apiClient.diviswap.getPayees(),
|
|
86
86
|
enabled: !!user,
|
|
87
87
|
staleTime: 60 * 1000, // 1 minute
|
|
88
88
|
});
|
|
@@ -92,7 +92,7 @@ export function useCreatePayee() {
|
|
|
92
92
|
const queryClient = useQueryClient();
|
|
93
93
|
|
|
94
94
|
return useMutation({
|
|
95
|
-
mutationFn: (data: any) => apiClient.
|
|
95
|
+
mutationFn: (data: any) => apiClient.diviswap.createPayee(data),
|
|
96
96
|
onSuccess: (newPayee) => {
|
|
97
97
|
// Optimistically add the new payee to the cache
|
|
98
98
|
queryClient.setQueryData(queryKeys.payees, (old: any[] = []) => {
|
|
@@ -106,7 +106,7 @@ export function useDeletePayee() {
|
|
|
106
106
|
const queryClient = useQueryClient();
|
|
107
107
|
|
|
108
108
|
return useMutation({
|
|
109
|
-
mutationFn: (id: string) => apiClient.
|
|
109
|
+
mutationFn: (id: string) => apiClient.diviswap.deletePayee(id),
|
|
110
110
|
onMutate: async (deletedId) => {
|
|
111
111
|
// Cancel in-flight queries
|
|
112
112
|
await queryClient.cancelQueries({ queryKey: queryKeys.payees });
|
|
@@ -139,7 +139,7 @@ export function useDeletePayee() {
|
|
|
139
139
|
export function useFeeCalculation(amount: number, enabled = true) {
|
|
140
140
|
return useQuery({
|
|
141
141
|
queryKey: queryKeys.fees(amount),
|
|
142
|
-
queryFn: () => apiClient.
|
|
142
|
+
queryFn: () => apiClient.diviswap.calculateFees(amount),
|
|
143
143
|
enabled: enabled && amount > 0,
|
|
144
144
|
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
145
145
|
gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime)
|
|
@@ -24,7 +24,7 @@ export async function POST(request: NextRequest) {
|
|
|
24
24
|
const rawBody = await request.text();
|
|
25
25
|
|
|
26
26
|
// Get signature from headers
|
|
27
|
-
const signature = request.headers.get('x-
|
|
27
|
+
const signature = request.headers.get('x-diviswap-signature');
|
|
28
28
|
|
|
29
29
|
if (!signature) {
|
|
30
30
|
return NextResponse.json(
|
|
@@ -34,9 +34,9 @@ export async function POST(request: NextRequest) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// Verify signature
|
|
37
|
-
const webhookSecret = process.env.
|
|
37
|
+
const webhookSecret = process.env.DIVISWAP_WEBHOOK_SECRET;
|
|
38
38
|
if (!webhookSecret) {
|
|
39
|
-
console.error('
|
|
39
|
+
console.error('DIVISWAP_WEBHOOK_SECRET not configured');
|
|
40
40
|
return NextResponse.json(
|
|
41
41
|
{ error: 'Webhook secret not configured' },
|
|
42
42
|
{ status: 500 }
|