@formo/analytics 1.26.0 → 1.28.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 +6 -4
- package/dist/cjs/src/FormoAnalytics.d.ts +71 -12
- package/dist/cjs/src/FormoAnalytics.js +274 -147
- package/dist/cjs/src/event/EventFactory.d.ts +10 -2
- package/dist/cjs/src/event/EventFactory.js +32 -21
- package/dist/cjs/src/fetch/index.d.ts +10 -2
- package/dist/cjs/src/fetch/index.js +122 -4
- package/dist/cjs/src/index.d.ts +4 -0
- package/dist/cjs/src/index.js +6 -0
- package/dist/cjs/src/privy/index.d.ts +9 -0
- package/dist/cjs/src/privy/index.js +12 -0
- package/dist/cjs/src/privy/types.d.ts +175 -0
- package/dist/cjs/src/privy/types.js +12 -0
- package/dist/cjs/src/privy/utils.d.ts +32 -0
- package/dist/cjs/src/privy/utils.js +188 -0
- package/dist/cjs/src/queue/EventQueue.d.ts +24 -2
- package/dist/cjs/src/queue/EventQueue.js +158 -49
- package/dist/cjs/src/session/index.js +2 -1
- package/dist/cjs/src/solana/SolanaAdapter.d.ts +211 -0
- package/dist/cjs/src/solana/SolanaAdapter.js +975 -0
- package/dist/cjs/src/solana/SolanaManager.d.ts +24 -0
- package/dist/cjs/src/solana/SolanaManager.js +80 -0
- package/dist/cjs/src/solana/address.d.ts +72 -0
- package/dist/cjs/src/solana/address.js +176 -0
- package/dist/cjs/src/solana/index.d.ts +13 -0
- package/dist/cjs/src/solana/index.js +32 -0
- package/dist/cjs/src/solana/types.d.ts +206 -0
- package/dist/cjs/src/solana/types.js +80 -0
- package/dist/cjs/src/types/base.d.ts +25 -0
- package/dist/cjs/src/types/events.d.ts +9 -6
- package/dist/cjs/src/utils/address.d.ts +21 -0
- package/dist/cjs/src/utils/address.js +48 -1
- package/dist/cjs/src/utils/builderCode.d.ts +30 -0
- package/dist/cjs/src/utils/builderCode.js +143 -0
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.js +1 -0
- package/dist/cjs/src/version.d.ts +1 -1
- package/dist/cjs/src/version.js +1 -1
- package/dist/cjs/src/wagmi/WagmiEventHandler.d.ts +24 -0
- package/dist/cjs/src/wagmi/WagmiEventHandler.js +242 -24
- package/dist/cjs/src/wagmi/types.d.ts +31 -0
- package/dist/cjs/src/wagmi/utils.d.ts +79 -0
- package/dist/cjs/src/wagmi/utils.js +218 -0
- package/dist/esm/src/FormoAnalytics.d.ts +71 -12
- package/dist/esm/src/FormoAnalytics.js +275 -148
- package/dist/esm/src/event/EventFactory.d.ts +10 -2
- package/dist/esm/src/event/EventFactory.js +34 -23
- package/dist/esm/src/fetch/index.d.ts +10 -2
- package/dist/esm/src/fetch/index.js +123 -2
- package/dist/esm/src/index.d.ts +4 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/privy/index.d.ts +9 -0
- package/dist/esm/src/privy/index.js +8 -0
- package/dist/esm/src/privy/types.d.ts +175 -0
- package/dist/esm/src/privy/types.js +11 -0
- package/dist/esm/src/privy/utils.d.ts +32 -0
- package/dist/esm/src/privy/utils.js +185 -0
- package/dist/esm/src/queue/EventQueue.d.ts +24 -2
- package/dist/esm/src/queue/EventQueue.js +158 -49
- package/dist/esm/src/session/index.js +2 -1
- package/dist/esm/src/solana/SolanaAdapter.d.ts +211 -0
- package/dist/esm/src/solana/SolanaAdapter.js +972 -0
- package/dist/esm/src/solana/SolanaManager.d.ts +24 -0
- package/dist/esm/src/solana/SolanaManager.js +77 -0
- package/dist/esm/src/solana/address.d.ts +72 -0
- package/dist/esm/src/solana/address.js +167 -0
- package/dist/esm/src/solana/index.d.ts +13 -0
- package/dist/esm/src/solana/index.js +13 -0
- package/dist/esm/src/solana/types.d.ts +206 -0
- package/dist/esm/src/solana/types.js +74 -0
- package/dist/esm/src/types/base.d.ts +25 -0
- package/dist/esm/src/types/events.d.ts +9 -6
- package/dist/esm/src/utils/address.d.ts +21 -0
- package/dist/esm/src/utils/address.js +45 -0
- package/dist/esm/src/utils/builderCode.d.ts +30 -0
- package/dist/esm/src/utils/builderCode.js +140 -0
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.js +1 -0
- package/dist/esm/src/version.d.ts +1 -1
- package/dist/esm/src/version.js +1 -1
- package/dist/esm/src/wagmi/WagmiEventHandler.d.ts +24 -0
- package/dist/esm/src/wagmi/WagmiEventHandler.js +242 -24
- package/dist/esm/src/wagmi/types.d.ts +31 -0
- package/dist/esm/src/wagmi/utils.d.ts +79 -0
- package/dist/esm/src/wagmi/utils.js +211 -0
- package/dist/index.umd.min.js +1 -1
- package/package.json +20 -4
package/README.md
CHANGED
|
@@ -17,12 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
19
19
|
|
|
20
|
-
The Formo Web SDK is a Javascript library that allows you to track user event data from your website and app.
|
|
20
|
+
The Formo Web SDK is a Javascript library that allows you to track user event data from your website and app.
|
|
21
21
|
|
|
22
22
|
You can install Formo on:
|
|
23
|
-
- [
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
23
|
+
- [Wagmi](https://docs.formo.so/install#wagmi) (recommended)
|
|
24
|
+
- [HTML Snippet](https://docs.formo.so/install#html-snippet)
|
|
25
|
+
- [React](https://docs.formo.so/install#react)
|
|
26
|
+
- [Next.js app router](https://docs.formo.so/install#next-js-app-router)
|
|
27
|
+
- [Next.js pages router](https://docs.formo.so/install#next-js-pages-router)
|
|
26
28
|
|
|
27
29
|
## Configuration
|
|
28
30
|
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { EIP6963ProviderDetail } from "mipd";
|
|
2
2
|
import { Address, ChainID, Config, EIP1193Provider, IFormoAnalytics, IFormoEventContext, IFormoEventProperties, Options, SignatureStatus, TransactionStatus } from "./types";
|
|
3
|
+
import { SolanaManager } from "./solana/SolanaManager";
|
|
3
4
|
export declare class FormoAnalytics implements IFormoAnalytics {
|
|
4
5
|
readonly writeKey: string;
|
|
5
6
|
options: Options;
|
|
6
|
-
private
|
|
7
|
+
private _chainState;
|
|
8
|
+
private _activeNamespace?;
|
|
9
|
+
private get _provider();
|
|
10
|
+
private set _provider(value);
|
|
11
|
+
private get _evmAddress();
|
|
12
|
+
private get _evmChainId();
|
|
7
13
|
private _providerListenersMap;
|
|
8
14
|
private session;
|
|
9
15
|
private eventManager;
|
|
@@ -29,6 +35,11 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
29
35
|
* Only initialized when options.wagmi is provided
|
|
30
36
|
*/
|
|
31
37
|
private wagmiHandler?;
|
|
38
|
+
/**
|
|
39
|
+
* Solana integration manager for tracking Solana wallet events.
|
|
40
|
+
* Only initialized when options.solana is provided or via formo.solana.
|
|
41
|
+
*/
|
|
42
|
+
private solanaManager?;
|
|
32
43
|
/**
|
|
33
44
|
* Flag indicating if Wagmi mode is enabled
|
|
34
45
|
* When true, EIP-1193 provider wrapping is skipped
|
|
@@ -139,7 +150,7 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
139
150
|
* @param {(...args: unknown[]) => void} callback
|
|
140
151
|
* @returns {Promise<void>}
|
|
141
152
|
*/
|
|
142
|
-
transaction({ status, chainId, address, data, to, value, transactionHash, }: {
|
|
153
|
+
transaction({ status, chainId, address, data, to, value, transactionHash, function_name, function_args, builder_codes, }: {
|
|
143
154
|
status: TransactionStatus;
|
|
144
155
|
chainId: ChainID;
|
|
145
156
|
address: Address;
|
|
@@ -147,20 +158,40 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
147
158
|
to?: string;
|
|
148
159
|
value?: string;
|
|
149
160
|
transactionHash?: string;
|
|
161
|
+
function_name?: string;
|
|
162
|
+
function_args?: Record<string, unknown>;
|
|
163
|
+
builder_codes?: string;
|
|
150
164
|
}, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
151
165
|
/**
|
|
152
166
|
* Emits an identify event with current wallet address and provider info.
|
|
153
|
-
*
|
|
154
|
-
* @param {string} params.
|
|
155
|
-
* @param {string} params.
|
|
156
|
-
* @param {string} params.
|
|
157
|
-
* @param {
|
|
167
|
+
*
|
|
168
|
+
* @param {string} params.address - Wallet address
|
|
169
|
+
* @param {string} params.userId - External user ID
|
|
170
|
+
* @param {string} params.rdns - Provider reverse domain name
|
|
171
|
+
* @param {string} params.providerName - Provider display name
|
|
172
|
+
* @param {IFormoEventProperties} properties - Additional properties to include with the identify event
|
|
158
173
|
* @param {IFormoEventContext} context
|
|
159
174
|
* @param {(...args: unknown[]) => void} callback
|
|
160
175
|
* @returns {Promise<void>}
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```ts
|
|
179
|
+
* // Basic identify
|
|
180
|
+
* formo.identify({ address: '0x...', userId: 'user123' });
|
|
181
|
+
*
|
|
182
|
+
* // With Privy user
|
|
183
|
+
* import { parsePrivyProperties } from '@formo/analytics';
|
|
184
|
+
* const { user } = usePrivy();
|
|
185
|
+
* if (user) {
|
|
186
|
+
* const { properties, wallets } = parsePrivyProperties(user);
|
|
187
|
+
* for (const wallet of wallets) {
|
|
188
|
+
* formo.identify({ address: wallet.address, userId: user.id }, properties);
|
|
189
|
+
* }
|
|
190
|
+
* }
|
|
191
|
+
* ```
|
|
161
192
|
*/
|
|
162
193
|
identify(params?: {
|
|
163
|
-
address
|
|
194
|
+
address: Address;
|
|
164
195
|
providerName?: string;
|
|
165
196
|
userId?: string;
|
|
166
197
|
rdns?: string;
|
|
@@ -256,6 +287,19 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
256
287
|
get providers(): readonly EIP6963ProviderDetail[];
|
|
257
288
|
private detectWallets;
|
|
258
289
|
get provider(): EIP1193Provider | undefined;
|
|
290
|
+
/**
|
|
291
|
+
* Access the Solana integration manager.
|
|
292
|
+
* Lazily creates one if not already initialized.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```tsx
|
|
296
|
+
* formo.solana.setWallet(wallet);
|
|
297
|
+
* formo.solana.setConnection(connection);
|
|
298
|
+
* formo.solana.setCluster("devnet");
|
|
299
|
+
* formo.solana.syncWalletState();
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
get solana(): SolanaManager;
|
|
259
303
|
private getAddress;
|
|
260
304
|
private getAccounts;
|
|
261
305
|
private getCurrentChainId;
|
|
@@ -296,11 +340,26 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
296
340
|
*/
|
|
297
341
|
private handleProviderMismatch;
|
|
298
342
|
/**
|
|
299
|
-
*
|
|
300
|
-
|
|
301
|
-
|
|
343
|
+
* Determine which namespace a chainId belongs to.
|
|
344
|
+
*/
|
|
345
|
+
private getNamespace;
|
|
346
|
+
/**
|
|
347
|
+
* Update per-chain state and sync the derived currentAddress/currentChainId.
|
|
348
|
+
* Accepts either a namespace string ('evm'/'solana') or a chainId number
|
|
349
|
+
* to resolve the namespace automatically. When a chainId number is passed,
|
|
350
|
+
* it is also stored as the namespace's chainId (unless explicitly overridden
|
|
351
|
+
* in the update object).
|
|
352
|
+
*/
|
|
353
|
+
private setChainState;
|
|
354
|
+
/**
|
|
355
|
+
* Clear per-chain state for a given namespace (or chainId) and sync derived state.
|
|
356
|
+
*/
|
|
357
|
+
private clearChainState;
|
|
358
|
+
/**
|
|
359
|
+
* Synchronize currentAddress/currentChainId from the active namespace.
|
|
360
|
+
* Last-connected-chain-wins: _activeNamespace takes precedence.
|
|
302
361
|
*/
|
|
303
|
-
private
|
|
362
|
+
private syncDerivedState;
|
|
304
363
|
/**
|
|
305
364
|
* Helper method to clear the active provider state
|
|
306
365
|
* Centralizes provider clearing logic for consistency
|