@johnqh/indexer_client 0.0.1 → 0.0.3

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 (51) hide show
  1. package/dist/hooks/index.d.ts +9 -0
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/index.js +9 -0
  4. package/dist/hooks/index.js.map +1 -1
  5. package/dist/hooks/useCreateNonce.d.ts +10 -0
  6. package/dist/hooks/useCreateNonce.d.ts.map +1 -0
  7. package/dist/hooks/useCreateNonce.js +38 -0
  8. package/dist/hooks/useCreateNonce.js.map +1 -0
  9. package/dist/hooks/useGetDelegatedFrom.d.ts +10 -0
  10. package/dist/hooks/useGetDelegatedFrom.d.ts.map +1 -0
  11. package/dist/hooks/useGetDelegatedFrom.js +38 -0
  12. package/dist/hooks/useGetDelegatedFrom.js.map +1 -0
  13. package/dist/hooks/useGetDelegatedTo.d.ts +10 -0
  14. package/dist/hooks/useGetDelegatedTo.d.ts.map +1 -0
  15. package/dist/hooks/useGetDelegatedTo.js +38 -0
  16. package/dist/hooks/useGetDelegatedTo.js.map +1 -0
  17. package/dist/hooks/useGetEntitlement.d.ts +10 -0
  18. package/dist/hooks/useGetEntitlement.d.ts.map +1 -0
  19. package/dist/hooks/useGetEntitlement.js +38 -0
  20. package/dist/hooks/useGetEntitlement.js.map +1 -0
  21. package/dist/hooks/useGetNonce.d.ts +10 -0
  22. package/dist/hooks/useGetNonce.d.ts.map +1 -0
  23. package/dist/hooks/useGetNonce.js +38 -0
  24. package/dist/hooks/useGetNonce.js.map +1 -0
  25. package/dist/hooks/useGetPointsBalance.d.ts +10 -0
  26. package/dist/hooks/useGetPointsBalance.d.ts.map +1 -0
  27. package/dist/hooks/useGetPointsBalance.js +38 -0
  28. package/dist/hooks/useGetPointsBalance.js.map +1 -0
  29. package/dist/hooks/useGetSigningMessage.d.ts +10 -0
  30. package/dist/hooks/useGetSigningMessage.d.ts.map +1 -0
  31. package/dist/hooks/useGetSigningMessage.js +43 -0
  32. package/dist/hooks/useGetSigningMessage.js.map +1 -0
  33. package/dist/hooks/useGetWalletAccounts.d.ts +10 -0
  34. package/dist/hooks/useGetWalletAccounts.d.ts.map +1 -0
  35. package/dist/hooks/useGetWalletAccounts.js +42 -0
  36. package/dist/hooks/useGetWalletAccounts.js.map +1 -0
  37. package/dist/hooks/useIndexerMail.d.ts.map +1 -1
  38. package/dist/hooks/useIndexerMail.js +258 -125
  39. package/dist/hooks/useIndexerMail.js.map +1 -1
  40. package/dist/hooks/useIndexerPoints.d.ts.map +1 -1
  41. package/dist/hooks/useIndexerPoints.js +59 -66
  42. package/dist/hooks/useIndexerPoints.js.map +1 -1
  43. package/dist/hooks/useValidateUsername.d.ts +10 -0
  44. package/dist/hooks/useValidateUsername.d.ts.map +1 -0
  45. package/dist/hooks/useValidateUsername.js +38 -0
  46. package/dist/hooks/useValidateUsername.js.map +1 -0
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/package.json +3 -3
@@ -1,5 +1,14 @@
1
1
  export * from './useIndexerPoints';
2
2
  export * from './useIndexerMail';
3
+ export * from './useGetWalletAccounts';
4
+ export * from './useValidateUsername';
5
+ export * from './useGetSigningMessage';
6
+ export * from './useGetDelegatedTo';
7
+ export * from './useGetDelegatedFrom';
8
+ export * from './useCreateNonce';
9
+ export * from './useGetNonce';
10
+ export * from './useGetEntitlement';
11
+ export * from './useGetPointsBalance';
3
12
  export { useWalletNames, useResolveNameToAddress, } from './useIndexerNameService';
4
13
  export * from './useReferralCode';
5
14
  export * from './useReferralShare';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -1,5 +1,14 @@
1
1
  export * from './useIndexerPoints';
2
2
  export * from './useIndexerMail';
3
+ export * from './useGetWalletAccounts';
4
+ export * from './useValidateUsername';
5
+ export * from './useGetSigningMessage';
6
+ export * from './useGetDelegatedTo';
7
+ export * from './useGetDelegatedFrom';
8
+ export * from './useCreateNonce';
9
+ export * from './useGetNonce';
10
+ export * from './useGetEntitlement';
11
+ export * from './useGetPointsBalance';
3
12
  export { useWalletNames, useResolveNameToAddress, } from './useIndexerNameService';
4
13
  export * from './useReferralCode';
5
14
  export * from './useReferralShare';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type NonceResponse, type Optional } from '@johnqh/types';
2
+ interface UseCreateNonceReturn {
3
+ createNonce: (username: string, signature: string, message: string) => Promise<Optional<NonceResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useCreateNonce: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseCreateNonceReturn;
9
+ export {};
10
+ //# sourceMappingURL=useCreateNonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateNonce.d.ts","sourceRoot":"","sources":["../../src/hooks/useCreateNonce.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGlE,UAAU,oBAAoB;IAC5B,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,cAAc,GACzB,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,oBA0DF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useCreateNonce = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ username, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.createNonce(username, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] createNonce failed, returning mock data:', err);
20
+ return IndexerMockData.createNonce(username);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to create nonce';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const createNonce = useCallback(async (username, signature, message) => {
29
+ return await mutation.mutateAsync({ username, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ createNonce,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useCreateNonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateNonce.js","sourceRoot":"","sources":["../../src/hooks/useCreateNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACF,EAAE;IACxB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,QAAQ,EACR,SAAS,EACT,OAAO,GAKR,EAAoC,EAAE;YACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,oDAAoD,EACpD,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;gBAChE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EACH,QAAgB,EAChB,SAAiB,EACjB,OAAe,EACmB,EAAE;QACpC,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,WAAW;QACX,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type DelegatedFromResponse, type Optional } from '@johnqh/types';
2
+ interface UseGetDelegatedFromReturn {
3
+ getDelegatedFrom: (walletAddress: string, signature: string, message: string) => Promise<Optional<DelegatedFromResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetDelegatedFrom: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetDelegatedFromReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetDelegatedFrom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetDelegatedFrom.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetDelegatedFrom.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1E,UAAU,yBAAyB;IACjC,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,mBAAmB,GAC9B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,yBA8DF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetDelegatedFrom = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getDelegatedFrom(walletAddress, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getDelegatedFrom failed, returning mock data:', err);
20
+ return IndexerMockData.getDelegatedFrom(walletAddress);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get delegated from';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getDelegatedFrom = useCallback(async (walletAddress, signature, message) => {
29
+ return await mutation.mutateAsync({ walletAddress, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ getDelegatedFrom,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useGetDelegatedFrom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetDelegatedFrom.js","sourceRoot":"","sources":["../../src/hooks/useGetDelegatedFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACG,EAAE;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,SAAS,EACT,OAAO,GAKR,EAA4C,EAAE;YAC7C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,gBAAgB,CACzC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;gBACtE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EAC2B,EAAE;QAC5C,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type DelegatedToResponse, type Optional } from '@johnqh/types';
2
+ interface UseGetDelegatedToReturn {
3
+ getDelegatedTo: (walletAddress: string, signature: string, message: string) => Promise<Optional<DelegatedToResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetDelegatedTo: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetDelegatedToReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetDelegatedTo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetDelegatedTo.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetDelegatedTo.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGxE,UAAU,uBAAuB;IAC/B,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,uBA8DF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetDelegatedTo = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getDelegatedTo(walletAddress, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getDelegatedTo failed, returning mock data:', err);
20
+ return IndexerMockData.getDelegatedTo(walletAddress);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get delegated to';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getDelegatedTo = useCallback(async (walletAddress, signature, message) => {
29
+ return await mutation.mutateAsync({ walletAddress, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ getDelegatedTo,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useGetDelegatedTo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetDelegatedTo.js","sourceRoot":"","sources":["../../src/hooks/useGetDelegatedTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACC,EAAE;IAC3B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,SAAS,EACT,OAAO,GAKR,EAA0C,EAAE;YAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,cAAc,CACvC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;gBACpE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACyB,EAAE;QAC1C,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,cAAc;QACd,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type EntitlementResponse, type Optional } from '@johnqh/types';
2
+ interface UseGetEntitlementReturn {
3
+ getEntitlement: (walletAddress: string, signature: string, message: string) => Promise<Optional<EntitlementResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetEntitlement: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetEntitlementReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetEntitlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetEntitlement.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetEntitlement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGxE,UAAU,uBAAuB;IAC/B,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,uBA8DF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetEntitlement = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getEntitlement(walletAddress, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getEntitlement failed, returning mock data:', err);
20
+ return IndexerMockData.getEntitlement(walletAddress);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get entitlement';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getEntitlement = useCallback(async (walletAddress, signature, message) => {
29
+ return await mutation.mutateAsync({ walletAddress, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ getEntitlement,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useGetEntitlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetEntitlement.js","sourceRoot":"","sources":["../../src/hooks/useGetEntitlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACC,EAAE;IAC3B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,SAAS,EACT,OAAO,GAKR,EAA0C,EAAE;YAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,cAAc,CACvC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBACnE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACyB,EAAE;QAC1C,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,cAAc;QACd,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type NonceResponse, type Optional } from '@johnqh/types';
2
+ interface UseGetNonceReturn {
3
+ getNonce: (username: string, signature: string, message: string) => Promise<Optional<NonceResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetNonce: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetNonceReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetNonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetNonce.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetNonce.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGlE,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,WAAW,GACtB,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,iBAuDF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetNonce = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ username, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getNonce(username, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getNonce failed, returning mock data:', err);
20
+ return IndexerMockData.getNonce(username);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get nonce';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getNonce = useCallback(async (username, signature, message) => {
29
+ return await mutation.mutateAsync({ username, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ getNonce,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useGetNonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetNonce.js","sourceRoot":"","sources":["../../src/hooks/useGetNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACL,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,QAAQ,EACR,SAAS,EACT,OAAO,GAKR,EAAoC,EAAE;YACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;oBACrE,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAC7D,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EACH,QAAgB,EAChB,SAAiB,EACjB,OAAe,EACmB,EAAE;QACpC,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Optional, type PointsResponse } from '@johnqh/types';
2
+ interface UseGetPointsBalanceReturn {
3
+ getPointsBalance: (walletAddress: string, signature: string, message: string) => Promise<Optional<PointsResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetPointsBalance: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetPointsBalanceReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetPointsBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetPointsBalance.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetPointsBalance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,UAAU,yBAAyB;IACjC,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,mBAAmB,GAC9B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,yBA8DF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetPointsBalance = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, signature, message, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getPointsBalance(walletAddress, signature, message);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getPointsBalance failed, returning mock data:', err);
20
+ return IndexerMockData.getPointsBalance(walletAddress);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get points balance';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getPointsBalance = useCallback(async (walletAddress, signature, message) => {
29
+ return await mutation.mutateAsync({ walletAddress, signature, message });
30
+ }, [mutation]);
31
+ return {
32
+ getPointsBalance,
33
+ isLoading: mutation.isPending,
34
+ error,
35
+ clearError,
36
+ };
37
+ };
38
+ //# sourceMappingURL=useGetPointsBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetPointsBalance.js","sourceRoot":"","sources":["../../src/hooks/useGetPointsBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACG,EAAE;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,SAAS,EACT,OAAO,GAKR,EAAqC,EAAE;YACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,gBAAgB,CACzC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;gBACtE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACoB,EAAE;QACrC,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Optional, type SignInMessageResponse } from '@johnqh/types';
2
+ interface UseGetSigningMessageReturn {
3
+ getSigningMessage: (walletAddress: string, chainId: number, domain: string, url: string) => Promise<Optional<SignInMessageResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetSigningMessage: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetSigningMessageReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetSigningMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetSigningMessage.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetSigningMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG1E,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,0BA2EF,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetSigningMessage = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, chainId, domain, url, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getMessage(chainId, walletAddress, domain, url);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getSigningMessage failed, returning mock data:', err);
20
+ return IndexerMockData.getSigningMessage(walletAddress, chainId, domain);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get signing message';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getSigningMessage = useCallback(async (walletAddress, chainId, domain, url) => {
29
+ return await mutation.mutateAsync({
30
+ walletAddress,
31
+ chainId,
32
+ domain,
33
+ url,
34
+ });
35
+ }, [mutation]);
36
+ return {
37
+ getSigningMessage,
38
+ isLoading: mutation.isPending,
39
+ error,
40
+ clearError,
41
+ };
42
+ };
43
+ //# sourceMappingURL=useGetSigningMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetSigningMessage.js","sourceRoot":"","sources":["../../src/hooks/useGetSigningMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwB1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACI,EAAE;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,OAAO,EACP,MAAM,EACN,GAAG,GAMJ,EAA4C,EAAE;YAC7C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,UAAU,CACnC,OAAO,EACP,aAAa,EACb,MAAM,EACN,GAAG,CACJ,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,iBAAiB,CACtC,aAAa,EACb,OAAO,EACP,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC;gBACvE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EACH,aAAqB,EACrB,OAAe,EACf,MAAc,EACd,GAAW,EAC+B,EAAE;QAC5C,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC;YAChC,aAAa;YACb,OAAO;YACP,MAAM;YACN,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type EmailAccountsResponse, type Optional } from '@johnqh/types';
2
+ interface UseGetWalletAccountsReturn {
3
+ getWalletAccounts: (walletAddress: string, signature: string, message: string, referralCode?: string) => Promise<Optional<EmailAccountsResponse>>;
4
+ isLoading: boolean;
5
+ error: Optional<string>;
6
+ clearError: () => void;
7
+ }
8
+ export declare const useGetWalletAccounts: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseGetWalletAccountsReturn;
9
+ export {};
10
+ //# sourceMappingURL=useGetWalletAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetWalletAccounts.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetWalletAccounts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1E,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,0BA2EF,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { useCallback, useMemo, useState } from 'react';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { IndexerClient } from '../network/IndexerClient';
4
+ import { IndexerMockData } from './mocks';
5
+ export const useGetWalletAccounts = (endpointUrl, dev = false, devMode = false) => {
6
+ const [error, setError] = useState(null);
7
+ const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
8
+ const clearError = useCallback(() => {
9
+ setError(null);
10
+ }, []);
11
+ const mutation = useMutation({
12
+ mutationFn: async ({ walletAddress, signature, message, referralCode, }) => {
13
+ setError(null);
14
+ try {
15
+ return await indexerClient.getWalletAccounts(walletAddress, signature, message, referralCode);
16
+ }
17
+ catch (err) {
18
+ if (devMode) {
19
+ console.warn('[DevMode] getWalletAccounts failed, returning mock data:', err);
20
+ return IndexerMockData.getWalletAccounts(walletAddress);
21
+ }
22
+ const errorMessage = err instanceof Error ? err.message : 'Failed to get wallet accounts';
23
+ setError(errorMessage);
24
+ throw err;
25
+ }
26
+ },
27
+ });
28
+ const getWalletAccounts = useCallback(async (walletAddress, signature, message, referralCode) => {
29
+ const params = { walletAddress, signature, message };
30
+ if (referralCode !== undefined) {
31
+ params.referralCode = referralCode;
32
+ }
33
+ return await mutation.mutateAsync(params);
34
+ }, [mutation]);
35
+ return {
36
+ getWalletAccounts,
37
+ isLoading: mutation.isPending,
38
+ error,
39
+ clearError,
40
+ };
41
+ };
42
+ //# sourceMappingURL=useGetWalletAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetWalletAccounts.js","sourceRoot":"","sources":["../../src/hooks/useGetWalletAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwB1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACI,EAAE;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EACzC,CAAC,WAAW,EAAE,GAAG,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,KAAK,EAAE,EACjB,aAAa,EACb,SAAS,EACT,OAAO,EACP,YAAY,GAMb,EAA4C,EAAE;YAC7C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,MAAM,aAAa,CAAC,iBAAiB,CAC1C,aAAa,EACb,SAAS,EACT,OAAO,EACP,YAAY,CACb,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;oBACF,OAAO,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC;gBACvE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACf,YAAqB,EACqB,EAAE;QAC5C,MAAM,MAAM,GAKR,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIndexerMail.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExB,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAClD,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,oBAAoB,EAAE,CACpB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,kBAAkB,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE/D,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAOD,QAAA,MAAM,cAAc,GAClB,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,oBAgRF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"useIndexerMail.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAGvB,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExB,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAClD,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,oBAAoB,EAAE,CACpB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,kBAAkB,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE/D,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAQD,QAAA,MAAM,cAAc,GAClB,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,oBAshBF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,CAAC"}