@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,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useFormo = exports.FormoAnalyticsProvider = exports.FormoAnalyticsContext = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _FormoAnalytics = require("./FormoAnalytics");
|
|
9
|
+
var _storage = require("./lib/storage");
|
|
10
|
+
var _logger = require("./lib/logger");
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
// Default context with no-op methods
|
|
13
|
+
const defaultContext = {
|
|
14
|
+
chain: () => Promise.resolve(),
|
|
15
|
+
screen: () => Promise.resolve(),
|
|
16
|
+
reset: () => {},
|
|
17
|
+
cleanup: () => Promise.resolve(),
|
|
18
|
+
detect: () => Promise.resolve(),
|
|
19
|
+
connect: () => Promise.resolve(),
|
|
20
|
+
disconnect: () => Promise.resolve(),
|
|
21
|
+
signature: () => Promise.resolve(),
|
|
22
|
+
transaction: () => Promise.resolve(),
|
|
23
|
+
identify: () => Promise.resolve(),
|
|
24
|
+
track: () => Promise.resolve(),
|
|
25
|
+
setTrafficSourceFromUrl: () => {},
|
|
26
|
+
optOutTracking: () => {},
|
|
27
|
+
optInTracking: () => {},
|
|
28
|
+
hasOptedOutTracking: () => false
|
|
29
|
+
};
|
|
30
|
+
const FormoAnalyticsContext = exports.FormoAnalyticsContext = /*#__PURE__*/(0, _react.createContext)(defaultContext);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Formo Analytics Provider for React Native
|
|
34
|
+
*
|
|
35
|
+
* Wraps your app to provide analytics context
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
40
|
+
* import { FormoAnalyticsProvider } from '@formo/analytics-react-native';
|
|
41
|
+
*
|
|
42
|
+
* function App() {
|
|
43
|
+
* return (
|
|
44
|
+
* <FormoAnalyticsProvider
|
|
45
|
+
* writeKey="your-write-key"
|
|
46
|
+
* asyncStorage={AsyncStorage}
|
|
47
|
+
* options={{ wagmi: { config, queryClient } }}
|
|
48
|
+
* >
|
|
49
|
+
* <YourApp />
|
|
50
|
+
* </FormoAnalyticsProvider>
|
|
51
|
+
* );
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
const FormoAnalyticsProvider = props => {
|
|
56
|
+
const {
|
|
57
|
+
writeKey,
|
|
58
|
+
disabled = false,
|
|
59
|
+
children
|
|
60
|
+
} = props;
|
|
61
|
+
if (!writeKey) {
|
|
62
|
+
_logger.logger.error("FormoAnalyticsProvider: No Write Key provided");
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(FormoAnalyticsContext.Provider, {
|
|
64
|
+
value: defaultContext
|
|
65
|
+
}, children);
|
|
66
|
+
}
|
|
67
|
+
if (disabled) {
|
|
68
|
+
_logger.logger.warn("FormoAnalytics is disabled");
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement(FormoAnalyticsContext.Provider, {
|
|
70
|
+
value: defaultContext
|
|
71
|
+
}, children);
|
|
72
|
+
}
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement(InitializedAnalytics, props);
|
|
74
|
+
};
|
|
75
|
+
exports.FormoAnalyticsProvider = FormoAnalyticsProvider;
|
|
76
|
+
const InitializedAnalytics = ({
|
|
77
|
+
writeKey,
|
|
78
|
+
options,
|
|
79
|
+
asyncStorage,
|
|
80
|
+
onReady,
|
|
81
|
+
onError,
|
|
82
|
+
children
|
|
83
|
+
}) => {
|
|
84
|
+
const [sdk, setSdk] = (0, _react.useState)(defaultContext);
|
|
85
|
+
const sdkRef = (0, _react.useRef)(defaultContext);
|
|
86
|
+
const storageInitKeyRef = (0, _react.useRef)(null);
|
|
87
|
+
const cleanupPromiseRef = (0, _react.useRef)(Promise.resolve());
|
|
88
|
+
const initializationIdRef = (0, _react.useRef)(0);
|
|
89
|
+
|
|
90
|
+
// Only initialize storage manager when writeKey changes, not on every render
|
|
91
|
+
if (storageInitKeyRef.current !== writeKey) {
|
|
92
|
+
(0, _storage.initStorageManager)(writeKey);
|
|
93
|
+
storageInitKeyRef.current = writeKey;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Store callbacks and options in refs to avoid re-initialization when references change
|
|
97
|
+
// This fixes the issue where inline arrow functions cause repeated SDK init
|
|
98
|
+
const onReadyRef = (0, _react.useRef)(onReady);
|
|
99
|
+
const onErrorRef = (0, _react.useRef)(onError);
|
|
100
|
+
const optionsRef = (0, _react.useRef)(options);
|
|
101
|
+
|
|
102
|
+
// Update refs when values change (without triggering effect)
|
|
103
|
+
(0, _react.useEffect)(() => {
|
|
104
|
+
onReadyRef.current = onReady;
|
|
105
|
+
}, [onReady]);
|
|
106
|
+
(0, _react.useEffect)(() => {
|
|
107
|
+
onErrorRef.current = onError;
|
|
108
|
+
}, [onError]);
|
|
109
|
+
(0, _react.useEffect)(() => {
|
|
110
|
+
optionsRef.current = options;
|
|
111
|
+
}, [options]);
|
|
112
|
+
|
|
113
|
+
// Extract individual option values to avoid reference equality issues with options object
|
|
114
|
+
const tracking = options?.tracking;
|
|
115
|
+
const autocapture = options?.autocapture;
|
|
116
|
+
const apiHost = options?.apiHost;
|
|
117
|
+
const flushAt = options?.flushAt;
|
|
118
|
+
const flushInterval = options?.flushInterval;
|
|
119
|
+
const retryCount = options?.retryCount;
|
|
120
|
+
const maxQueueSize = options?.maxQueueSize;
|
|
121
|
+
const loggerOption = options?.logger;
|
|
122
|
+
const app = options?.app;
|
|
123
|
+
const hasReady = !!options?.ready;
|
|
124
|
+
const wagmiConfig = options?.wagmi?.config;
|
|
125
|
+
const wagmiQueryClient = options?.wagmi?.queryClient;
|
|
126
|
+
|
|
127
|
+
// Create stable key from serializable options
|
|
128
|
+
const optionsKey = (0, _react.useMemo)(() => {
|
|
129
|
+
const serializableOptions = {
|
|
130
|
+
tracking,
|
|
131
|
+
autocapture,
|
|
132
|
+
apiHost,
|
|
133
|
+
flushAt,
|
|
134
|
+
flushInterval,
|
|
135
|
+
retryCount,
|
|
136
|
+
maxQueueSize,
|
|
137
|
+
logger: loggerOption,
|
|
138
|
+
app,
|
|
139
|
+
hasReady
|
|
140
|
+
};
|
|
141
|
+
try {
|
|
142
|
+
return JSON.stringify(serializableOptions);
|
|
143
|
+
} catch (error) {
|
|
144
|
+
_logger.logger.warn("Failed to serialize options, using timestamp", error);
|
|
145
|
+
return Date.now().toString();
|
|
146
|
+
}
|
|
147
|
+
}, [tracking, autocapture, apiHost, flushAt, flushInterval, retryCount, maxQueueSize, loggerOption, app, hasReady]);
|
|
148
|
+
(0, _react.useEffect)(() => {
|
|
149
|
+
// Increment initialization ID to track which initialization is current
|
|
150
|
+
const currentInitId = ++initializationIdRef.current;
|
|
151
|
+
let isCleanedUp = false;
|
|
152
|
+
const initialize = async () => {
|
|
153
|
+
// Wait for any pending cleanup to complete before re-initializing
|
|
154
|
+
// This prevents race conditions between cleanup and init
|
|
155
|
+
await cleanupPromiseRef.current;
|
|
156
|
+
|
|
157
|
+
// Check if this initialization is still current after awaiting cleanup
|
|
158
|
+
if (currentInitId !== initializationIdRef.current || isCleanedUp) {
|
|
159
|
+
_logger.logger.debug("Skipping stale initialization");
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Clean up existing SDK and await flush completion
|
|
164
|
+
if (sdkRef.current && sdkRef.current !== defaultContext) {
|
|
165
|
+
_logger.logger.log("Cleaning up existing FormoAnalytics SDK instance");
|
|
166
|
+
const cleanup = sdkRef.current.cleanup();
|
|
167
|
+
cleanupPromiseRef.current = cleanup;
|
|
168
|
+
await cleanup;
|
|
169
|
+
sdkRef.current = defaultContext;
|
|
170
|
+
setSdk(defaultContext);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Check again after cleanup
|
|
174
|
+
if (currentInitId !== initializationIdRef.current || isCleanedUp) {
|
|
175
|
+
_logger.logger.debug("Skipping stale initialization after cleanup");
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
// Use optionsRef.current to ensure we have the latest options
|
|
180
|
+
const sdkInstance = await _FormoAnalytics.FormoAnalytics.init(writeKey, optionsRef.current, asyncStorage);
|
|
181
|
+
|
|
182
|
+
// Verify this initialization is still current
|
|
183
|
+
if (currentInitId !== initializationIdRef.current || isCleanedUp) {
|
|
184
|
+
_logger.logger.log("Initialization superseded, cleaning up new instance");
|
|
185
|
+
await sdkInstance.cleanup();
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
setSdk(sdkInstance);
|
|
189
|
+
sdkRef.current = sdkInstance;
|
|
190
|
+
_logger.logger.log("Successfully initialized FormoAnalytics SDK");
|
|
191
|
+
|
|
192
|
+
// Call onReady callback using the ref (stable reference)
|
|
193
|
+
onReadyRef.current?.(sdkInstance);
|
|
194
|
+
} catch (error) {
|
|
195
|
+
if (currentInitId === initializationIdRef.current && !isCleanedUp) {
|
|
196
|
+
_logger.logger.error("Failed to initialize FormoAnalytics SDK", error);
|
|
197
|
+
// Call onError callback using the ref (stable reference)
|
|
198
|
+
onErrorRef.current?.(error instanceof Error ? error : new Error(String(error)));
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
initialize();
|
|
203
|
+
return () => {
|
|
204
|
+
isCleanedUp = true;
|
|
205
|
+
if (sdkRef.current && sdkRef.current !== defaultContext) {
|
|
206
|
+
_logger.logger.log("Cleaning up FormoAnalytics SDK instance");
|
|
207
|
+
// Store cleanup promise so next initialization can await it
|
|
208
|
+
const cleanup = sdkRef.current.cleanup().catch(error => {
|
|
209
|
+
_logger.logger.error("Error during SDK cleanup:", error);
|
|
210
|
+
});
|
|
211
|
+
cleanupPromiseRef.current = cleanup;
|
|
212
|
+
sdkRef.current = defaultContext;
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
// Note: onReady and onError are NOT in the dependency array
|
|
216
|
+
// They are accessed via refs to prevent re-initialization
|
|
217
|
+
// wagmiConfig and wagmiQueryClient are tracked separately since they're not serializable
|
|
218
|
+
}, [writeKey, optionsKey, asyncStorage, wagmiConfig, wagmiQueryClient]);
|
|
219
|
+
return /*#__PURE__*/_react.default.createElement(FormoAnalyticsContext.Provider, {
|
|
220
|
+
value: sdk
|
|
221
|
+
}, children);
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Hook to access Formo Analytics
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```tsx
|
|
229
|
+
* import { useFormo } from '@formo/analytics-react-native';
|
|
230
|
+
*
|
|
231
|
+
* function MyScreen() {
|
|
232
|
+
* const formo = useFormo();
|
|
233
|
+
*
|
|
234
|
+
* useEffect(() => {
|
|
235
|
+
* formo.screen('Home');
|
|
236
|
+
* }, []);
|
|
237
|
+
*
|
|
238
|
+
* const handleButtonPress = () => {
|
|
239
|
+
* formo.track('Button Pressed', { buttonName: 'signup' });
|
|
240
|
+
* };
|
|
241
|
+
*
|
|
242
|
+
* return <Button onPress={handleButtonPress}>Sign Up</Button>;
|
|
243
|
+
* }
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
// Track if the useFormo warning has been logged to avoid console spam
|
|
247
|
+
let hasLoggedUseFormoWarning = false;
|
|
248
|
+
const useFormo = () => {
|
|
249
|
+
const context = (0, _react.useContext)(FormoAnalyticsContext);
|
|
250
|
+
|
|
251
|
+
// Check if SDK has been initialized (context will be defaultContext before init completes)
|
|
252
|
+
// Only log the warning once to avoid flooding the console during async initialization
|
|
253
|
+
if (context === defaultContext && !hasLoggedUseFormoWarning) {
|
|
254
|
+
hasLoggedUseFormoWarning = true;
|
|
255
|
+
_logger.logger.warn("useFormo called before SDK initialization complete. " + "Ensure FormoAnalyticsProvider is mounted and writeKey is provided.");
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Reset the warning flag when SDK is initialized so it can warn again after a reset
|
|
259
|
+
if (context !== defaultContext) {
|
|
260
|
+
hasLoggedUseFormoWarning = false;
|
|
261
|
+
}
|
|
262
|
+
return context;
|
|
263
|
+
};
|
|
264
|
+
exports.useFormo = useFormo;
|
|
265
|
+
//# sourceMappingURL=FormoAnalyticsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_FormoAnalytics","_storage","_logger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","defaultContext","chain","Promise","resolve","screen","reset","cleanup","detect","connect","disconnect","signature","transaction","identify","track","setTrafficSourceFromUrl","optOutTracking","optInTracking","hasOptedOutTracking","FormoAnalyticsContext","exports","createContext","FormoAnalyticsProvider","props","writeKey","disabled","children","logger","error","createElement","Provider","value","warn","InitializedAnalytics","options","asyncStorage","onReady","onError","sdk","setSdk","useState","sdkRef","useRef","storageInitKeyRef","cleanupPromiseRef","initializationIdRef","current","initStorageManager","onReadyRef","onErrorRef","optionsRef","useEffect","tracking","autocapture","apiHost","flushAt","flushInterval","retryCount","maxQueueSize","loggerOption","app","hasReady","ready","wagmiConfig","wagmi","config","wagmiQueryClient","queryClient","optionsKey","useMemo","serializableOptions","JSON","stringify","Date","now","toString","currentInitId","isCleanedUp","initialize","debug","log","sdkInstance","FormoAnalytics","init","Error","String","catch","hasLoggedUseFormoWarning","useFormo","context","useContext"],"sourceRoot":"../../src","sources":["FormoAnalyticsProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EVENTS_API_REQUEST_HEADER = exports.EVENTS_API_ORIGIN = exports.EVENTS_API_HOST = exports.COUNTRY_LIST = void 0;
|
|
7
|
+
const EVENTS_API_ORIGIN = exports.EVENTS_API_ORIGIN = "https://events.formo.so";
|
|
8
|
+
const EVENTS_API_HOST = exports.EVENTS_API_HOST = `${EVENTS_API_ORIGIN}/v0/raw_events`;
|
|
9
|
+
const EVENTS_API_REQUEST_HEADER = writeKey => ({
|
|
10
|
+
"Content-Type": "application/json",
|
|
11
|
+
Authorization: `Bearer ${writeKey}`
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// Timezone to country mapping
|
|
15
|
+
exports.EVENTS_API_REQUEST_HEADER = EVENTS_API_REQUEST_HEADER;
|
|
16
|
+
const COUNTRY_LIST = exports.COUNTRY_LIST = {
|
|
17
|
+
// Africa
|
|
18
|
+
"Africa/Abidjan": "CI",
|
|
19
|
+
"Africa/Accra": "GH",
|
|
20
|
+
"Africa/Addis_Ababa": "ET",
|
|
21
|
+
"Africa/Algiers": "DZ",
|
|
22
|
+
"Africa/Cairo": "EG",
|
|
23
|
+
"Africa/Casablanca": "MA",
|
|
24
|
+
"Africa/Johannesburg": "ZA",
|
|
25
|
+
"Africa/Lagos": "NG",
|
|
26
|
+
"Africa/Nairobi": "KE",
|
|
27
|
+
// America
|
|
28
|
+
"America/Anchorage": "US",
|
|
29
|
+
"America/Argentina/Buenos_Aires": "AR",
|
|
30
|
+
"America/Bogota": "CO",
|
|
31
|
+
"America/Chicago": "US",
|
|
32
|
+
"America/Denver": "US",
|
|
33
|
+
"America/Los_Angeles": "US",
|
|
34
|
+
"America/Mexico_City": "MX",
|
|
35
|
+
"America/New_York": "US",
|
|
36
|
+
"America/Phoenix": "US",
|
|
37
|
+
"America/Sao_Paulo": "BR",
|
|
38
|
+
"America/Toronto": "CA",
|
|
39
|
+
"America/Vancouver": "CA",
|
|
40
|
+
// Asia
|
|
41
|
+
"Asia/Bangkok": "TH",
|
|
42
|
+
"Asia/Dubai": "AE",
|
|
43
|
+
"Asia/Ho_Chi_Minh": "VN",
|
|
44
|
+
"Asia/Hong_Kong": "HK",
|
|
45
|
+
"Asia/Jakarta": "ID",
|
|
46
|
+
"Asia/Kolkata": "IN",
|
|
47
|
+
"Asia/Manila": "PH",
|
|
48
|
+
"Asia/Seoul": "KR",
|
|
49
|
+
"Asia/Shanghai": "CN",
|
|
50
|
+
"Asia/Singapore": "SG",
|
|
51
|
+
"Asia/Taipei": "TW",
|
|
52
|
+
"Asia/Tokyo": "JP",
|
|
53
|
+
// Australia
|
|
54
|
+
"Australia/Melbourne": "AU",
|
|
55
|
+
"Australia/Sydney": "AU",
|
|
56
|
+
// Europe
|
|
57
|
+
"Europe/Amsterdam": "NL",
|
|
58
|
+
"Europe/Berlin": "DE",
|
|
59
|
+
"Europe/London": "GB",
|
|
60
|
+
"Europe/Madrid": "ES",
|
|
61
|
+
"Europe/Moscow": "RU",
|
|
62
|
+
"Europe/Paris": "FR",
|
|
63
|
+
"Europe/Rome": "IT",
|
|
64
|
+
"Europe/Zurich": "CH",
|
|
65
|
+
// Pacific
|
|
66
|
+
"Pacific/Auckland": "NZ",
|
|
67
|
+
"Pacific/Honolulu": "US"
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EVENTS_API_ORIGIN","exports","EVENTS_API_HOST","EVENTS_API_REQUEST_HEADER","writeKey","Authorization","COUNTRY_LIST"],"sourceRoot":"../../../src","sources":["constants/config.ts"],"mappings":";;;;;;AAAO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,yBAAyB;AACnD,MAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,GAAGF,iBAAiB,gBAAgB;AAE5D,MAAMG,yBAAyB,GAAIC,QAAgB,KAAM;EAC9D,cAAc,EAAE,kBAAkB;EAClCC,aAAa,EAAE,UAAUD,QAAQ;AACnC,CAAC,CAAC;;AAEF;AAAAH,OAAA,CAAAE,yBAAA,GAAAA,yBAAA;AACO,MAAMG,YAAoC,GAAAL,OAAA,CAAAK,YAAA,GAAG;EAClD;EACA,gBAAgB,EAAE,IAAI;EACtB,cAAc,EAAE,IAAI;EACpB,oBAAoB,EAAE,IAAI;EAC1B,gBAAgB,EAAE,IAAI;EACtB,cAAc,EAAE,IAAI;EACpB,mBAAmB,EAAE,IAAI;EACzB,qBAAqB,EAAE,IAAI;EAC3B,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,IAAI;EACtB;EACA,mBAAmB,EAAE,IAAI;EACzB,gCAAgC,EAAE,IAAI;EACtC,gBAAgB,EAAE,IAAI;EACtB,iBAAiB,EAAE,IAAI;EACvB,gBAAgB,EAAE,IAAI;EACtB,qBAAqB,EAAE,IAAI;EAC3B,qBAAqB,EAAE,IAAI;EAC3B,kBAAkB,EAAE,IAAI;EACxB,iBAAiB,EAAE,IAAI;EACvB,mBAAmB,EAAE,IAAI;EACzB,iBAAiB,EAAE,IAAI;EACvB,mBAAmB,EAAE,IAAI;EACzB;EACA,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,kBAAkB,EAAE,IAAI;EACxB,gBAAgB,EAAE,IAAI;EACtB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,IAAI;EACpB,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,IAAI;EAClB,eAAe,EAAE,IAAI;EACrB,gBAAgB,EAAE,IAAI;EACtB,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,IAAI;EAClB;EACA,qBAAqB,EAAE,IAAI;EAC3B,kBAAkB,EAAE,IAAI;EACxB;EACA,kBAAkB,EAAE,IAAI;EACxB,eAAe,EAAE,IAAI;EACrB,eAAe,EAAE,IAAI;EACrB,eAAe,EAAE,IAAI;EACrB,eAAe,EAAE,IAAI;EACrB,cAAc,EAAE,IAAI;EACpB,aAAa,EAAE,IAAI;EACnB,eAAe,EAAE,IAAI;EACrB;EACA,kBAAkB,EAAE,IAAI;EACxB,kBAAkB,EAAE;AACtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VERSION = exports.EventType = exports.EventChannel = exports.CHANNEL = void 0;
|
|
7
|
+
let EventType = exports.EventType = /*#__PURE__*/function (EventType) {
|
|
8
|
+
EventType["PAGE"] = "page";
|
|
9
|
+
EventType["SCREEN"] = "screen";
|
|
10
|
+
EventType["IDENTIFY"] = "identify";
|
|
11
|
+
EventType["DETECT"] = "detect";
|
|
12
|
+
EventType["CONNECT"] = "connect";
|
|
13
|
+
EventType["DISCONNECT"] = "disconnect";
|
|
14
|
+
EventType["CHAIN"] = "chain";
|
|
15
|
+
EventType["SIGNATURE"] = "signature";
|
|
16
|
+
EventType["TRANSACTION"] = "transaction";
|
|
17
|
+
EventType["TRACK"] = "track";
|
|
18
|
+
return EventType;
|
|
19
|
+
}({});
|
|
20
|
+
let EventChannel = exports.EventChannel = /*#__PURE__*/function (EventChannel) {
|
|
21
|
+
EventChannel["WEB"] = "web";
|
|
22
|
+
EventChannel["MOBILE"] = "mobile";
|
|
23
|
+
EventChannel["SERVER"] = "server";
|
|
24
|
+
EventChannel["SOURCE"] = "source";
|
|
25
|
+
return EventChannel;
|
|
26
|
+
}({});
|
|
27
|
+
// React Native SDK uses mobile channel
|
|
28
|
+
const CHANNEL = exports.CHANNEL = "mobile";
|
|
29
|
+
const VERSION = exports.VERSION = "1";
|
|
30
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EventType","exports","EventChannel","CHANNEL","VERSION"],"sourceRoot":"../../../src","sources":["constants/events.ts"],"mappings":";;;;;;IAAYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAAA,IAaTE,YAAY,GAAAD,OAAA,CAAAC,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAUxB;AACO,MAAMC,OAAsB,GAAAF,OAAA,CAAAE,OAAA,GAAG,QAAQ;AACvC,MAAMC,OAAO,GAAAH,OAAA,CAAAG,OAAA,GAAG,GAAG","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _events = require("./events");
|
|
7
|
+
Object.keys(_events).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _events[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _events[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _config = require("./config");
|
|
18
|
+
Object.keys(_config).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _config[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _config[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _storage = require("./storage");
|
|
29
|
+
Object.keys(_storage).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _storage[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _storage[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_events","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_config","_storage"],"sourceRoot":"../../../src","sources":["constants/index.ts"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,QAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,QAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,QAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,QAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.STORAGE_PREFIX = exports.SESSION_WALLET_IDENTIFIED_KEY = exports.SESSION_WALLET_DETECTED_KEY = exports.SESSION_USER_ID_KEY = exports.SESSION_TRAFFIC_SOURCE_KEY = exports.LOCAL_APP_VERSION_KEY = exports.LOCAL_APP_BUILD_KEY = exports.LOCAL_ANONYMOUS_ID_KEY = exports.CONSENT_OPT_OUT_KEY = void 0;
|
|
7
|
+
// Storage keys for React Native SDK
|
|
8
|
+
const STORAGE_PREFIX = exports.STORAGE_PREFIX = "formo_rn_";
|
|
9
|
+
|
|
10
|
+
// Local storage keys (persistent)
|
|
11
|
+
const LOCAL_ANONYMOUS_ID_KEY = exports.LOCAL_ANONYMOUS_ID_KEY = "anonymous_id";
|
|
12
|
+
const LOCAL_APP_VERSION_KEY = exports.LOCAL_APP_VERSION_KEY = "app_version";
|
|
13
|
+
const LOCAL_APP_BUILD_KEY = exports.LOCAL_APP_BUILD_KEY = "app_build";
|
|
14
|
+
|
|
15
|
+
// Session storage keys (cleared on app restart)
|
|
16
|
+
const SESSION_USER_ID_KEY = exports.SESSION_USER_ID_KEY = "user_id";
|
|
17
|
+
const SESSION_TRAFFIC_SOURCE_KEY = exports.SESSION_TRAFFIC_SOURCE_KEY = "traffic_source";
|
|
18
|
+
const SESSION_WALLET_DETECTED_KEY = exports.SESSION_WALLET_DETECTED_KEY = "wallet_detected";
|
|
19
|
+
const SESSION_WALLET_IDENTIFIED_KEY = exports.SESSION_WALLET_IDENTIFIED_KEY = "wallet_identified";
|
|
20
|
+
|
|
21
|
+
// Consent keys
|
|
22
|
+
const CONSENT_OPT_OUT_KEY = exports.CONSENT_OPT_OUT_KEY = "opt_out_tracking";
|
|
23
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["STORAGE_PREFIX","exports","LOCAL_ANONYMOUS_ID_KEY","LOCAL_APP_VERSION_KEY","LOCAL_APP_BUILD_KEY","SESSION_USER_ID_KEY","SESSION_TRAFFIC_SOURCE_KEY","SESSION_WALLET_DETECTED_KEY","SESSION_WALLET_IDENTIFIED_KEY","CONSENT_OPT_OUT_KEY"],"sourceRoot":"../../../src","sources":["constants/storage.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,WAAW;;AAEzC;AACO,MAAME,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,GAAG,cAAc;AAC7C,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,aAAa;AAC3C,MAAMC,mBAAmB,GAAAH,OAAA,CAAAG,mBAAA,GAAG,WAAW;;AAE9C;AACO,MAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAAG,SAAS;AACrC,MAAMC,0BAA0B,GAAAL,OAAA,CAAAK,0BAAA,GAAG,gBAAgB;AACnD,MAAMC,2BAA2B,GAAAN,OAAA,CAAAM,2BAAA,GAAG,iBAAiB;AACrD,MAAMC,6BAA6B,GAAAP,OAAA,CAAAO,6BAAA,GAAG,mBAAmB;;AAEhE;AACO,MAAMC,mBAAmB,GAAAR,OAAA,CAAAQ,mBAAA,GAAG,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
FormoAnalytics: true,
|
|
8
|
+
FormoAnalyticsProvider: true,
|
|
9
|
+
FormoAnalyticsContext: true,
|
|
10
|
+
useFormo: true,
|
|
11
|
+
SignatureStatus: true,
|
|
12
|
+
TransactionStatus: true
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "FormoAnalytics", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _FormoAnalytics.FormoAnalytics;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "FormoAnalyticsContext", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _FormoAnalyticsProvider.FormoAnalyticsContext;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "FormoAnalyticsProvider", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _FormoAnalyticsProvider.FormoAnalyticsProvider;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "SignatureStatus", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _events.SignatureStatus;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
Object.defineProperty(exports, "TransactionStatus", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function () {
|
|
41
|
+
return _events.TransactionStatus;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "useFormo", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () {
|
|
47
|
+
return _FormoAnalyticsProvider.useFormo;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
var _FormoAnalytics = require("./FormoAnalytics");
|
|
51
|
+
var _FormoAnalyticsProvider = require("./FormoAnalyticsProvider");
|
|
52
|
+
var _types = require("./types");
|
|
53
|
+
Object.keys(_types).forEach(function (key) {
|
|
54
|
+
if (key === "default" || key === "__esModule") return;
|
|
55
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
56
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
57
|
+
Object.defineProperty(exports, key, {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () {
|
|
60
|
+
return _types[key];
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
var _events = require("./types/events");
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_FormoAnalytics","require","_FormoAnalyticsProvider","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_events"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAGA,IAAAS,OAAA,GAAAf,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getConsentFlag = getConsentFlag;
|
|
7
|
+
exports.removeConsentFlag = removeConsentFlag;
|
|
8
|
+
exports.setConsentFlag = setConsentFlag;
|
|
9
|
+
var _storage = require("../storage");
|
|
10
|
+
var _logger = require("../logger");
|
|
11
|
+
/**
|
|
12
|
+
* Get consent storage key
|
|
13
|
+
* Note: The storage adapter already prefixes keys with formo_rn_{writeKey}_
|
|
14
|
+
* so we just need a simple consent prefix here
|
|
15
|
+
*/
|
|
16
|
+
function getConsentKey(_writeKey, key) {
|
|
17
|
+
return `consent_${key}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Set a consent flag
|
|
22
|
+
*/
|
|
23
|
+
function setConsentFlag(writeKey, key, value) {
|
|
24
|
+
try {
|
|
25
|
+
const consentKey = getConsentKey(writeKey, key);
|
|
26
|
+
(0, _storage.storage)().set(consentKey, value);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
_logger.logger.error("Consent: Failed to set flag", error);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get a consent flag
|
|
34
|
+
*/
|
|
35
|
+
function getConsentFlag(writeKey, key) {
|
|
36
|
+
try {
|
|
37
|
+
const consentKey = getConsentKey(writeKey, key);
|
|
38
|
+
return (0, _storage.storage)().get(consentKey);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
_logger.logger.error("Consent: Failed to get flag", error);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Remove a consent flag
|
|
47
|
+
*/
|
|
48
|
+
function removeConsentFlag(writeKey, key) {
|
|
49
|
+
try {
|
|
50
|
+
const consentKey = getConsentKey(writeKey, key);
|
|
51
|
+
(0, _storage.storage)().remove(consentKey);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
_logger.logger.error("Consent: Failed to remove flag", error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_storage","require","_logger","getConsentKey","_writeKey","key","setConsentFlag","writeKey","value","consentKey","storage","set","error","logger","getConsentFlag","get","removeConsentFlag","remove"],"sourceRoot":"../../../../src","sources":["lib/consent/index.ts"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA,SAASE,aAAaA,CAACC,SAAiB,EAAEC,GAAW,EAAU;EAC7D,OAAO,WAAWA,GAAG,EAAE;AACzB;;AAEA;AACA;AACA;AACO,SAASC,cAAcA,CAC5BC,QAAgB,EAChBF,GAAW,EACXG,KAAa,EACP;EACN,IAAI;IACF,MAAMC,UAAU,GAAGN,aAAa,CAACI,QAAQ,EAAEF,GAAG,CAAC;IAC/C,IAAAK,gBAAO,EAAC,CAAC,CAACC,GAAG,CAACF,UAAU,EAAED,KAAK,CAAC;EAClC,CAAC,CAAC,OAAOI,KAAK,EAAE;IACdC,cAAM,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACpD;AACF;;AAEA;AACA;AACA;AACO,SAASE,cAAcA,CAACP,QAAgB,EAAEF,GAAW,EAAiB;EAC3E,IAAI;IACF,MAAMI,UAAU,GAAGN,aAAa,CAACI,QAAQ,EAAEF,GAAG,CAAC;IAC/C,OAAO,IAAAK,gBAAO,EAAC,CAAC,CAACK,GAAG,CAACN,UAAU,CAAC;EAClC,CAAC,CAAC,OAAOG,KAAK,EAAE;IACdC,cAAM,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IAClD,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACO,SAASI,iBAAiBA,CAACT,QAAgB,EAAEF,GAAW,EAAQ;EACrE,IAAI;IACF,MAAMI,UAAU,GAAGN,aAAa,CAACI,QAAQ,EAAEF,GAAG,CAAC;IAC/C,IAAAK,gBAAO,EAAC,CAAC,CAACO,MAAM,CAACR,UAAU,CAAC;EAC9B,CAAC,CAAC,OAAOG,KAAK,EAAE;IACdC,cAAM,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;EACvD;AACF","ignoreList":[]}
|