@explorins/pers-sdk-react-native 1.5.30 → 1.5.32
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/README.md +9 -0
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useAnalytics.d.ts.map +1 -1
- package/dist/hooks/useAnalytics.js +0 -1
- package/dist/hooks/useAuth.d.ts +0 -1
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +5 -18
- package/dist/hooks/useBusiness.d.ts.map +1 -1
- package/dist/hooks/useBusiness.js +0 -9
- package/dist/hooks/useCampaigns.d.ts.map +1 -1
- package/dist/hooks/useCampaigns.js +0 -10
- package/dist/hooks/useDonations.d.ts.map +1 -1
- package/dist/hooks/useDonations.js +0 -1
- package/dist/hooks/useFiles.d.ts.map +1 -1
- package/dist/hooks/useFiles.js +0 -4
- package/dist/hooks/usePurchases.d.ts.map +1 -1
- package/dist/hooks/usePurchases.js +0 -3
- package/dist/hooks/useRedemptions.d.ts +4 -1
- package/dist/hooks/useRedemptions.d.ts.map +1 -1
- package/dist/hooks/useRedemptions.js +6 -17
- package/dist/hooks/useTenants.d.ts.map +1 -1
- package/dist/hooks/useTenants.js +0 -3
- package/dist/hooks/useTokens.d.ts.map +1 -1
- package/dist/hooks/useTokens.js +0 -6
- package/dist/hooks/useTransactionSigner.d.ts +13 -1
- package/dist/hooks/useTransactionSigner.d.ts.map +1 -1
- package/dist/hooks/useTransactionSigner.js +59 -2
- package/dist/hooks/useTransactions.d.ts +4 -1
- package/dist/hooks/useTransactions.d.ts.map +1 -1
- package/dist/hooks/useTransactions.js +9 -10
- package/dist/hooks/useUserStatus.d.ts.map +1 -1
- package/dist/hooks/useUserStatus.js +0 -3
- package/dist/hooks/useUsers.d.ts.map +1 -1
- package/dist/hooks/useUsers.js +0 -7
- package/dist/hooks/useWeb3.d.ts +26 -42
- package/dist/hooks/useWeb3.d.ts.map +1 -1
- package/dist/hooks/useWeb3.js +27 -53
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +330 -304
- package/dist/index.js.map +1 -1
- package/dist/providers/PersSDKProvider.d.ts +1 -3
- package/dist/providers/PersSDKProvider.d.ts.map +1 -1
- package/dist/providers/PersSDKProvider.js +14 -11
- package/dist/providers/react-native-auth-provider.d.ts.map +1 -1
- package/dist/providers/react-native-auth-provider.js +4 -0
- package/dist/providers/rn-dpop-provider.d.ts +2 -4
- package/dist/providers/rn-dpop-provider.d.ts.map +1 -1
- package/dist/providers/rn-dpop-provider.js +50 -23
- package/dist/storage/rn-secure-storage.d.ts +1 -0
- package/dist/storage/rn-secure-storage.d.ts.map +1 -1
- package/dist/storage/rn-secure-storage.js +9 -12
- package/package.json +2 -2
- package/src/hooks/index.ts +10 -2
- package/src/hooks/useAnalytics.ts +0 -1
- package/src/hooks/useAuth.ts +4 -25
- package/src/hooks/useBusiness.ts +0 -9
- package/src/hooks/useCampaigns.ts +0 -10
- package/src/hooks/useDonations.ts +0 -1
- package/src/hooks/useFiles.ts +0 -4
- package/src/hooks/usePurchases.ts +0 -3
- package/src/hooks/useRedemptions.ts +7 -21
- package/src/hooks/useTenants.ts +0 -3
- package/src/hooks/useTokens.ts +0 -6
- package/src/hooks/useTransactionSigner.ts +74 -4
- package/src/hooks/useTransactions.ts +10 -12
- package/src/hooks/useUserStatus.ts +0 -3
- package/src/hooks/useUsers.ts +0 -7
- package/src/hooks/useWeb3.ts +28 -68
- package/src/index.ts +4 -0
- package/src/providers/PersSDKProvider.tsx +19 -20
- package/src/providers/react-native-auth-provider.ts +5 -0
- package/src/providers/rn-dpop-provider.ts +85 -45
- package/src/storage/rn-secure-storage.ts +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransactionSigner.d.ts","sourceRoot":"","sources":["../../src/hooks/useTransactionSigner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTransactionSigner.d.ts","sourceRoot":"","sources":["../../src/hooks/useTransactionSigner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,aAAa,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI3G,KAAK,gBAAgB,GAAG,OAAO,qCAAqC,EAAE,gBAAgB,CAAC;AACvF,KAAK,iBAAiB,GAAG,OAAO,qCAAqC,EAAE,iBAAiB,CAAC;AACzF,KAAK,wBAAwB,GAAG,OAAO,qCAAqC,EAAE,wBAAwB,CAAC;AAGvG,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAczG;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,+BAA+B,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/G,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgLG;AACH,eAAO,MAAM,oBAAoB,QAAO,qBAoPvC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { useCallback, useState, useRef, useEffect } from 'react';
|
|
2
|
+
// import { usePersSDK } from '../providers/PersSDKProvider';
|
|
3
|
+
import { SigningStatus } from '@explorins/pers-signer';
|
|
4
|
+
// Re-export signing status types from signer SDK for convenience
|
|
5
|
+
export { SigningStatus };
|
|
2
6
|
// Dynamic import the signer SDK to avoid build issues with static dependencies
|
|
3
7
|
let createPersSignerSDK = null;
|
|
4
8
|
try {
|
|
@@ -191,6 +195,8 @@ const DEFAULT_ETHERS_PROVIDER = "https://sepolia.infura.io/v3/2781b4b5242343d5b0
|
|
|
191
195
|
export const useTransactionSigner = () => {
|
|
192
196
|
// const { isInitialized, isAuthenticated, user } = usePersSDK();
|
|
193
197
|
const [isSignerInitialized, setIsSignerInitialized] = useState(false);
|
|
198
|
+
const [currentStatus, setCurrentStatus] = useState(null);
|
|
199
|
+
const [statusMessage, setStatusMessage] = useState(null);
|
|
194
200
|
const signerSDKRef = useRef(null);
|
|
195
201
|
// Auto-initialize signer SDK when PERS SDK is ready
|
|
196
202
|
useEffect(() => {
|
|
@@ -239,6 +245,7 @@ export const useTransactionSigner = () => {
|
|
|
239
245
|
*
|
|
240
246
|
* @param {string} jwt - JWT token containing transaction ID and user information
|
|
241
247
|
* Must include: `transactionId`, `identifierEmail`, `tenantId`
|
|
248
|
+
* @param {StatusCallback} [onStatusUpdate] - Optional callback for real-time status updates
|
|
242
249
|
* @returns {Promise<SubmissionResult>} Complete transaction result
|
|
243
250
|
*
|
|
244
251
|
* @throws {Error} 'Transaction signer not initialized' - Hook not ready
|
|
@@ -261,6 +268,15 @@ export const useTransactionSigner = () => {
|
|
|
261
268
|
* ```
|
|
262
269
|
*
|
|
263
270
|
* @example
|
|
271
|
+
* **With Status Updates:**
|
|
272
|
+
* ```typescript
|
|
273
|
+
* const result = await signAndSubmitTransactionWithJWT(jwtToken, (status, message) => {
|
|
274
|
+
* console.log(`Status: ${status} - ${message}`);
|
|
275
|
+
* setStatusText(message);
|
|
276
|
+
* });
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
264
280
|
* **With Error Handling:**
|
|
265
281
|
* ```typescript
|
|
266
282
|
* try {
|
|
@@ -295,20 +311,30 @@ export const useTransactionSigner = () => {
|
|
|
295
311
|
*
|
|
296
312
|
* @see {@link SubmissionResult} for detailed result structure
|
|
297
313
|
*/
|
|
298
|
-
const signAndSubmitTransactionWithJWT = useCallback(async (jwt) => {
|
|
314
|
+
const signAndSubmitTransactionWithJWT = useCallback(async (jwt, onStatusUpdate) => {
|
|
299
315
|
if (!isSignerInitialized || !signerSDKRef.current) {
|
|
300
316
|
throw new Error('Transaction signer not initialized');
|
|
301
317
|
}
|
|
302
318
|
if (!createPersSignerSDK) {
|
|
303
319
|
throw new Error('PERS Signer SDK not available. Blockchain signing is not supported.');
|
|
304
320
|
}
|
|
321
|
+
// Create status callback wrapper that updates both hook state and calls user callback
|
|
322
|
+
const statusCallback = {
|
|
323
|
+
onStatusUpdate: (status, message, data) => {
|
|
324
|
+
setCurrentStatus(status);
|
|
325
|
+
setStatusMessage(message);
|
|
326
|
+
onStatusUpdate?.(status, message, data);
|
|
327
|
+
}
|
|
328
|
+
};
|
|
305
329
|
try {
|
|
306
330
|
// Use the actual SDK method that handles the complete sign + submit flow
|
|
307
|
-
const submissionResult = await signerSDKRef.current.signAndSubmitPersTransaction(jwt);
|
|
331
|
+
const submissionResult = await signerSDKRef.current.signAndSubmitPersTransaction(jwt, statusCallback);
|
|
308
332
|
return submissionResult;
|
|
309
333
|
}
|
|
310
334
|
catch (error) {
|
|
311
335
|
console.error('[useTransactionSigner] JWT transaction signing failed:', error);
|
|
336
|
+
setCurrentStatus(SigningStatus.ERROR);
|
|
337
|
+
setStatusMessage(error instanceof Error ? error.message : 'Transaction failed');
|
|
312
338
|
throw error; // Re-throw to maintain error handling upstream
|
|
313
339
|
}
|
|
314
340
|
}, [isSignerInitialized]);
|
|
@@ -320,6 +346,7 @@ export const useTransactionSigner = () => {
|
|
|
320
346
|
* from authentication to blockchain submission in a single call.
|
|
321
347
|
*
|
|
322
348
|
* @param {string} jwt - JWT token with transaction and user data
|
|
349
|
+
* @param {StatusCallback} [onStatusUpdate] - Optional callback for real-time status updates
|
|
323
350
|
* @returns {Promise<SubmissionResult>} Transaction result with hash and status
|
|
324
351
|
*/
|
|
325
352
|
signAndSubmitTransactionWithJWT,
|
|
@@ -365,5 +392,35 @@ export const useTransactionSigner = () => {
|
|
|
365
392
|
* ```
|
|
366
393
|
*/
|
|
367
394
|
isSignerAvailable: isSignerInitialized && !!createPersSignerSDK,
|
|
395
|
+
/**
|
|
396
|
+
* Current signing status for UI feedback
|
|
397
|
+
*
|
|
398
|
+
* Tracks the current state of the signing process. Use this to show
|
|
399
|
+
* progress indicators or status messages during transaction signing.
|
|
400
|
+
*
|
|
401
|
+
* Possible values: 'initializing', 'authenticating', 'preparing',
|
|
402
|
+
* 'signing', 'submitting', 'completed', 'error', 'expired'
|
|
403
|
+
*
|
|
404
|
+
* @example
|
|
405
|
+
* ```typescript
|
|
406
|
+
* const { currentStatus, statusMessage } = useTransactionSigner();
|
|
407
|
+
*
|
|
408
|
+
* return (
|
|
409
|
+
* <View>
|
|
410
|
+
* {currentStatus && (
|
|
411
|
+
* <Text>Status: {statusMessage}</Text>
|
|
412
|
+
* )}
|
|
413
|
+
* </View>
|
|
414
|
+
* );
|
|
415
|
+
* ```
|
|
416
|
+
*/
|
|
417
|
+
currentStatus,
|
|
418
|
+
/**
|
|
419
|
+
* Human-readable status message
|
|
420
|
+
*
|
|
421
|
+
* Provides a user-friendly description of the current signing status.
|
|
422
|
+
* Updates in real-time as the transaction progresses.
|
|
423
|
+
*/
|
|
424
|
+
statusMessage,
|
|
368
425
|
};
|
|
369
426
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OnStatusUpdateFn } from './useTransactionSigner';
|
|
1
2
|
import type { TransactionRequestDTO, TransactionRequestResponseDTO, TransactionDTO, TransactionRole, TransactionPaginationRequestDTO } from '@explorins/pers-shared';
|
|
2
3
|
/**
|
|
3
4
|
* React hook for transaction operations in the PERS SDK
|
|
@@ -36,13 +37,15 @@ import type { TransactionRequestDTO, TransactionRequestResponseDTO, TransactionD
|
|
|
36
37
|
* ```
|
|
37
38
|
*/
|
|
38
39
|
export declare const useTransactions: () => {
|
|
39
|
-
createTransaction: (request: TransactionRequestDTO) => Promise<TransactionRequestResponseDTO>;
|
|
40
|
+
createTransaction: (request: TransactionRequestDTO, onStatusUpdate?: OnStatusUpdateFn) => Promise<TransactionRequestResponseDTO>;
|
|
40
41
|
getTransactionById: (transactionId: string) => Promise<TransactionDTO | null>;
|
|
41
42
|
getUserTransactionHistory: (role?: TransactionRole) => Promise<TransactionDTO[]>;
|
|
42
43
|
getTenantTransactions: () => Promise<TransactionDTO[]>;
|
|
43
44
|
getPaginatedTransactions: (params: TransactionPaginationRequestDTO) => Promise<any>;
|
|
44
45
|
exportTransactionsCSV: () => Promise<Blob>;
|
|
45
46
|
isAvailable: boolean;
|
|
47
|
+
signingStatus: import("@explorins/pers-signer").SigningStatus | null;
|
|
48
|
+
signingStatusMessage: string | null;
|
|
46
49
|
};
|
|
47
50
|
export type TransactionHook = ReturnType<typeof useTransactions>;
|
|
48
51
|
//# sourceMappingURL=useTransactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../src/hooks/useTransactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../src/hooks/useTransactions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,cAAc,EACd,eAAe,EACf,+BAA+B,EAChC,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,eAAe;iCAgC4B,qBAAqB,mBAAmB,gBAAgB,KAAG,QAAQ,6BAA6B,CAAC;wCA2D1F,MAAM,KAAG,QAAQ,cAAc,GAAG,IAAI,CAAC;uCA4BxC,eAAe,KAAG,QAAQ,cAAc,EAAE,CAAC;iCAenD,QAAQ,cAAc,EAAE,CAAC;uCAcjB,+BAA+B,KAAG,QAAQ,GAAG,CAAC;iCActD,QAAQ,IAAI,CAAC;;;;CA0BlE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -39,7 +39,7 @@ import { useTransactionSigner } from './useTransactionSigner';
|
|
|
39
39
|
*/
|
|
40
40
|
export const useTransactions = () => {
|
|
41
41
|
const { sdk, isInitialized, isAuthenticated } = usePersSDK();
|
|
42
|
-
const { signAndSubmitTransactionWithJWT, isSignerAvailable } = useTransactionSigner();
|
|
42
|
+
const { signAndSubmitTransactionWithJWT, isSignerAvailable, currentStatus, statusMessage } = useTransactionSigner();
|
|
43
43
|
if (!isAuthenticated && isInitialized) {
|
|
44
44
|
console.warn('SDK not authenticated. Some transaction operations may fail.');
|
|
45
45
|
}
|
|
@@ -61,29 +61,29 @@ export const useTransactions = () => {
|
|
|
61
61
|
* recipient: '0x123...',
|
|
62
62
|
* tokenId: 'token-123'
|
|
63
63
|
* };
|
|
64
|
-
* const result = await createTransaction(request)
|
|
64
|
+
* const result = await createTransaction(request, (status, message) => {
|
|
65
|
+
* console.log(`Status: ${status} - ${message}`);
|
|
66
|
+
* });
|
|
65
67
|
* console.log('Transaction created:', result);
|
|
66
68
|
* ```
|
|
67
69
|
*/
|
|
68
|
-
const createTransaction = useCallback(async (request) => {
|
|
70
|
+
const createTransaction = useCallback(async (request, onStatusUpdate) => {
|
|
69
71
|
if (!isInitialized || !sdk) {
|
|
70
72
|
throw new Error('SDK not initialized. Call initialize() first.');
|
|
71
73
|
}
|
|
72
74
|
try {
|
|
73
75
|
const result = await sdk.transactions.createTransaction(request);
|
|
74
|
-
console.log('Transaction created successfully:', result);
|
|
75
76
|
// Check if transaction requires signing (contains actionable authToken)
|
|
76
77
|
// Type assertion needed as TransactionRequestResponseDTO type may not include all dynamic properties
|
|
77
78
|
const txToken = result?.actionable?.authToken;
|
|
78
79
|
if (txToken) {
|
|
79
|
-
console.log('[useTransactions] Transaction requires signing, attempting automatic signature...');
|
|
80
80
|
try {
|
|
81
81
|
if (!isSignerAvailable) {
|
|
82
82
|
console.warn('[useTransactions] Transaction signer not available, skipping automatic signing');
|
|
83
83
|
return result;
|
|
84
84
|
}
|
|
85
85
|
// Automatically sign the transaction using the authToken
|
|
86
|
-
const signingResult = await signAndSubmitTransactionWithJWT(txToken);
|
|
86
|
+
const signingResult = await signAndSubmitTransactionWithJWT(txToken, onStatusUpdate);
|
|
87
87
|
if (signingResult.success) {
|
|
88
88
|
console.log('[useTransactions] Transaction signed successfully:', signingResult.transactionHash);
|
|
89
89
|
// Return the original result - the transaction is now signed and will be processed
|
|
@@ -128,7 +128,6 @@ export const useTransactions = () => {
|
|
|
128
128
|
}
|
|
129
129
|
try {
|
|
130
130
|
const result = await sdk.transactions.getTransactionById(transactionId);
|
|
131
|
-
console.log('Transaction fetched successfully:', result);
|
|
132
131
|
return result;
|
|
133
132
|
}
|
|
134
133
|
catch (error) {
|
|
@@ -156,7 +155,6 @@ export const useTransactions = () => {
|
|
|
156
155
|
}
|
|
157
156
|
try {
|
|
158
157
|
const result = await sdk.transactions.getUserTransactionHistory(role);
|
|
159
|
-
console.log('Transaction history fetched successfully:', result);
|
|
160
158
|
return result;
|
|
161
159
|
}
|
|
162
160
|
catch (error) {
|
|
@@ -183,7 +181,6 @@ export const useTransactions = () => {
|
|
|
183
181
|
}
|
|
184
182
|
try {
|
|
185
183
|
const result = await sdk.transactions.getPaginatedTransactions(params);
|
|
186
|
-
console.log('Paginated transactions fetched successfully:', result);
|
|
187
184
|
return result;
|
|
188
185
|
}
|
|
189
186
|
catch (error) {
|
|
@@ -197,7 +194,6 @@ export const useTransactions = () => {
|
|
|
197
194
|
}
|
|
198
195
|
try {
|
|
199
196
|
const result = await sdk.transactions.exportTransactionsCSV();
|
|
200
|
-
console.log('Transactions CSV exported successfully');
|
|
201
197
|
return result;
|
|
202
198
|
}
|
|
203
199
|
catch (error) {
|
|
@@ -213,5 +209,8 @@ export const useTransactions = () => {
|
|
|
213
209
|
getPaginatedTransactions,
|
|
214
210
|
exportTransactionsCSV,
|
|
215
211
|
isAvailable: isInitialized && !!sdk?.transactions,
|
|
212
|
+
// Expose signing status for UI feedback
|
|
213
|
+
signingStatus: currentStatus,
|
|
214
|
+
signingStatusMessage: statusMessage,
|
|
216
215
|
};
|
|
217
216
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useUserStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,eAAO,MAAM,aAAa;8BAGyB,QAAQ,iBAAiB,EAAE,CAAC;+
|
|
1
|
+
{"version":3,"file":"useUserStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useUserStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,eAAO,MAAM,aAAa;8BAGyB,QAAQ,iBAAiB,EAAE,CAAC;+BAc3B,QAAQ,iBAAiB,EAAE,CAAC;2CAkBd,iBAAiB,KAAG,QAAQ,iBAAiB,CAAC;;CAoB/G,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -8,7 +8,6 @@ export const useUserStatus = () => {
|
|
|
8
8
|
}
|
|
9
9
|
try {
|
|
10
10
|
const result = await sdk.userStatus.getUserStatusTypes();
|
|
11
|
-
console.log('User status types fetched successfully:', result);
|
|
12
11
|
return result;
|
|
13
12
|
}
|
|
14
13
|
catch (error) {
|
|
@@ -25,7 +24,6 @@ export const useUserStatus = () => {
|
|
|
25
24
|
}
|
|
26
25
|
try {
|
|
27
26
|
const result = await sdk.userStatus.getEarnedUserStatus();
|
|
28
|
-
console.log('Earned user status fetched successfully:', result);
|
|
29
27
|
return result;
|
|
30
28
|
}
|
|
31
29
|
catch (error) {
|
|
@@ -40,7 +38,6 @@ export const useUserStatus = () => {
|
|
|
40
38
|
}
|
|
41
39
|
try {
|
|
42
40
|
const result = await sdk.userStatus.createUserStatusType(userStatusType);
|
|
43
|
-
console.log('User status type created successfully:', result);
|
|
44
41
|
return result;
|
|
45
42
|
}
|
|
46
43
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUsers.d.ts","sourceRoot":"","sources":["../../src/hooks/useUsers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,eAAO,MAAM,QAAQ;0BAG0B,QAAQ,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useUsers.d.ts","sourceRoot":"","sources":["../../src/hooks/useUsers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,eAAO,MAAM,QAAQ;0BAG0B,QAAQ,OAAO,CAAC;kCAiBN,oBAAoB,KAAG,QAAQ,OAAO,CAAC;0BAiB/C,MAAM,KAAG,QAAQ,OAAO,CAAC;iCAclB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,QAAQ,oBAAoB,EAAE,CAAC;uBAe5E,QAAQ,OAAO,EAAE,CAAC;yBAcd,MAAM,YAAY,oBAAoB,KAAG,QAAQ,OAAO,CAAC;6BAcrD,OAAO,KAAG,QAAQ,OAAO,CAAC;;CAwB7E,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC"}
|
package/dist/hooks/useUsers.js
CHANGED
|
@@ -11,7 +11,6 @@ export const useUsers = () => {
|
|
|
11
11
|
}
|
|
12
12
|
try {
|
|
13
13
|
const result = await sdk.users.getCurrentUser();
|
|
14
|
-
console.log('Current user fetched successfully:', result);
|
|
15
14
|
return result;
|
|
16
15
|
}
|
|
17
16
|
catch (error) {
|
|
@@ -28,7 +27,6 @@ export const useUsers = () => {
|
|
|
28
27
|
}
|
|
29
28
|
try {
|
|
30
29
|
const result = await sdk.users.updateCurrentUser(userData);
|
|
31
|
-
console.log('Current user updated successfully:', result);
|
|
32
30
|
return result;
|
|
33
31
|
}
|
|
34
32
|
catch (error) {
|
|
@@ -42,7 +40,6 @@ export const useUsers = () => {
|
|
|
42
40
|
}
|
|
43
41
|
try {
|
|
44
42
|
const result = await sdk.users.getUserById(userId);
|
|
45
|
-
console.log('User fetched successfully:', result);
|
|
46
43
|
return result;
|
|
47
44
|
}
|
|
48
45
|
catch (error) {
|
|
@@ -56,7 +53,6 @@ export const useUsers = () => {
|
|
|
56
53
|
}
|
|
57
54
|
try {
|
|
58
55
|
const result = await sdk.users.getAllUsersPublic(filter);
|
|
59
|
-
console.log('Public users fetched successfully:', result);
|
|
60
56
|
return result;
|
|
61
57
|
}
|
|
62
58
|
catch (error) {
|
|
@@ -71,7 +67,6 @@ export const useUsers = () => {
|
|
|
71
67
|
}
|
|
72
68
|
try {
|
|
73
69
|
const result = await sdk.users.getAllUsers();
|
|
74
|
-
console.log('All users fetched successfully:', result);
|
|
75
70
|
return result;
|
|
76
71
|
}
|
|
77
72
|
catch (error) {
|
|
@@ -85,7 +80,6 @@ export const useUsers = () => {
|
|
|
85
80
|
}
|
|
86
81
|
try {
|
|
87
82
|
const result = await sdk.users.updateUser(userId, userData);
|
|
88
|
-
console.log('User updated successfully:', result);
|
|
89
83
|
return result;
|
|
90
84
|
}
|
|
91
85
|
catch (error) {
|
|
@@ -99,7 +93,6 @@ export const useUsers = () => {
|
|
|
99
93
|
}
|
|
100
94
|
try {
|
|
101
95
|
const result = await sdk.users.toggleUserStatus(user);
|
|
102
|
-
console.log('User status toggled successfully:', result);
|
|
103
96
|
return result;
|
|
104
97
|
}
|
|
105
98
|
catch (error) {
|
package/dist/hooks/useWeb3.d.ts
CHANGED
|
@@ -1,65 +1,51 @@
|
|
|
1
1
|
import type { TokenBalance, TokenBalanceRequest, TokenCollectionRequest, TokenCollection, TokenMetadata } from '@explorins/pers-sdk/web3';
|
|
2
2
|
import type { ChainData } from '@explorins/pers-sdk/web3-chain';
|
|
3
|
-
/**
|
|
4
|
-
* Wallet information interface
|
|
5
|
-
*
|
|
6
|
-
* @interface WalletInfo
|
|
7
|
-
* @property {string | null} address - Wallet address if connected
|
|
8
|
-
* @property {boolean} isConnected - Whether wallet is connected
|
|
9
|
-
*/
|
|
10
|
-
export interface WalletInfo {
|
|
11
|
-
address: string | null;
|
|
12
|
-
isConnected: boolean;
|
|
13
|
-
}
|
|
14
3
|
/**
|
|
15
4
|
* React hook for Web3 operations in the PERS SDK
|
|
16
5
|
*
|
|
17
6
|
* Provides comprehensive Web3 functionality including token balance queries,
|
|
18
7
|
* metadata retrieval, collection management, IPFS resolution, and blockchain
|
|
19
|
-
* explorer integration. Supports multi-chain operations
|
|
8
|
+
* explorer integration. Supports multi-chain operations.
|
|
9
|
+
*
|
|
10
|
+
* Note: Wallet addresses should be obtained from `user.wallets` via `usePersSDK()`.
|
|
20
11
|
*
|
|
21
12
|
* @returns Web3 hook with methods for blockchain operations
|
|
22
13
|
*
|
|
23
14
|
* @example
|
|
24
15
|
* ```typescript
|
|
25
16
|
* function Web3Component() {
|
|
26
|
-
* const {
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* } = useWeb3();
|
|
17
|
+
* const { user } = usePersSDK();
|
|
18
|
+
* const { getTokenBalance, getTokenMetadata } = useWeb3();
|
|
19
|
+
*
|
|
20
|
+
* // Get wallet address from user
|
|
21
|
+
* const walletAddress = user?.wallets?.[0]?.address;
|
|
32
22
|
*
|
|
33
23
|
* const loadTokenData = async () => {
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* }
|
|
24
|
+
* if (!walletAddress) {
|
|
25
|
+
* console.log('No wallet connected');
|
|
26
|
+
* return;
|
|
27
|
+
* }
|
|
39
28
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
29
|
+
* const balance = await getTokenBalance({
|
|
30
|
+
* walletAddress,
|
|
31
|
+
* contractAddress: '0x123...',
|
|
32
|
+
* chainId: 1
|
|
33
|
+
* });
|
|
45
34
|
*
|
|
46
|
-
*
|
|
47
|
-
* } catch (error) {
|
|
48
|
-
* console.error('Failed to load token data:', error);
|
|
49
|
-
* }
|
|
35
|
+
* console.log('Token balance:', balance);
|
|
50
36
|
* };
|
|
51
37
|
*
|
|
52
38
|
* return (
|
|
53
|
-
* <
|
|
54
|
-
* {
|
|
55
|
-
* <
|
|
56
|
-
* <
|
|
57
|
-
* <
|
|
58
|
-
* </
|
|
39
|
+
* <View>
|
|
40
|
+
* {walletAddress ? (
|
|
41
|
+
* <View>
|
|
42
|
+
* <Text>Wallet: {walletAddress}</Text>
|
|
43
|
+
* <Button onPress={loadTokenData} title="Load Tokens" />
|
|
44
|
+
* </View>
|
|
59
45
|
* ) : (
|
|
60
|
-
* <
|
|
46
|
+
* <Text>No wallet connected</Text>
|
|
61
47
|
* )}
|
|
62
|
-
* </
|
|
48
|
+
* </View>
|
|
63
49
|
* );
|
|
64
50
|
* }
|
|
65
51
|
* ```
|
|
@@ -72,8 +58,6 @@ export declare const useWeb3: () => {
|
|
|
72
58
|
fetchAndProcessMetadata: (tokenUri: string, chainId: number) => Promise<TokenMetadata | null>;
|
|
73
59
|
getChainDataById: (chainId: number) => Promise<ChainData | null>;
|
|
74
60
|
getExplorerUrl: (chainId: number, address: string, type: 'address' | 'tx') => Promise<string>;
|
|
75
|
-
getWalletInfo: () => Promise<WalletInfo | null>;
|
|
76
|
-
accountAddress: string | null;
|
|
77
61
|
isAvailable: boolean;
|
|
78
62
|
};
|
|
79
63
|
export type Web3Hook = ReturnType<typeof useWeb3>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,OAAO;+BA0BkC,mBAAmB,KAAG,QAAQ,YAAY,CAAC;gCAiC1C,mBAAmB,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;kCAcjD,sBAAsB,KAAG,QAAQ,eAAe,CAAC;0BAczD,MAAM,WAAW,MAAM,KAAG,QAAQ,MAAM,CAAC;wCAc3B,MAAM,WAAW,MAAM,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;gCAc/D,MAAM,KAAG,QAAQ,SAAS,GAAG,IAAI,CAAC;8BAcpC,MAAM,WAAW,MAAM,QAAQ,SAAS,GAAG,IAAI,KAAG,QAAQ,MAAM,CAAC;;CAwBrH,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC"}
|
package/dist/hooks/useWeb3.js
CHANGED
|
@@ -5,56 +5,53 @@ import { usePersSDK } from '../providers/PersSDKProvider';
|
|
|
5
5
|
*
|
|
6
6
|
* Provides comprehensive Web3 functionality including token balance queries,
|
|
7
7
|
* metadata retrieval, collection management, IPFS resolution, and blockchain
|
|
8
|
-
* explorer integration. Supports multi-chain operations
|
|
8
|
+
* explorer integration. Supports multi-chain operations.
|
|
9
|
+
*
|
|
10
|
+
* Note: Wallet addresses should be obtained from `user.wallets` via `usePersSDK()`.
|
|
9
11
|
*
|
|
10
12
|
* @returns Web3 hook with methods for blockchain operations
|
|
11
13
|
*
|
|
12
14
|
* @example
|
|
13
15
|
* ```typescript
|
|
14
16
|
* function Web3Component() {
|
|
15
|
-
* const {
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* } = useWeb3();
|
|
17
|
+
* const { user } = usePersSDK();
|
|
18
|
+
* const { getTokenBalance, getTokenMetadata } = useWeb3();
|
|
19
|
+
*
|
|
20
|
+
* // Get wallet address from user
|
|
21
|
+
* const walletAddress = user?.wallets?.[0]?.address;
|
|
21
22
|
*
|
|
22
23
|
* const loadTokenData = async () => {
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* }
|
|
24
|
+
* if (!walletAddress) {
|
|
25
|
+
* console.log('No wallet connected');
|
|
26
|
+
* return;
|
|
27
|
+
* }
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* const balance = await getTokenBalance({
|
|
30
|
+
* walletAddress,
|
|
31
|
+
* contractAddress: '0x123...',
|
|
32
|
+
* chainId: 1
|
|
33
|
+
* });
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
* } catch (error) {
|
|
37
|
-
* console.error('Failed to load token data:', error);
|
|
38
|
-
* }
|
|
35
|
+
* console.log('Token balance:', balance);
|
|
39
36
|
* };
|
|
40
37
|
*
|
|
41
38
|
* return (
|
|
42
|
-
* <
|
|
43
|
-
* {
|
|
44
|
-
* <
|
|
45
|
-
* <
|
|
46
|
-
* <
|
|
47
|
-
* </
|
|
39
|
+
* <View>
|
|
40
|
+
* {walletAddress ? (
|
|
41
|
+
* <View>
|
|
42
|
+
* <Text>Wallet: {walletAddress}</Text>
|
|
43
|
+
* <Button onPress={loadTokenData} title="Load Tokens" />
|
|
44
|
+
* </View>
|
|
48
45
|
* ) : (
|
|
49
|
-
* <
|
|
46
|
+
* <Text>No wallet connected</Text>
|
|
50
47
|
* )}
|
|
51
|
-
* </
|
|
48
|
+
* </View>
|
|
52
49
|
* );
|
|
53
50
|
* }
|
|
54
51
|
* ```
|
|
55
52
|
*/
|
|
56
53
|
export const useWeb3 = () => {
|
|
57
|
-
const { sdk, isInitialized, isAuthenticated
|
|
54
|
+
const { sdk, isInitialized, isAuthenticated } = usePersSDK();
|
|
58
55
|
if (!isAuthenticated && isInitialized) {
|
|
59
56
|
console.warn('SDK not authenticated. Some web3 operations may fail.');
|
|
60
57
|
}
|
|
@@ -78,13 +75,11 @@ export const useWeb3 = () => {
|
|
|
78
75
|
* ```
|
|
79
76
|
*/
|
|
80
77
|
const getTokenBalance = useCallback(async (request) => {
|
|
81
|
-
console.log('[useWeb3] getTokenBalance called with request:', request);
|
|
82
78
|
if (!isInitialized || !sdk) {
|
|
83
79
|
throw new Error('SDK not initialized. Call initialize() first.');
|
|
84
80
|
}
|
|
85
81
|
try {
|
|
86
82
|
const result = await sdk.web3.getTokenBalance(request);
|
|
87
|
-
console.log('Token balance fetched successfully:', result);
|
|
88
83
|
return result;
|
|
89
84
|
}
|
|
90
85
|
catch (error) {
|
|
@@ -117,7 +112,6 @@ export const useWeb3 = () => {
|
|
|
117
112
|
}
|
|
118
113
|
try {
|
|
119
114
|
const result = await sdk.web3.getTokenMetadata(request);
|
|
120
|
-
console.log('Token metadata fetched successfully:', result);
|
|
121
115
|
return result;
|
|
122
116
|
}
|
|
123
117
|
catch (error) {
|
|
@@ -131,7 +125,6 @@ export const useWeb3 = () => {
|
|
|
131
125
|
}
|
|
132
126
|
try {
|
|
133
127
|
const result = await sdk.web3.getTokenCollection(request);
|
|
134
|
-
console.log('Token collection fetched successfully:', result);
|
|
135
128
|
return result;
|
|
136
129
|
}
|
|
137
130
|
catch (error) {
|
|
@@ -145,7 +138,6 @@ export const useWeb3 = () => {
|
|
|
145
138
|
}
|
|
146
139
|
try {
|
|
147
140
|
const result = await sdk.web3.resolveIPFSUrl(url, chainId);
|
|
148
|
-
console.log('IPFS URL resolved successfully:', result);
|
|
149
141
|
return result;
|
|
150
142
|
}
|
|
151
143
|
catch (error) {
|
|
@@ -159,7 +151,6 @@ export const useWeb3 = () => {
|
|
|
159
151
|
}
|
|
160
152
|
try {
|
|
161
153
|
const result = await sdk.web3.fetchAndProcessMetadata(tokenUri, chainId);
|
|
162
|
-
console.log('Metadata fetched and processed successfully:', result);
|
|
163
154
|
return result;
|
|
164
155
|
}
|
|
165
156
|
catch (error) {
|
|
@@ -173,7 +164,6 @@ export const useWeb3 = () => {
|
|
|
173
164
|
}
|
|
174
165
|
try {
|
|
175
166
|
const result = await sdk.web3.getChainDataById(chainId);
|
|
176
|
-
console.log('Chain data fetched successfully:', result);
|
|
177
167
|
return result;
|
|
178
168
|
}
|
|
179
169
|
catch (error) {
|
|
@@ -187,7 +177,6 @@ export const useWeb3 = () => {
|
|
|
187
177
|
}
|
|
188
178
|
try {
|
|
189
179
|
const result = await sdk.web3.getExplorerUrl(chainId, address, type);
|
|
190
|
-
console.log('Explorer URL generated successfully:', result);
|
|
191
180
|
return result;
|
|
192
181
|
}
|
|
193
182
|
catch (error) {
|
|
@@ -195,19 +184,6 @@ export const useWeb3 = () => {
|
|
|
195
184
|
throw error;
|
|
196
185
|
}
|
|
197
186
|
}, [sdk, isInitialized]);
|
|
198
|
-
const getWalletInfo = useCallback(async () => {
|
|
199
|
-
if (!isInitialized) {
|
|
200
|
-
throw new Error('SDK not initialized. Call initialize() first.');
|
|
201
|
-
}
|
|
202
|
-
if (!accountAddress) {
|
|
203
|
-
console.warn('No account address available');
|
|
204
|
-
return null;
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
address: accountAddress,
|
|
208
|
-
isConnected: !!accountAddress,
|
|
209
|
-
};
|
|
210
|
-
}, [isInitialized, accountAddress]);
|
|
211
187
|
return {
|
|
212
188
|
getTokenBalance,
|
|
213
189
|
getTokenMetadata,
|
|
@@ -216,8 +192,6 @@ export const useWeb3 = () => {
|
|
|
216
192
|
fetchAndProcessMetadata,
|
|
217
193
|
getChainDataById,
|
|
218
194
|
getExplorerUrl,
|
|
219
|
-
getWalletInfo,
|
|
220
|
-
accountAddress: isInitialized ? accountAddress : null,
|
|
221
195
|
isAvailable: isInitialized && !!sdk?.web3,
|
|
222
196
|
};
|
|
223
197
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -185,7 +185,8 @@ export { PersSDKProvider, usePersSDK, type PersConfig, type PersSDKContext } fro
|
|
|
185
185
|
* }
|
|
186
186
|
* ```
|
|
187
187
|
*/
|
|
188
|
-
export { useAuth, useTokens, useTransactions, useTransactionSigner, useBusiness, useCampaigns, useRedemptions, useWeb3, usePurchases, useTenants, useUsers, useUserStatus, useFiles, useAnalytics, useDonations } from './hooks';
|
|
188
|
+
export { useAuth, useTokens, useTransactions, useTransactionSigner, SigningStatus, useBusiness, useCampaigns, useRedemptions, useWeb3, usePurchases, useTenants, useUsers, useUserStatus, useFiles, useAnalytics, useDonations } from './hooks';
|
|
189
|
+
export type { OnStatusUpdateFn, StatusUpdateData, SigningStatusType } from './hooks';
|
|
189
190
|
/**
|
|
190
191
|
* React Native-optimized HTTP client with automatic request/response handling
|
|
191
192
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,aAAa,CAAC;AAMrB;;;;;;;;GAQG;AACH,OAAO,EACL,6BAA6B,EAC7B,KAAK,qBAAqB,EAC3B,MAAM,wCAAwC,CAAC;AAMhD;;;;;;;;;;GAUG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;;;;;GAQG;AACH,OAAO,EACL,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAM/C;;;GAGG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,eAAe,EACf,UAAU,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAMrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,OAAO,EACP,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACb,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,aAAa,CAAC;AAMrB;;;;;;;;GAQG;AACH,OAAO,EACL,6BAA6B,EAC7B,KAAK,qBAAqB,EAC3B,MAAM,wCAAwC,CAAC;AAMhD;;;;;;;;;;GAUG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;;;;;GAQG;AACH,OAAO,EACL,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAM/C;;;GAGG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,eAAe,EACf,UAAU,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAMrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,OAAO,EACP,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAMrF;;;;;;GAMG;AACH,OAAO,EACL,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAM9C;;;;;;;;GAQG;AACH,OAAO,EACL,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AAMrB;;;;;;;;;;;;;;;GAeG;AACH,cAAc,wBAAwB,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,sBAAsB,EACvB,MAAM,0BAA0B,CAAC"}
|