@formo/analytics-react-native 0.1.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.
- package/README.md +302 -0
- package/lib/commonjs/FormoAnalytics.js +526 -0
- package/lib/commonjs/FormoAnalytics.js.map +1 -0
- package/lib/commonjs/FormoAnalyticsProvider.js +265 -0
- package/lib/commonjs/FormoAnalyticsProvider.js.map +1 -0
- package/lib/commonjs/constants/config.js +69 -0
- package/lib/commonjs/constants/config.js.map +1 -0
- package/lib/commonjs/constants/events.js +30 -0
- package/lib/commonjs/constants/events.js.map +1 -0
- package/lib/commonjs/constants/index.js +39 -0
- package/lib/commonjs/constants/index.js.map +1 -0
- package/lib/commonjs/constants/storage.js +23 -0
- package/lib/commonjs/constants/storage.js.map +1 -0
- package/lib/commonjs/index.js +65 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/lib/consent/index.js +56 -0
- package/lib/commonjs/lib/consent/index.js.map +1 -0
- package/lib/commonjs/lib/event/EventFactory.js +493 -0
- package/lib/commonjs/lib/event/EventFactory.js.map +1 -0
- package/lib/commonjs/lib/event/EventManager.js +46 -0
- package/lib/commonjs/lib/event/EventManager.js.map +1 -0
- package/lib/commonjs/lib/event/EventQueue.js +290 -0
- package/lib/commonjs/lib/event/EventQueue.js.map +1 -0
- package/lib/commonjs/lib/event/index.js +50 -0
- package/lib/commonjs/lib/event/index.js.map +1 -0
- package/lib/commonjs/lib/event/types.js +6 -0
- package/lib/commonjs/lib/event/types.js.map +1 -0
- package/lib/commonjs/lib/lifecycle/index.js +196 -0
- package/lib/commonjs/lib/lifecycle/index.js.map +1 -0
- package/lib/commonjs/lib/logger/index.js +48 -0
- package/lib/commonjs/lib/logger/index.js.map +1 -0
- package/lib/commonjs/lib/session/index.js +109 -0
- package/lib/commonjs/lib/session/index.js.map +1 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js +164 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js +41 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js +24 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageManager.js +126 -0
- package/lib/commonjs/lib/storage/StorageManager.js.map +1 -0
- package/lib/commonjs/lib/storage/index.js +49 -0
- package/lib/commonjs/lib/storage/index.js.map +1 -0
- package/lib/commonjs/lib/storage/types.js +2 -0
- package/lib/commonjs/lib/storage/types.js.map +1 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js +445 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/commonjs/lib/wagmi/index.js +28 -0
- package/lib/commonjs/lib/wagmi/index.js.map +1 -0
- package/lib/commonjs/lib/wagmi/types.js +2 -0
- package/lib/commonjs/lib/wagmi/types.js.map +1 -0
- package/lib/commonjs/types/base.js +6 -0
- package/lib/commonjs/types/base.js.map +1 -0
- package/lib/commonjs/types/events.js +22 -0
- package/lib/commonjs/types/events.js.map +1 -0
- package/lib/commonjs/types/index.js +28 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/address.js +82 -0
- package/lib/commonjs/utils/address.js.map +1 -0
- package/lib/commonjs/utils/hash.js +30 -0
- package/lib/commonjs/utils/hash.js.map +1 -0
- package/lib/commonjs/utils/helpers.js +116 -0
- package/lib/commonjs/utils/helpers.js.map +1 -0
- package/lib/commonjs/utils/index.js +61 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/timestamp.js +34 -0
- package/lib/commonjs/utils/timestamp.js.map +1 -0
- package/lib/commonjs/utils/trafficSource.js +147 -0
- package/lib/commonjs/utils/trafficSource.js.map +1 -0
- package/lib/commonjs/version.js +10 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/FormoAnalytics.js +519 -0
- package/lib/module/FormoAnalytics.js.map +1 -0
- package/lib/module/FormoAnalyticsProvider.js +256 -0
- package/lib/module/FormoAnalyticsProvider.js.map +1 -0
- package/lib/module/constants/config.js +62 -0
- package/lib/module/constants/config.js.map +1 -0
- package/lib/module/constants/events.js +24 -0
- package/lib/module/constants/events.js.map +1 -0
- package/lib/module/constants/index.js +4 -0
- package/lib/module/constants/index.js.map +1 -0
- package/lib/module/constants/storage.js +17 -0
- package/lib/module/constants/storage.js.map +1 -0
- package/lib/module/index.js +51 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/lib/consent/index.js +49 -0
- package/lib/module/lib/consent/index.js.map +1 -0
- package/lib/module/lib/event/EventFactory.js +488 -0
- package/lib/module/lib/event/EventFactory.js.map +1 -0
- package/lib/module/lib/event/EventManager.js +41 -0
- package/lib/module/lib/event/EventManager.js.map +1 -0
- package/lib/module/lib/event/EventQueue.js +283 -0
- package/lib/module/lib/event/EventQueue.js.map +1 -0
- package/lib/module/lib/event/index.js +5 -0
- package/lib/module/lib/event/index.js.map +1 -0
- package/lib/module/lib/event/types.js +2 -0
- package/lib/module/lib/event/types.js.map +1 -0
- package/lib/module/lib/lifecycle/index.js +190 -0
- package/lib/module/lib/lifecycle/index.js.map +1 -0
- package/lib/module/lib/logger/index.js +42 -0
- package/lib/module/lib/logger/index.js.map +1 -0
- package/lib/module/lib/session/index.js +92 -0
- package/lib/module/lib/session/index.js.map +1 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js +158 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/module/lib/storage/MemoryStorage.js +35 -0
- package/lib/module/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/module/lib/storage/StorageBlueprint.js +18 -0
- package/lib/module/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/module/lib/storage/StorageManager.js +115 -0
- package/lib/module/lib/storage/StorageManager.js.map +1 -0
- package/lib/module/lib/storage/index.js +5 -0
- package/lib/module/lib/storage/index.js.map +1 -0
- package/lib/module/lib/storage/types.js +2 -0
- package/lib/module/lib/storage/types.js.map +1 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js +439 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/module/lib/wagmi/index.js +3 -0
- package/lib/module/lib/wagmi/index.js.map +1 -0
- package/lib/module/lib/wagmi/types.js +2 -0
- package/lib/module/lib/wagmi/types.js.map +1 -0
- package/lib/module/types/base.js +2 -0
- package/lib/module/types/base.js.map +1 -0
- package/lib/module/types/events.js +17 -0
- package/lib/module/types/events.js.map +1 -0
- package/lib/module/types/index.js +3 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/address.js +74 -0
- package/lib/module/utils/address.js.map +1 -0
- package/lib/module/utils/hash.js +24 -0
- package/lib/module/utils/hash.js.map +1 -0
- package/lib/module/utils/helpers.js +105 -0
- package/lib/module/utils/helpers.js.map +1 -0
- package/lib/module/utils/index.js +6 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/timestamp.js +26 -0
- package/lib/module/utils/timestamp.js.map +1 -0
- package/lib/module/utils/trafficSource.js +137 -0
- package/lib/module/utils/trafficSource.js.map +1 -0
- package/lib/module/version.js +4 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/FormoAnalytics.d.ts +163 -0
- package/lib/typescript/FormoAnalytics.d.ts.map +1 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts +29 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts.map +1 -0
- package/lib/typescript/constants/config.d.ts +8 -0
- package/lib/typescript/constants/config.d.ts.map +1 -0
- package/lib/typescript/constants/events.d.ts +23 -0
- package/lib/typescript/constants/events.d.ts.map +1 -0
- package/lib/typescript/constants/index.d.ts +4 -0
- package/lib/typescript/constants/index.d.ts.map +1 -0
- package/lib/typescript/constants/storage.d.ts +10 -0
- package/lib/typescript/constants/storage.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +44 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/lib/consent/index.d.ts +13 -0
- package/lib/typescript/lib/consent/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventFactory.d.ts +61 -0
- package/lib/typescript/lib/event/EventFactory.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventManager.d.ts +17 -0
- package/lib/typescript/lib/event/EventManager.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventQueue.d.ts +74 -0
- package/lib/typescript/lib/event/EventQueue.d.ts.map +1 -0
- package/lib/typescript/lib/event/index.d.ts +5 -0
- package/lib/typescript/lib/event/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/types.d.ts +23 -0
- package/lib/typescript/lib/event/types.d.ts.map +1 -0
- package/lib/typescript/lib/lifecycle/index.d.ts +46 -0
- package/lib/typescript/lib/lifecycle/index.d.ts.map +1 -0
- package/lib/typescript/lib/logger/index.d.ts +19 -0
- package/lib/typescript/lib/logger/index.d.ts.map +1 -0
- package/lib/typescript/lib/session/index.d.ts +41 -0
- package/lib/typescript/lib/session/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts +48 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts.map +1 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts +18 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts +21 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts +45 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts.map +1 -0
- package/lib/typescript/lib/storage/index.d.ts +5 -0
- package/lib/typescript/lib/storage/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/types.d.ts +22 -0
- package/lib/typescript/lib/storage/types.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts +104 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/index.d.ts +3 -0
- package/lib/typescript/lib/wagmi/index.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/types.d.ts +54 -0
- package/lib/typescript/lib/wagmi/types.d.ts.map +1 -0
- package/lib/typescript/types/base.d.ts +219 -0
- package/lib/typescript/types/base.d.ts.map +1 -0
- package/lib/typescript/types/events.d.ts +111 -0
- package/lib/typescript/types/events.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +3 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/utils/address.d.ts +25 -0
- package/lib/typescript/utils/address.d.ts.map +1 -0
- package/lib/typescript/utils/hash.d.ts +10 -0
- package/lib/typescript/utils/hash.d.ts.map +1 -0
- package/lib/typescript/utils/helpers.d.ts +26 -0
- package/lib/typescript/utils/helpers.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +6 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/lib/typescript/utils/timestamp.d.ts +13 -0
- package/lib/typescript/utils/timestamp.d.ts.map +1 -0
- package/lib/typescript/utils/trafficSource.d.ts +30 -0
- package/lib/typescript/utils/trafficSource.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +143 -0
- package/src/FormoAnalytics.ts +685 -0
- package/src/FormoAnalyticsProvider.tsx +296 -0
- package/src/constants/config.ts +62 -0
- package/src/constants/events.ts +26 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/storage.ts +16 -0
- package/src/index.ts +55 -0
- package/src/lib/consent/index.ts +52 -0
- package/src/lib/event/EventFactory.ts +682 -0
- package/src/lib/event/EventManager.ts +50 -0
- package/src/lib/event/EventQueue.ts +371 -0
- package/src/lib/event/index.ts +4 -0
- package/src/lib/event/types.ts +107 -0
- package/src/lib/lifecycle/index.ts +215 -0
- package/src/lib/logger/index.ts +56 -0
- package/src/lib/session/index.ts +103 -0
- package/src/lib/storage/AsyncStorageAdapter.ts +173 -0
- package/src/lib/storage/MemoryStorage.ts +43 -0
- package/src/lib/storage/StorageBlueprint.ts +30 -0
- package/src/lib/storage/StorageManager.ts +121 -0
- package/src/lib/storage/index.ts +4 -0
- package/src/lib/storage/types.ts +23 -0
- package/src/lib/wagmi/WagmiEventHandler.ts +574 -0
- package/src/lib/wagmi/index.ts +2 -0
- package/src/lib/wagmi/types.ts +71 -0
- package/src/types/base.ts +287 -0
- package/src/types/events.ts +140 -0
- package/src/types/index.ts +2 -0
- package/src/utils/address.ts +84 -0
- package/src/utils/hash.ts +23 -0
- package/src/utils/helpers.ts +139 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/timestamp.ts +25 -0
- package/src/utils/trafficSource.ts +153 -0
- package/src/version.ts +3 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Address, APIEvent, ChainID, IFormoEvent, IFormoEventContext, IFormoEventProperties, Nullable, Options, SignatureStatus, TransactionStatus } from "../../types";
|
|
2
|
+
import { IEventFactory } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Event factory for React Native
|
|
5
|
+
* Creates event payloads with mobile-specific context
|
|
6
|
+
*/
|
|
7
|
+
declare class EventFactory implements IEventFactory {
|
|
8
|
+
private options?;
|
|
9
|
+
constructor(options?: Options);
|
|
10
|
+
/**
|
|
11
|
+
* Get device timezone
|
|
12
|
+
*/
|
|
13
|
+
private getTimezone;
|
|
14
|
+
/**
|
|
15
|
+
* Get location from timezone
|
|
16
|
+
*/
|
|
17
|
+
private getLocation;
|
|
18
|
+
/**
|
|
19
|
+
* Get device language/locale
|
|
20
|
+
*/
|
|
21
|
+
private getLanguage;
|
|
22
|
+
/**
|
|
23
|
+
* Get screen dimensions
|
|
24
|
+
*/
|
|
25
|
+
private getScreen;
|
|
26
|
+
/**
|
|
27
|
+
* Get network information
|
|
28
|
+
*/
|
|
29
|
+
private getNetworkInfo;
|
|
30
|
+
/**
|
|
31
|
+
* Get device information
|
|
32
|
+
* Supports both react-native-device-info (bare RN) and expo-device/expo-application (Expo Go)
|
|
33
|
+
*/
|
|
34
|
+
private getDeviceInfo;
|
|
35
|
+
/**
|
|
36
|
+
* Generate context with mobile-specific metadata
|
|
37
|
+
*/
|
|
38
|
+
private generateContext;
|
|
39
|
+
/**
|
|
40
|
+
* Create enriched event with common properties
|
|
41
|
+
*/
|
|
42
|
+
private getEnrichedEvent;
|
|
43
|
+
/**
|
|
44
|
+
* Generate screen view event (mobile equivalent of page)
|
|
45
|
+
*/
|
|
46
|
+
generateScreenEvent(name: string, category?: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
47
|
+
generateDetectWalletEvent(providerName: string, rdns: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
48
|
+
generateIdentifyEvent(providerName: string, rdns: string, address: Nullable<Address>, userId?: Nullable<string>, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
49
|
+
generateConnectEvent(chainId: ChainID, address: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
50
|
+
generateDisconnectEvent(chainId?: ChainID, address?: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
51
|
+
generateChainChangedEvent(chainId: ChainID, address: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
52
|
+
generateSignatureEvent(status: SignatureStatus, chainId: ChainID | undefined, address: Address, message: string, signatureHash?: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
53
|
+
generateTransactionEvent(status: TransactionStatus, chainId: ChainID, address: Address, data?: string, to?: string, value?: string, transactionHash?: string, function_name?: string, function_args?: Record<string, unknown>, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
54
|
+
generateTrackEvent(event: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
55
|
+
/**
|
|
56
|
+
* Create event from API event type
|
|
57
|
+
*/
|
|
58
|
+
create(event: APIEvent, address?: Address, userId?: string): Promise<IFormoEvent>;
|
|
59
|
+
}
|
|
60
|
+
export { EventFactory };
|
|
61
|
+
//# sourceMappingURL=EventFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/event/EventFactory.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,cAAM,YAAa,YAAW,aAAa;IACzC,OAAO,CAAC,OAAO,CAAC,CAAU;gBAEd,OAAO,CAAC,EAAE,OAAO;IAI7B;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;YACW,cAAc;IAuC5B;;;OAGG;YACW,aAAa;IAiF3B;;OAEG;YACW,eAAe;IAuC7B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;IACG,mBAAmB,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAWjB,yBAAyB,CAC7B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAajB,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAejB,oBAAoB,CACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAajB,uBAAuB,CAC3B,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAajB,yBAAyB,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAajB,sBAAsB,CAC1B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAgBjB,wBAAwB,CAC5B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAoBjB,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAyBvB;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;CAqGxB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Address, APIEvent, Options } from "../../types";
|
|
2
|
+
import { IEventFactory, IEventManager, IEventQueue } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Event manager for React Native SDK
|
|
5
|
+
* Generates valid event payloads and queues them for processing
|
|
6
|
+
*/
|
|
7
|
+
declare class EventManager implements IEventManager {
|
|
8
|
+
eventQueue: IEventQueue;
|
|
9
|
+
eventFactory: IEventFactory;
|
|
10
|
+
constructor(eventQueue: IEventQueue, options?: Options);
|
|
11
|
+
/**
|
|
12
|
+
* Add event to queue
|
|
13
|
+
*/
|
|
14
|
+
addEvent(event: APIEvent, address?: Address, userId?: string): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export { EventManager };
|
|
17
|
+
//# sourceMappingURL=EventManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/event/EventManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGpE;;;GAGG;AACH,cAAM,YAAa,YAAW,aAAa;IACzC,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;gBAEhB,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO;IAKtD;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;CAqBjB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IFormoEvent } from "../../types";
|
|
2
|
+
import { IEventQueue } from "./types";
|
|
3
|
+
interface Options {
|
|
4
|
+
apiHost: string;
|
|
5
|
+
flushAt?: number;
|
|
6
|
+
flushInterval?: number;
|
|
7
|
+
retryCount?: number;
|
|
8
|
+
maxQueueSize?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Event queue for React Native
|
|
12
|
+
* Handles batching, flushing, and retries with app lifecycle awareness
|
|
13
|
+
*/
|
|
14
|
+
export declare class EventQueue implements IEventQueue {
|
|
15
|
+
private writeKey;
|
|
16
|
+
private apiHost;
|
|
17
|
+
private queue;
|
|
18
|
+
private timer;
|
|
19
|
+
private flushAt;
|
|
20
|
+
private flushIntervalMs;
|
|
21
|
+
private maxQueueSize;
|
|
22
|
+
private retryCount;
|
|
23
|
+
private payloadHashes;
|
|
24
|
+
private flushMutex;
|
|
25
|
+
private appStateSubscription;
|
|
26
|
+
constructor(writeKey: string, options: Options);
|
|
27
|
+
/**
|
|
28
|
+
* Set up listener for app state changes
|
|
29
|
+
* Flush events when app goes to background
|
|
30
|
+
*/
|
|
31
|
+
private setupAppStateListener;
|
|
32
|
+
/**
|
|
33
|
+
* Handle app state changes
|
|
34
|
+
*/
|
|
35
|
+
private handleAppStateChange;
|
|
36
|
+
/**
|
|
37
|
+
* Generate message ID for deduplication
|
|
38
|
+
*/
|
|
39
|
+
private generateMessageId;
|
|
40
|
+
/**
|
|
41
|
+
* Check if event is a duplicate
|
|
42
|
+
*/
|
|
43
|
+
private isDuplicate;
|
|
44
|
+
/**
|
|
45
|
+
* Add event to queue
|
|
46
|
+
*/
|
|
47
|
+
enqueue(event: IFormoEvent, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Flush events to API
|
|
50
|
+
* Uses a mutex to ensure only one flush operation runs at a time,
|
|
51
|
+
* preventing race conditions with re-queued items on failure.
|
|
52
|
+
*/
|
|
53
|
+
flush(callback?: (...args: unknown[]) => void): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Send events with retry logic
|
|
56
|
+
*/
|
|
57
|
+
private sendWithRetry;
|
|
58
|
+
/**
|
|
59
|
+
* Check if error should be retried
|
|
60
|
+
*/
|
|
61
|
+
private shouldRetry;
|
|
62
|
+
/**
|
|
63
|
+
* Discard all pending events without sending them.
|
|
64
|
+
* Used when the user opts out of tracking to prevent queued events
|
|
65
|
+
* from being sent after consent is revoked.
|
|
66
|
+
*/
|
|
67
|
+
clear(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Clean up resources, flushing any pending events first
|
|
70
|
+
*/
|
|
71
|
+
cleanup(): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=EventQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventQueue.d.ts","sourceRoot":"","sources":["../../../../src/lib/event/EventQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAW9D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAYtC,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAoBD;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,oBAAoB,CAAuC;gBAEvD,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IA2B9C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;YACW,iBAAiB;IAS/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACG,OAAO,CACX,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;;OAIG;IACG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DnE;;OAEG;YACW,aAAa;IA+B3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;;;OAIG;IACI,KAAK,IAAI,IAAI;IAYpB;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Address, APIEvent, IFormoEvent, IFormoEventContext, IFormoEventProperties, Nullable, SignatureStatus, TransactionStatus, ChainID } from "../../types";
|
|
2
|
+
export interface IEventFactory {
|
|
3
|
+
create(event: APIEvent, address?: Address, userId?: string): Promise<IFormoEvent>;
|
|
4
|
+
generateScreenEvent(name: string, category?: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
5
|
+
generateDetectWalletEvent(providerName: string, rdns: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
6
|
+
generateIdentifyEvent(providerName: string, rdns: string, address: Nullable<Address>, userId?: Nullable<string>, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
7
|
+
generateConnectEvent(chainId: ChainID, address: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
8
|
+
generateDisconnectEvent(chainId?: ChainID, address?: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
9
|
+
generateChainChangedEvent(chainId: ChainID, address: Address, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
10
|
+
generateSignatureEvent(status: SignatureStatus, chainId: ChainID | undefined, address: Address, message: string, signatureHash?: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
11
|
+
generateTransactionEvent(status: TransactionStatus, chainId: ChainID, address: Address, data?: string, to?: string, value?: string, transactionHash?: string, function_name?: string, function_args?: Record<string, unknown>, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
12
|
+
generateTrackEvent(event: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<IFormoEvent>;
|
|
13
|
+
}
|
|
14
|
+
export interface IEventManager {
|
|
15
|
+
addEvent(event: APIEvent, address?: Address, userId?: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export interface IEventQueue {
|
|
18
|
+
enqueue(event: IFormoEvent, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
19
|
+
flush(callback?: (...args: unknown[]) => void): Promise<void>;
|
|
20
|
+
clear(): void;
|
|
21
|
+
cleanup(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/event/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Lifecycle Event Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks application lifecycle events following the Segment/RudderStack spec:
|
|
5
|
+
* - Application Installed (first launch)
|
|
6
|
+
* - Application Updated (version/build changed)
|
|
7
|
+
* - Application Opened (every cold start + foreground return)
|
|
8
|
+
* - Application Backgrounded (app goes to background)
|
|
9
|
+
*
|
|
10
|
+
* Detection is JS-side using AsyncStorage (no native modules required).
|
|
11
|
+
*/
|
|
12
|
+
/** Interface for the analytics instance to avoid circular deps */
|
|
13
|
+
interface IAnalyticsInstance {
|
|
14
|
+
track(event: string, properties?: Record<string, unknown>): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare class AppLifecycleManager {
|
|
17
|
+
private analytics;
|
|
18
|
+
private appStateSubscription;
|
|
19
|
+
private lastAppState;
|
|
20
|
+
private appVersionInfo;
|
|
21
|
+
constructor(analytics: IAnalyticsInstance);
|
|
22
|
+
/**
|
|
23
|
+
* Initialize lifecycle tracking.
|
|
24
|
+
* Detects install/update, fires Application Opened, and sets up AppState listener.
|
|
25
|
+
*/
|
|
26
|
+
start(appOptions?: {
|
|
27
|
+
version?: string;
|
|
28
|
+
build?: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Compare stored version/build with current to detect install or update.
|
|
32
|
+
* Requires persistent storage (AsyncStorage) — skips if only MemoryStorage is available,
|
|
33
|
+
* since MemoryStorage is empty on every cold start and would false-positive as "installed".
|
|
34
|
+
*/
|
|
35
|
+
private detectInstallOrUpdate;
|
|
36
|
+
/**
|
|
37
|
+
* Handle AppState transitions for foreground/background events.
|
|
38
|
+
*/
|
|
39
|
+
private handleAppStateChange;
|
|
40
|
+
/**
|
|
41
|
+
* Clean up AppState listener.
|
|
42
|
+
*/
|
|
43
|
+
cleanup(): void;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,kEAAkE;AAClE,UAAU,kBAAkB;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAgDD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,cAAc,CAA8C;gBAExD,SAAS,EAAE,kBAAkB;IAIzC;;;OAGG;IACG,KAAK,CACT,UAAU,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;OAIG;YACW,qBAAqB;IA0CnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "log";
|
|
2
|
+
interface LoggerConfig {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
enabledLevels?: LogLevel[];
|
|
5
|
+
}
|
|
6
|
+
declare class LoggerClass {
|
|
7
|
+
private config;
|
|
8
|
+
init(config: LoggerConfig): void;
|
|
9
|
+
private shouldLog;
|
|
10
|
+
debug(...args: unknown[]): void;
|
|
11
|
+
info(...args: unknown[]): void;
|
|
12
|
+
warn(...args: unknown[]): void;
|
|
13
|
+
error(...args: unknown[]): void;
|
|
14
|
+
log(...args: unknown[]): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const Logger: LoggerClass;
|
|
17
|
+
export declare const logger: LoggerClass;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/logger/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAEnE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC5B;AAED,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAGZ;IAEF,IAAI,CAAC,MAAM,EAAE,YAAY;IAIzB,OAAO,CAAC,SAAS;IAMjB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMvB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMvB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMxB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;CAKvB;AAED,eAAO,MAAM,MAAM,aAAoB,CAAC;AACxC,eAAO,MAAM,MAAM,aAAS,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SESSION_WALLET_DETECTED_KEY, SESSION_WALLET_IDENTIFIED_KEY } from "../../constants";
|
|
2
|
+
export { SESSION_WALLET_DETECTED_KEY, SESSION_WALLET_IDENTIFIED_KEY };
|
|
3
|
+
/**
|
|
4
|
+
* Session manager for tracking wallet detection and identification
|
|
5
|
+
* Persists to session storage to avoid duplicate detection/identification events
|
|
6
|
+
* within the same session
|
|
7
|
+
*/
|
|
8
|
+
export declare class FormoAnalyticsSession {
|
|
9
|
+
private detectedWallets;
|
|
10
|
+
private identifiedWallets;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Load session state from storage
|
|
14
|
+
*/
|
|
15
|
+
private loadFromStorage;
|
|
16
|
+
/**
|
|
17
|
+
* Save session state to storage
|
|
18
|
+
*/
|
|
19
|
+
private saveToStorage;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a wallet has been detected in this session
|
|
22
|
+
*/
|
|
23
|
+
isWalletDetected(rdns: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Mark a wallet as detected
|
|
26
|
+
*/
|
|
27
|
+
markWalletDetected(rdns: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a wallet + address combination has been identified
|
|
30
|
+
*/
|
|
31
|
+
isWalletIdentified(address: string, rdns: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Mark a wallet + address combination as identified
|
|
34
|
+
*/
|
|
35
|
+
markWalletIdentified(address: string, rdns: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Clear all session data
|
|
38
|
+
*/
|
|
39
|
+
clear(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,iBAAiB,CAA0B;;IAMnD;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7C;;OAEG;IACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAKjE;;OAEG;IACI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMhE;;OAEG;IACI,KAAK,IAAI,IAAI;CAMrB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import StorageBlueprint from "./StorageBlueprint";
|
|
2
|
+
import { AsyncStorageInterface } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* AsyncStorage adapter for React Native
|
|
5
|
+
* Provides persistent storage across app restarts
|
|
6
|
+
*/
|
|
7
|
+
declare class AsyncStorageAdapter extends StorageBlueprint {
|
|
8
|
+
private asyncStorage;
|
|
9
|
+
private cache;
|
|
10
|
+
constructor(writeKey: string, asyncStorage?: AsyncStorageInterface);
|
|
11
|
+
/**
|
|
12
|
+
* Initialize with AsyncStorage instance and preload all Formo keys
|
|
13
|
+
* This ensures consent flags and other critical data are available synchronously
|
|
14
|
+
*/
|
|
15
|
+
initialize(asyncStorage: AsyncStorageInterface): Promise<void>;
|
|
16
|
+
isAvailable(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Synchronous get from cache (may return stale data)
|
|
19
|
+
* Use getAsync for guaranteed fresh data
|
|
20
|
+
*/
|
|
21
|
+
get(key: string): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Async get from storage
|
|
24
|
+
*/
|
|
25
|
+
getAsync(key: string): Promise<string | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Synchronous set (writes to cache immediately, persists async)
|
|
28
|
+
*/
|
|
29
|
+
set(key: string, value: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Async set to storage
|
|
32
|
+
*/
|
|
33
|
+
setAsync(key: string, value: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Synchronous remove (removes from cache immediately, persists async)
|
|
36
|
+
*/
|
|
37
|
+
remove(key: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Async remove from storage
|
|
40
|
+
*/
|
|
41
|
+
removeAsync(key: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Clear all cached data
|
|
44
|
+
*/
|
|
45
|
+
clearCache(): void;
|
|
46
|
+
}
|
|
47
|
+
export default AsyncStorageAdapter;
|
|
48
|
+
//# sourceMappingURL=AsyncStorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncStorageAdapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/AsyncStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD;;;GAGG;AACH,cAAM,mBAAoB,SAAQ,gBAAgB;IAChD,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,KAAK,CAAkC;gBAEnC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAOlE;;;OAGG;IACU,UAAU,CAAC,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCpE,WAAW,IAAI,OAAO;IAI7B;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IActC;;OAEG;IACU,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoB1D;;OAEG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAU5C;;OAEG;IACU,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE;;OAEG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD;;OAEG;IACI,UAAU,IAAI,IAAI;CAG1B;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import StorageBlueprint from "./StorageBlueprint";
|
|
2
|
+
/**
|
|
3
|
+
* In-memory storage fallback
|
|
4
|
+
* Data is lost when the app is closed
|
|
5
|
+
*/
|
|
6
|
+
declare class MemoryStorage extends StorageBlueprint {
|
|
7
|
+
private storage;
|
|
8
|
+
isAvailable(): boolean;
|
|
9
|
+
get(key: string): string | null;
|
|
10
|
+
getAsync(key: string): Promise<string | null>;
|
|
11
|
+
set(key: string, value: string): void;
|
|
12
|
+
setAsync(key: string, value: string): Promise<void>;
|
|
13
|
+
remove(key: string): void;
|
|
14
|
+
removeAsync(key: string): Promise<void>;
|
|
15
|
+
clear(): void;
|
|
16
|
+
}
|
|
17
|
+
export default MemoryStorage;
|
|
18
|
+
//# sourceMappingURL=MemoryStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryStorage.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/MemoryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,cAAM,aAAc,SAAQ,gBAAgB;IAC1C,OAAO,CAAC,OAAO,CAAkC;IAE1C,WAAW,IAAI,OAAO;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIzB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,KAAK,IAAI,IAAI;CAGrB;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IStorage } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Base storage class with key prefixing
|
|
4
|
+
*/
|
|
5
|
+
declare abstract class StorageBlueprint implements IStorage {
|
|
6
|
+
protected writeKey: string;
|
|
7
|
+
constructor(writeKey: string);
|
|
8
|
+
/**
|
|
9
|
+
* Generate storage key with prefix
|
|
10
|
+
*/
|
|
11
|
+
getKey(key: string): string;
|
|
12
|
+
abstract isAvailable(): boolean;
|
|
13
|
+
abstract get(key: string): string | null;
|
|
14
|
+
abstract getAsync(key: string): Promise<string | null>;
|
|
15
|
+
abstract set(key: string, value: string): void;
|
|
16
|
+
abstract setAsync(key: string, value: string): Promise<void>;
|
|
17
|
+
abstract remove(key: string): void;
|
|
18
|
+
abstract removeAsync(key: string): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export default StorageBlueprint;
|
|
21
|
+
//# sourceMappingURL=StorageBlueprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBlueprint.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/StorageBlueprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,uBAAe,gBAAiB,YAAW,QAAQ;IACjD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIlC,QAAQ,CAAC,WAAW,IAAI,OAAO;IAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IACxC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9C,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAClC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACjD;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { IStorage, StorageType, AsyncStorageInterface } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Storage manager for React Native SDK
|
|
4
|
+
* Uses AsyncStorage as primary storage with MemoryStorage fallback
|
|
5
|
+
*/
|
|
6
|
+
export declare class StorageManager {
|
|
7
|
+
private readonly writeKey;
|
|
8
|
+
private storages;
|
|
9
|
+
constructor(writeKey: string);
|
|
10
|
+
/**
|
|
11
|
+
* Initialize with AsyncStorage instance
|
|
12
|
+
* This should be called during SDK initialization
|
|
13
|
+
*/
|
|
14
|
+
initialize(asyncStorage: AsyncStorageInterface): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Get storage instance by type
|
|
17
|
+
*/
|
|
18
|
+
getStorage(type: StorageType): IStorage;
|
|
19
|
+
/**
|
|
20
|
+
* Create storage instance
|
|
21
|
+
*/
|
|
22
|
+
private createStorage;
|
|
23
|
+
/**
|
|
24
|
+
* Get primary storage (AsyncStorage with fallback)
|
|
25
|
+
*/
|
|
26
|
+
getPrimaryStorage(): IStorage;
|
|
27
|
+
/**
|
|
28
|
+
* Check if persistent storage (AsyncStorage) has been initialized.
|
|
29
|
+
* Returns false if only MemoryStorage is available.
|
|
30
|
+
*/
|
|
31
|
+
hasPersistentStorage(): boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Initialize global storage manager
|
|
35
|
+
*/
|
|
36
|
+
export declare function initStorageManager(writeKey: string): StorageManager;
|
|
37
|
+
/**
|
|
38
|
+
* Get global storage manager instance
|
|
39
|
+
*/
|
|
40
|
+
export declare function getStorageManager(): StorageManager | null;
|
|
41
|
+
/**
|
|
42
|
+
* Get primary storage
|
|
43
|
+
*/
|
|
44
|
+
export declare function storage(): IStorage;
|
|
45
|
+
//# sourceMappingURL=StorageManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/StorageManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;GAGG;AACH,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAyC;gBAE5B,QAAQ,EAAE,MAAM;IAE7C;;;OAGG;IACU,UAAU,CAAC,YAAY,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3E;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ;IAoB9C;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACI,iBAAiB,IAAI,QAAQ;IAQpC;;;OAGG;IACI,oBAAoB,IAAI,OAAO;CAIvC;AAKD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CASnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CAKlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type StorageType = "asyncStorage" | "memoryStorage";
|
|
2
|
+
export interface IStorage {
|
|
3
|
+
isAvailable(): boolean;
|
|
4
|
+
get(key: string): string | null;
|
|
5
|
+
getAsync(key: string): Promise<string | null>;
|
|
6
|
+
set(key: string, value: string): void;
|
|
7
|
+
setAsync(key: string, value: string): Promise<void>;
|
|
8
|
+
remove(key: string): void;
|
|
9
|
+
removeAsync(key: string): Promise<void>;
|
|
10
|
+
getKey(key: string): string;
|
|
11
|
+
}
|
|
12
|
+
export interface AsyncStorageInterface {
|
|
13
|
+
getItem(key: string): Promise<string | null>;
|
|
14
|
+
setItem(key: string, value: string): Promise<void>;
|
|
15
|
+
removeItem(key: string): Promise<void>;
|
|
16
|
+
getAllKeys(): Promise<readonly string[]>;
|
|
17
|
+
multiGet(keys: readonly string[]): Promise<readonly [string, string | null][]>;
|
|
18
|
+
multiSet?(keyValuePairs: [string, string][]): Promise<void>;
|
|
19
|
+
multiRemove(keys: readonly string[]): Promise<void>;
|
|
20
|
+
clear?(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,WAAW,IAAI,OAAO,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WagmiEventHandler for React Native
|
|
3
|
+
*
|
|
4
|
+
* Handles wallet event tracking by hooking into Wagmi v2's config.subscribe()
|
|
5
|
+
* and TanStack Query's MutationCache.
|
|
6
|
+
*/
|
|
7
|
+
import { SignatureStatus, TransactionStatus } from "../../types/events";
|
|
8
|
+
import { WagmiConfig, QueryClient } from "./types";
|
|
9
|
+
interface IFormoAnalyticsInstance {
|
|
10
|
+
connect(params: {
|
|
11
|
+
chainId: number;
|
|
12
|
+
address: string;
|
|
13
|
+
}, properties?: Record<string, unknown>): Promise<void>;
|
|
14
|
+
disconnect(params?: {
|
|
15
|
+
chainId?: number;
|
|
16
|
+
address?: string;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
chain(params: {
|
|
19
|
+
chainId: number;
|
|
20
|
+
address?: string;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
signature(params: {
|
|
23
|
+
status: SignatureStatus;
|
|
24
|
+
chainId: number;
|
|
25
|
+
address: string;
|
|
26
|
+
message: string;
|
|
27
|
+
signatureHash?: string;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
transaction(params: {
|
|
30
|
+
status: TransactionStatus;
|
|
31
|
+
chainId: number;
|
|
32
|
+
address: string;
|
|
33
|
+
data?: string;
|
|
34
|
+
to?: string;
|
|
35
|
+
value?: string;
|
|
36
|
+
transactionHash?: string;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
isAutocaptureEnabled(eventType: "connect" | "disconnect" | "signature" | "transaction" | "chain"): boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare class WagmiEventHandler {
|
|
41
|
+
private formo;
|
|
42
|
+
private wagmiConfig;
|
|
43
|
+
private queryClient?;
|
|
44
|
+
private unsubscribers;
|
|
45
|
+
private trackingState;
|
|
46
|
+
private processedMutations;
|
|
47
|
+
private pendingStatusChanges;
|
|
48
|
+
constructor(formoAnalytics: IFormoAnalyticsInstance, wagmiConfig: WagmiConfig, queryClient?: QueryClient);
|
|
49
|
+
/**
|
|
50
|
+
* Set up listeners for wallet connection, disconnection, and chain changes
|
|
51
|
+
*/
|
|
52
|
+
private setupConnectionListeners;
|
|
53
|
+
private static readonly MAX_PENDING_STATUS_CHANGES;
|
|
54
|
+
/**
|
|
55
|
+
* Handle status changes (connect/disconnect)
|
|
56
|
+
*/
|
|
57
|
+
private handleStatusChange;
|
|
58
|
+
/**
|
|
59
|
+
* Process a single status change (extracted for iterative processing)
|
|
60
|
+
*/
|
|
61
|
+
private processStatusChange;
|
|
62
|
+
/**
|
|
63
|
+
* Handle chain ID changes
|
|
64
|
+
*/
|
|
65
|
+
private handleChainChange;
|
|
66
|
+
/**
|
|
67
|
+
* Set up mutation tracking for signatures and transactions
|
|
68
|
+
*/
|
|
69
|
+
private setupMutationTracking;
|
|
70
|
+
/**
|
|
71
|
+
* Handle mutation cache events
|
|
72
|
+
*/
|
|
73
|
+
private handleMutationEvent;
|
|
74
|
+
/**
|
|
75
|
+
* Handle signature mutations
|
|
76
|
+
*/
|
|
77
|
+
private handleSignatureMutation;
|
|
78
|
+
/**
|
|
79
|
+
* Handle transaction mutations
|
|
80
|
+
*/
|
|
81
|
+
private handleTransactionMutation;
|
|
82
|
+
/**
|
|
83
|
+
* Get current Wagmi state
|
|
84
|
+
*/
|
|
85
|
+
private getState;
|
|
86
|
+
/**
|
|
87
|
+
* Get connected address from state
|
|
88
|
+
*/
|
|
89
|
+
private getConnectedAddress;
|
|
90
|
+
/**
|
|
91
|
+
* Get connector name from state
|
|
92
|
+
*/
|
|
93
|
+
private getConnectorName;
|
|
94
|
+
/**
|
|
95
|
+
* Get connector ID from state (typically the rdns for EIP-6963 wallets)
|
|
96
|
+
*/
|
|
97
|
+
private getConnectorId;
|
|
98
|
+
/**
|
|
99
|
+
* Clean up subscriptions
|
|
100
|
+
*/
|
|
101
|
+
cleanup(): void;
|
|
102
|
+
}
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=WagmiEventHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WagmiEventHandler.d.ts","sourceRoot":"","sources":["../../../../src/lib/wagmi/WagmiEventHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EACL,WAAW,EAEX,WAAW,EAKZ,MAAM,SAAS,CAAC;AAGjB,UAAU,uBAAuB;IAC/B,OAAO,CACL,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAC5C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,UAAU,CAAC,MAAM,CAAC,EAAE;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,SAAS,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,WAAW,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,oBAAoB,CAClB,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,GAC1E,OAAO,CAAC;CACZ;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAGpB;gBAGN,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,WAAW;IAmB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAM;IAExD;;OAEG;YACW,kBAAkB;IAkChC;;OAEG;YACW,mBAAmB;IAuDjC;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0D3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyE/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgFjC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACI,OAAO,IAAI,IAAI;CAgBvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/wagmi/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|