@formo/analytics-react-native 1.0.1 → 1.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/lib/commonjs/FormoAnalytics.js +15 -3
- package/lib/commonjs/FormoAnalytics.js.map +1 -1
- package/lib/commonjs/lib/crash/index.js +23 -7
- package/lib/commonjs/lib/crash/index.js.map +1 -1
- package/lib/commonjs/lib/event/EventFactory.js +11 -1
- package/lib/commonjs/lib/event/EventFactory.js.map +1 -1
- package/lib/commonjs/lib/event/EventQueue.js +367 -57
- package/lib/commonjs/lib/event/EventQueue.js.map +1 -1
- package/lib/commonjs/utils/sanitize.js +260 -0
- package/lib/commonjs/utils/sanitize.js.map +1 -0
- package/lib/commonjs/utils/trafficSource.js +10 -1
- package/lib/commonjs/utils/trafficSource.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/FormoAnalytics.js +15 -3
- package/lib/module/FormoAnalytics.js.map +1 -1
- package/lib/module/lib/crash/index.js +23 -7
- package/lib/module/lib/crash/index.js.map +1 -1
- package/lib/module/lib/event/EventFactory.js +11 -1
- package/lib/module/lib/event/EventFactory.js.map +1 -1
- package/lib/module/lib/event/EventQueue.js +368 -57
- package/lib/module/lib/event/EventQueue.js.map +1 -1
- package/lib/module/utils/sanitize.js +253 -0
- package/lib/module/utils/sanitize.js.map +1 -0
- package/lib/module/utils/trafficSource.js +10 -1
- package/lib/module/utils/trafficSource.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/FormoAnalytics.d.ts.map +1 -1
- package/lib/typescript/commonjs/lib/crash/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/lib/event/EventFactory.d.ts.map +1 -1
- package/lib/typescript/commonjs/lib/event/EventQueue.d.ts +55 -0
- package/lib/typescript/commonjs/lib/event/EventQueue.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/sanitize.d.ts +31 -0
- package/lib/typescript/commonjs/utils/sanitize.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/trafficSource.d.ts +3 -0
- package/lib/typescript/commonjs/utils/trafficSource.d.ts.map +1 -1
- package/lib/typescript/commonjs/version.d.ts +1 -1
- package/lib/typescript/module/FormoAnalytics.d.ts +2 -2
- package/lib/typescript/module/FormoAnalytics.d.ts.map +1 -1
- package/lib/typescript/module/FormoAnalyticsProvider.d.ts +1 -1
- package/lib/typescript/module/FormoAnalyticsProvider.d.ts.map +1 -1
- package/lib/typescript/module/constants/index.d.ts +3 -3
- package/lib/typescript/module/constants/index.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +5 -5
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/lib/crash/index.d.ts.map +1 -1
- package/lib/typescript/module/lib/event/EventFactory.d.ts +2 -2
- package/lib/typescript/module/lib/event/EventFactory.d.ts.map +1 -1
- package/lib/typescript/module/lib/event/EventManager.d.ts +2 -2
- package/lib/typescript/module/lib/event/EventManager.d.ts.map +1 -1
- package/lib/typescript/module/lib/event/EventQueue.d.ts +57 -2
- package/lib/typescript/module/lib/event/EventQueue.d.ts.map +1 -1
- package/lib/typescript/module/lib/event/index.d.ts +4 -4
- package/lib/typescript/module/lib/event/index.d.ts.map +1 -1
- package/lib/typescript/module/lib/event/types.d.ts +1 -1
- package/lib/typescript/module/lib/event/types.d.ts.map +1 -1
- package/lib/typescript/module/lib/session/index.d.ts +1 -1
- package/lib/typescript/module/lib/session/index.d.ts.map +1 -1
- package/lib/typescript/module/lib/storage/AsyncStorageAdapter.d.ts +2 -2
- package/lib/typescript/module/lib/storage/AsyncStorageAdapter.d.ts.map +1 -1
- package/lib/typescript/module/lib/storage/MemoryStorage.d.ts +1 -1
- package/lib/typescript/module/lib/storage/MemoryStorage.d.ts.map +1 -1
- package/lib/typescript/module/lib/storage/StorageBlueprint.d.ts +1 -1
- package/lib/typescript/module/lib/storage/StorageBlueprint.d.ts.map +1 -1
- package/lib/typescript/module/lib/storage/StorageManager.d.ts +1 -1
- package/lib/typescript/module/lib/storage/StorageManager.d.ts.map +1 -1
- package/lib/typescript/module/lib/storage/index.d.ts +4 -4
- package/lib/typescript/module/lib/storage/index.d.ts.map +1 -1
- package/lib/typescript/module/lib/wagmi/WagmiEventHandler.d.ts +2 -2
- package/lib/typescript/module/lib/wagmi/WagmiEventHandler.d.ts.map +1 -1
- package/lib/typescript/module/lib/wagmi/index.d.ts +2 -2
- package/lib/typescript/module/lib/wagmi/index.d.ts.map +1 -1
- package/lib/typescript/module/solana/address.d.ts +1 -1
- package/lib/typescript/module/solana/address.d.ts.map +1 -1
- package/lib/typescript/module/solana/index.d.ts +2 -2
- package/lib/typescript/module/solana/index.d.ts.map +1 -1
- package/lib/typescript/module/types/base.d.ts +3 -3
- package/lib/typescript/module/types/base.d.ts.map +1 -1
- package/lib/typescript/module/types/events.d.ts +2 -2
- package/lib/typescript/module/types/events.d.ts.map +1 -1
- package/lib/typescript/module/types/index.d.ts +2 -2
- package/lib/typescript/module/types/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/index.d.ts +5 -5
- package/lib/typescript/module/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/sanitize.d.ts +31 -0
- package/lib/typescript/module/utils/sanitize.d.ts.map +1 -0
- package/lib/typescript/module/utils/trafficSource.d.ts +4 -1
- package/lib/typescript/module/utils/trafficSource.d.ts.map +1 -1
- package/lib/typescript/module/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/FormoAnalytics.ts +18 -3
- package/src/lib/crash/index.ts +21 -7
- package/src/lib/event/EventFactory.ts +14 -1
- package/src/lib/event/EventQueue.ts +402 -61
- package/src/utils/sanitize.ts +274 -0
- package/src/utils/trafficSource.ts +19 -1
- package/src/version.ts +1 -1
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sanitizeUtm = exports.sanitizeTrafficSources = exports.sanitizeReferrer = exports.sanitizeRef = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Traffic-source value sanitization.
|
|
9
|
+
*
|
|
10
|
+
* Ported from the Formo web SDK, where vulnerability scanners (e.g. Acunetix)
|
|
11
|
+
* crawling customer sites injected XSS probes such as
|
|
12
|
+
* `javascript:domxssExecutionSink(1,"'\"><xsstag>()locxss")` or
|
|
13
|
+
* `<script>alert(1)</script>` into every query parameter. Without validation
|
|
14
|
+
* those payloads are captured verbatim as utm_* / ref values, persisted as
|
|
15
|
+
* sticky session traffic sources, and pollute attribution reporting.
|
|
16
|
+
*
|
|
17
|
+
* React Native has the same exposure through two attacker-reachable inputs:
|
|
18
|
+
*
|
|
19
|
+
* - Deep links handed to `setTrafficSourceFromUrl`. Anyone who can get a user
|
|
20
|
+
* to open `myapp://x?utm_source=<script>alert(1)</script>` controls the
|
|
21
|
+
* value verbatim, and it is persisted for the whole session.
|
|
22
|
+
* - The Android Play Install Referrer string, which is derived from the
|
|
23
|
+
* `referrer` parameter of a Play Store URL and is likewise attacker-supplied.
|
|
24
|
+
*
|
|
25
|
+
* Each field class gets the tightest rule its legitimate values allow:
|
|
26
|
+
*
|
|
27
|
+
* - Referral codes are short tokens; >99.5% of production values match the
|
|
28
|
+
* strict pattern and none of the remainder are legitimate (scanner
|
|
29
|
+
* payloads, mangled encodings, URLs glued to codes).
|
|
30
|
+
* - UTM values are free-form (spaces, unicode, `+` are legitimate), so they
|
|
31
|
+
* only reject markup/quote characters, dangerous URL schemes, control and
|
|
32
|
+
* zero-width characters, and absurd lengths.
|
|
33
|
+
* - `referrer` diverges from the web SDK, which leaves it untouched because
|
|
34
|
+
* there it is a browser-set `document.referrer` already handled by redactUrl.
|
|
35
|
+
* In React Native `referrer` holds the raw deep-link URL the attacker
|
|
36
|
+
* supplied, so sanitizing only the utm_ and ref fields would still let the
|
|
37
|
+
* payload through. It gets a URL-sized length budget and is checked both raw
|
|
38
|
+
* and percent-decoded — a URL encodes its payload, so a raw-only check would
|
|
39
|
+
* pass `?utm_source=%3Cscript%3E` straight through.
|
|
40
|
+
*
|
|
41
|
+
* Invalid values are dropped to "" — the same representation as "parameter
|
|
42
|
+
* absent" — rather than repaired, so a poisoned value can never be persisted
|
|
43
|
+
* or reported.
|
|
44
|
+
*
|
|
45
|
+
* The web SDK additionally sanitizes ad-platform click IDs (gclid, fbclid,
|
|
46
|
+
* ...). This SDK does not capture them, so that rule is intentionally absent;
|
|
47
|
+
* add it here alongside the capture if click IDs are ever supported.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
const REF_PATTERN = /^[A-Za-z0-9._-]{1,64}$/;
|
|
51
|
+
const UTM_MAX_LENGTH = 255;
|
|
52
|
+
|
|
53
|
+
// URLs are legitimately much longer than a UTM value, but not unbounded —
|
|
54
|
+
// this is well above any real deep link and still bounds what gets persisted.
|
|
55
|
+
const REFERRER_MAX_LENGTH = 2_048;
|
|
56
|
+
|
|
57
|
+
// Markup/quote/backslash characters plus C0/C1 control characters and
|
|
58
|
+
// zero-width / bidi / BOM / replacement characters (mangled-encoding
|
|
59
|
+
// markers). Explicit ranges instead of \p{C} to avoid the `u`-flag
|
|
60
|
+
// property-escape requirement.
|
|
61
|
+
const FORBIDDEN_CHARS = /[<>"'`\\\u0000-\u001f\u007f-\u009f\u200b-\u200f\u2028-\u202e\u2060\ufeff\ufffd]/;
|
|
62
|
+
|
|
63
|
+
// Applied to the percent-DECODED form of a referrer. Narrower than the raw
|
|
64
|
+
// set on purpose: a decoded query value legitimately contains quotes and
|
|
65
|
+
// backslashes (`?q=%22running%20shoes%22`), and those are harmless in an
|
|
66
|
+
// analytics field. Markup and invisible characters are what indicate an
|
|
67
|
+
// injected payload rather than a real deep link.
|
|
68
|
+
const DECODED_FORBIDDEN_CHARS = /[<>\u0000-\u001f\u007f-\u009f\u200b-\u200f\u2028-\u202e\u2060\ufeff\ufffd]/;
|
|
69
|
+
|
|
70
|
+
// Values smuggling an executable/URL scheme, e.g. `javascript:alert(1)`.
|
|
71
|
+
const FORBIDDEN_SCHEME_PREFIX = /^\s*(javascript|data|vbscript):/i;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Whether a value smuggles a dangerous scheme, anywhere a URL parser would
|
|
75
|
+
* consider the start of a value.
|
|
76
|
+
*
|
|
77
|
+
* The pattern is anchored, so testing the string as a whole is not enough once
|
|
78
|
+
* decoding can reveal separators that were themselves encoded: with the `=` in
|
|
79
|
+
* `?utm_source%3Djavascript%253Aalert(1)` encoded, URLSearchParams reports one
|
|
80
|
+
* key that decodes to `utm_source=javascript:alert(1)`, which the anchored test
|
|
81
|
+
* never matches. Splitting on the separators after decoding puts the payload
|
|
82
|
+
* back at the start of a segment.
|
|
83
|
+
*/
|
|
84
|
+
const hasForbiddenScheme = value => FORBIDDEN_SCHEME_PREFIX.test(value) || value.split(/[?&=#]/).some(segment => FORBIDDEN_SCHEME_PREFIX.test(segment));
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Percent-decode one layer without ever throwing. `decodeURIComponent` rejects
|
|
88
|
+
* the entire string on a single malformed escape (a stray `%`), which would let
|
|
89
|
+
* `...%3Cscript%3E%` skip the decoded checks completely.
|
|
90
|
+
*
|
|
91
|
+
* Each *run* of consecutive escapes is decoded as a unit rather than byte by
|
|
92
|
+
* byte, because a multi-byte character spans several escapes: `%E3%80%80` is
|
|
93
|
+
* one ideographic space, and decoding `%E3` alone throws. Byte-wise decoding
|
|
94
|
+
* would therefore never produce the whitespace that lets `^\s*javascript:`
|
|
95
|
+
* match `%E3%80%80javascript%3Aalert(1)`. A run that is not valid UTF-8, and
|
|
96
|
+
* any stray `%`, is left as-is.
|
|
97
|
+
*/
|
|
98
|
+
const decodeRun = run => {
|
|
99
|
+
try {
|
|
100
|
+
return decodeURIComponent(run);
|
|
101
|
+
} catch {
|
|
102
|
+
// One invalid byte anywhere in the run would otherwise blind the whole
|
|
103
|
+
// run — appending `%C0` next to `%3C` is enough to hide a `<`. Decode the
|
|
104
|
+
// largest valid group at each position instead, longest first so multi-byte
|
|
105
|
+
// sequences (up to four escapes) still group correctly, and pass through
|
|
106
|
+
// any escape that cannot be decoded at all.
|
|
107
|
+
const escapes = run.match(/%[0-9A-Fa-f]{2}/g) ?? [];
|
|
108
|
+
let out = "";
|
|
109
|
+
let i = 0;
|
|
110
|
+
while (i < escapes.length) {
|
|
111
|
+
let taken = 0;
|
|
112
|
+
for (let len = Math.min(4, escapes.length - i); len >= 1; len--) {
|
|
113
|
+
try {
|
|
114
|
+
out += decodeURIComponent(escapes.slice(i, i + len).join(""));
|
|
115
|
+
taken = len;
|
|
116
|
+
break;
|
|
117
|
+
} catch {
|
|
118
|
+
// Try a shorter group.
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (taken === 0) {
|
|
122
|
+
out += escapes[i];
|
|
123
|
+
taken = 1;
|
|
124
|
+
}
|
|
125
|
+
i += taken;
|
|
126
|
+
}
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const decodeOnce = value => value.replace(/(?:%[0-9A-Fa-f]{2})+/g, decodeRun);
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Decode to a fixed point, so a payload encoded any number of times
|
|
134
|
+
* (`%253Cscript%253E`, `%25252525253Cscript...`) is compared in a form the
|
|
135
|
+
* markup check can see.
|
|
136
|
+
*
|
|
137
|
+
* The bound is the input length rather than a fixed number of layers, because
|
|
138
|
+
* a fixed number is reachable: re-encoding `javascript:alert(1)` only grows the
|
|
139
|
+
* single `%` by two characters per layer, so 66 layers fit in 151 characters
|
|
140
|
+
* and any small constant can be encoded past. Every productive pass turns a
|
|
141
|
+
* three-character escape into one character, so a string of length n admits
|
|
142
|
+
* fewer than n productive passes — this bound is always sufficient and still
|
|
143
|
+
* guarantees termination.
|
|
144
|
+
*/
|
|
145
|
+
const decodeDeep = value => {
|
|
146
|
+
let current = value;
|
|
147
|
+
for (let i = 0; i < value.length; i++) {
|
|
148
|
+
const next = decodeOnce(current);
|
|
149
|
+
if (next === current) break;
|
|
150
|
+
current = next;
|
|
151
|
+
}
|
|
152
|
+
return current;
|
|
153
|
+
};
|
|
154
|
+
const sanitizeRef = value => REF_PATTERN.test(value) ? value : "";
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* URLSearchParams has already decoded one layer by the time a UTM value gets
|
|
158
|
+
* here, so a payload encoded twice arrives still encoded:
|
|
159
|
+
* `utm_source=%253Cscript%253E` reads as the literal `%3Cscript%3E`, which
|
|
160
|
+
* contains no raw markup and would pass a raw-only check. Test the decoded
|
|
161
|
+
* form as well.
|
|
162
|
+
*/
|
|
163
|
+
exports.sanitizeRef = sanitizeRef;
|
|
164
|
+
const sanitizeUtm = value => {
|
|
165
|
+
if (value.length > UTM_MAX_LENGTH) return "";
|
|
166
|
+
if (FORBIDDEN_CHARS.test(value) || hasForbiddenScheme(value)) {
|
|
167
|
+
return "";
|
|
168
|
+
}
|
|
169
|
+
const decoded = decodeDeep(value);
|
|
170
|
+
if (DECODED_FORBIDDEN_CHARS.test(decoded) || hasForbiddenScheme(decoded)) {
|
|
171
|
+
return "";
|
|
172
|
+
}
|
|
173
|
+
return value;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* The decoded parts of a referrer's query string — keys as well as values.
|
|
178
|
+
* Handles both a full URL ("myapp://x?utm_source=...") and the bare query
|
|
179
|
+
* string the Android install referrer supplies ("utm_source=...&utm_medium=").
|
|
180
|
+
* Returns nothing when there is no query to read; the caller still checks the
|
|
181
|
+
* whole string.
|
|
182
|
+
*
|
|
183
|
+
* Keys matter because a parameter with no "=" parses entirely as a key with an
|
|
184
|
+
* empty value: "?%6Aavascript:alert(1)" would otherwise contribute nothing to
|
|
185
|
+
* inspect.
|
|
186
|
+
*/
|
|
187
|
+
exports.sanitizeUtm = sanitizeUtm;
|
|
188
|
+
const referrerParamParts = value => {
|
|
189
|
+
const queryStart = value.indexOf("?");
|
|
190
|
+
const query = queryStart === -1 ? value : value.slice(queryStart + 1);
|
|
191
|
+
if (!query || queryStart === -1 && !query.includes("=")) return [];
|
|
192
|
+
try {
|
|
193
|
+
// URLSearchParams decodes leniently and does not throw on a stray "%".
|
|
194
|
+
const parts = [];
|
|
195
|
+
for (const [key, paramValue] of new URLSearchParams(query)) {
|
|
196
|
+
parts.push(key, paramValue);
|
|
197
|
+
}
|
|
198
|
+
return parts;
|
|
199
|
+
} catch {
|
|
200
|
+
return [];
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* A URL carries its payload percent-encoded — `Linking` and the browser both
|
|
206
|
+
* encode `<` and `>` — so a raw-only check would pass
|
|
207
|
+
* `?utm_source=%3Cscript%3E` straight through.
|
|
208
|
+
*
|
|
209
|
+
* Checked three ways, because pattern-matching the URL as one opaque string
|
|
210
|
+
* misses what a structural read catches: the whole value raw, the whole value
|
|
211
|
+
* decoded, and each decoded query part — keys included — on its own. The last
|
|
212
|
+
* is what catches a smuggled scheme, since FORBIDDEN_SCHEME_PREFIX is anchored
|
|
213
|
+
* and `?utm_source=javascript:alert(1)` only matches once that parameter is
|
|
214
|
+
* read apart from the `myapp://` URL containing it.
|
|
215
|
+
*/
|
|
216
|
+
const sanitizeReferrer = value => {
|
|
217
|
+
if (value.length > REFERRER_MAX_LENGTH) return "";
|
|
218
|
+
if (FORBIDDEN_CHARS.test(value) || hasForbiddenScheme(value)) {
|
|
219
|
+
return "";
|
|
220
|
+
}
|
|
221
|
+
const decodedWhole = decodeDeep(value);
|
|
222
|
+
if (DECODED_FORBIDDEN_CHARS.test(decodedWhole) || hasForbiddenScheme(decodedWhole)) {
|
|
223
|
+
return "";
|
|
224
|
+
}
|
|
225
|
+
for (const part of referrerParamParts(value)) {
|
|
226
|
+
const decoded = decodeDeep(part);
|
|
227
|
+
if (DECODED_FORBIDDEN_CHARS.test(decoded) || hasForbiddenScheme(decoded)) {
|
|
228
|
+
return "";
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return value;
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Sanitize every traffic-source field of a (possibly sparse) traffic-source
|
|
236
|
+
* object. Unknown keys fall through to the UTM rule, the most permissive of
|
|
237
|
+
* the value rules.
|
|
238
|
+
*/
|
|
239
|
+
exports.sanitizeReferrer = sanitizeReferrer;
|
|
240
|
+
const sanitizeTrafficSources = trafficSources => {
|
|
241
|
+
const result = {
|
|
242
|
+
...trafficSources
|
|
243
|
+
};
|
|
244
|
+
for (const key of Object.keys(result)) {
|
|
245
|
+
const value = result[key];
|
|
246
|
+
if (typeof value !== "string" || value === "") {
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (key === "ref") {
|
|
250
|
+
result[key] = sanitizeRef(value);
|
|
251
|
+
} else if (key === "referrer") {
|
|
252
|
+
result[key] = sanitizeReferrer(value);
|
|
253
|
+
} else {
|
|
254
|
+
result[key] = sanitizeUtm(value);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return result;
|
|
258
|
+
};
|
|
259
|
+
exports.sanitizeTrafficSources = sanitizeTrafficSources;
|
|
260
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["REF_PATTERN","UTM_MAX_LENGTH","REFERRER_MAX_LENGTH","FORBIDDEN_CHARS","DECODED_FORBIDDEN_CHARS","FORBIDDEN_SCHEME_PREFIX","hasForbiddenScheme","value","test","split","some","segment","decodeRun","run","decodeURIComponent","escapes","match","out","i","length","taken","len","Math","min","slice","join","decodeOnce","replace","decodeDeep","current","next","sanitizeRef","exports","sanitizeUtm","decoded","referrerParamParts","queryStart","indexOf","query","includes","parts","key","paramValue","URLSearchParams","push","sanitizeReferrer","decodedWhole","part","sanitizeTrafficSources","trafficSources","result","Object","keys"],"sourceRoot":"../../../src","sources":["utils/sanitize.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ exports.updateStoredTrafficSource = updateStoredTrafficSource;
|
|
|
13
13
|
var _index = require("../lib/logger/index.js");
|
|
14
14
|
var _index2 = require("../lib/storage/index.js");
|
|
15
15
|
var _index3 = require("../constants/index.js");
|
|
16
|
+
var _sanitize = require("./sanitize.js");
|
|
16
17
|
/**
|
|
17
18
|
* Traffic Source Utilities
|
|
18
19
|
* Parse UTM parameters and referral information from URLs
|
|
@@ -21,8 +22,14 @@ var _index3 = require("../constants/index.js");
|
|
|
21
22
|
/**
|
|
22
23
|
* Parse UTM parameters and referral info from URL
|
|
23
24
|
* Supports both web URLs (https://) and deep link URLs (myapp://)
|
|
25
|
+
*
|
|
26
|
+
* Every return path is sanitized (see ./sanitize) so scanner-injected or
|
|
27
|
+
* hand-crafted payloads in a deep link can never be persisted or reported.
|
|
24
28
|
*/
|
|
25
29
|
function parseTrafficSource(url, customRefParams, pathPattern) {
|
|
30
|
+
return (0, _sanitize.sanitizeTrafficSources)(extractTrafficSource(url, customRefParams, pathPattern));
|
|
31
|
+
}
|
|
32
|
+
function extractTrafficSource(url, customRefParams, pathPattern) {
|
|
26
33
|
try {
|
|
27
34
|
// Handle deep link URLs that may not have standard URL format
|
|
28
35
|
let urlObj;
|
|
@@ -110,7 +117,9 @@ function getStoredTrafficSource() {
|
|
|
110
117
|
try {
|
|
111
118
|
const stored = (0, _index2.storage)().get(_index3.SESSION_TRAFFIC_SOURCE_KEY);
|
|
112
119
|
if (stored && typeof stored === "string") {
|
|
113
|
-
|
|
120
|
+
// Sanitize on the way out too, so values persisted by a pre-sanitization
|
|
121
|
+
// SDK version are flushed rather than replayed onto every event.
|
|
122
|
+
return (0, _sanitize.sanitizeTrafficSources)(JSON.parse(stored));
|
|
114
123
|
}
|
|
115
124
|
} catch (error) {
|
|
116
125
|
_index.logger.debug("Failed to get stored traffic source:", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","_index2","_index3","parseTrafficSource","url","customRefParams","pathPattern","urlObj","URL","queryStart","indexOf","referrer","substring","params","searchParams","trafficSource","has","utm_source","get","utm_medium","utm_campaign","utm_term","utm_content","defaultRefParams","refParams","Set","param","ref","pathRegex","RegExp","pathname","match","e","logger","error","storeTrafficSource","hasData","storage","set","SESSION_TRAFFIC_SOURCE_KEY","JSON","stringify","debug","getStoredTrafficSource","stored","parse","undefined","clearTrafficSource","remove","mergeWithStoredTrafficSource","context","TRAFFIC_SOURCE_KEYS","updateStoredTrafficSource","incoming","existing","merged","key","incomingVal","existingVal","mergeTrafficSourceFill","changed","value","Object","entries","String"],"sourceRoot":"../../../src","sources":["utils/trafficSource.ts"],"mappings":";;;;;;;;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_index","require","_index2","_index3","_sanitize","parseTrafficSource","url","customRefParams","pathPattern","sanitizeTrafficSources","extractTrafficSource","urlObj","URL","queryStart","indexOf","referrer","substring","params","searchParams","trafficSource","has","utm_source","get","utm_medium","utm_campaign","utm_term","utm_content","defaultRefParams","refParams","Set","param","ref","pathRegex","RegExp","pathname","match","e","logger","error","storeTrafficSource","hasData","storage","set","SESSION_TRAFFIC_SOURCE_KEY","JSON","stringify","debug","getStoredTrafficSource","stored","parse","undefined","clearTrafficSource","remove","mergeWithStoredTrafficSource","context","TRAFFIC_SOURCE_KEYS","updateStoredTrafficSource","incoming","existing","merged","key","incomingVal","existingVal","mergeTrafficSourceFill","changed","value","Object","entries","String"],"sourceRoot":"../../../src","sources":["utils/trafficSource.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.version = void 0;
|
|
7
7
|
// This file is auto-generated by scripts/update-version.js during npm version
|
|
8
8
|
// Do not edit manually - it will be overwritten
|
|
9
|
-
const version = exports.version = '1.0
|
|
9
|
+
const version = exports.version = '1.1.0';
|
|
10
10
|
//# sourceMappingURL=version.js.map
|
|
@@ -106,7 +106,13 @@ export class FormoAnalytics {
|
|
|
106
106
|
// is a fast native bridge call; the Android Play Install Referrer is a fast
|
|
107
107
|
// one-shot native call (and no-ops instantly when the native module or the
|
|
108
108
|
// platform isn't Android), so awaiting it does not meaningfully delay init.
|
|
109
|
-
if
|
|
109
|
+
// Hook Linking if EITHER consumer needs it. The two flags control different
|
|
110
|
+
// things — attribution.deeplinks parses UTMs into context, autocapture
|
|
111
|
+
// .deepLinks emits Deep Link Opened — but both depend on observing the link
|
|
112
|
+
// in the first place. Gating the hook on attribution alone silently
|
|
113
|
+
// disabled the event for anyone who turned attribution off, with no
|
|
114
|
+
// indication that an unrelated setting was responsible.
|
|
115
|
+
if (analytics.isAttributionEnabled("deeplinks") || analytics.isAutocaptureEnabled("deepLinks")) {
|
|
110
116
|
try {
|
|
111
117
|
await analytics.startDeepLinkCapture();
|
|
112
118
|
} catch (error) {
|
|
@@ -171,7 +177,9 @@ export class FormoAnalytics {
|
|
|
171
177
|
try {
|
|
172
178
|
const url = await Linking.getInitialURL();
|
|
173
179
|
if (url) {
|
|
174
|
-
this.
|
|
180
|
+
if (this.isAttributionEnabled("deeplinks")) {
|
|
181
|
+
this.setTrafficSourceFromUrl(url);
|
|
182
|
+
}
|
|
175
183
|
// Held, not emitted: this runs before lifecycle tracking starts, and
|
|
176
184
|
// the Segment spec orders `Deep Link Opened` after `Application
|
|
177
185
|
// Opened`. Emitted by trackInitialDeepLink() once lifecycle has fired.
|
|
@@ -184,7 +192,11 @@ export class FormoAnalytics {
|
|
|
184
192
|
// Runtime deep links (foreground opens, universal links).
|
|
185
193
|
this.linkingSubscription = Linking.addEventListener("url", event => {
|
|
186
194
|
if (!event?.url) return;
|
|
187
|
-
|
|
195
|
+
// Each behaviour checks its own flag: the hook may exist because only one
|
|
196
|
+
// of them is enabled.
|
|
197
|
+
if (this.isAttributionEnabled("deeplinks")) {
|
|
198
|
+
this.setTrafficSourceFromUrl(event.url);
|
|
199
|
+
}
|
|
188
200
|
void this.trackDeepLinkOpened(event.url);
|
|
189
201
|
});
|
|
190
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EVENTS_API_HOST","EventType","LOCAL_ANONYMOUS_ID_KEY","LOCAL_SESSION_ID_KEY","LOCAL_SESSION_LAST_ACTIVITY_KEY","SESSION_USER_ID_KEY","CONSENT_OPT_OUT_KEY","LIFECYCLE_EVENT","initStorageManager","storage","EventManager","EventQueue","logger","Logger","setConsentFlag","getConsentFlag","removeConsentFlag","FormoAnalyticsSession","WagmiEventHandler","AppLifecycleManager","CrashReporter","validateAddress","parseTrafficSource","updateStoredTrafficSource","captureInstallReferrer","Linking","OPT_IN_AUTOCAPTURE","Set","FormoAnalytics","currentUserId","constructor","writeKey","options","config","session","get","undefined","identify","bind","connect","disconnect","chain","signature","transaction","detect","track","screen","isAutocaptureEnabled","init","enabled","enabledLevels","levels","eventQueue","apiHost","flushAt","retryCount","maxQueueSize","flushInterval","eventManager","hasOptedOutTracking","info","wagmi","wagmiHandler","queryClient","warn","asyncStorage","storageManager","initialize","analytics","isAttributionEnabled","startDeepLinkCapture","error","customRefParams","referral","queryParams","pathPattern","debug","lifecycleManager","start","app","trackForegrounded","trackInitialDeepLink","crashReporter","ready","url","getInitialURL","setTrafficSourceFromUrl","initialDeepLinkUrl","linkingSubscription","addEventListener","event","trackDeepLinkOpened","DEEP_LINK_OPENED","pushNotificationReceived","properties","PUSH_NOTIFICATION_RECEIVED","pushNotificationTapped","PUSH_NOTIFICATION_TAPPED","pushNotificationBounced","PUSH_NOTIFICATION_BOUNCED","name","category","context","callback","trackEvent","SCREEN","trafficSource","reset","remove","clear","cleanup","chainId","address","Number","validatedAddress","validateAndChecksumAddress","CONNECT","currentChainId","currentAddress","params","DISCONNECT","isNaN","CHAIN","status","message","SIGNATURE","data","to","value","transactionHash","function_name","function_args","TRANSACTION","userId","providerName","rdns","validAddress","set","isAlreadyIdentified","isWalletIdentified","markWalletIdentified","IDENTIFY","e","log","isWalletDetected","markWalletDetected","DETECT","TRACK","optOutTracking","optInTracking","eventType","isOptIn","has","autocapture","eventConfig","source","attribution","type","payload","shouldTrack","addEvent","errorHandler","Error","String","handlerError","tracking","Array","isArray","excludeChains","length","includes","flush"],"sourceRoot":"../../src","sources":["FormoAnalytics.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["EVENTS_API_HOST","EventType","LOCAL_ANONYMOUS_ID_KEY","LOCAL_SESSION_ID_KEY","LOCAL_SESSION_LAST_ACTIVITY_KEY","SESSION_USER_ID_KEY","CONSENT_OPT_OUT_KEY","LIFECYCLE_EVENT","initStorageManager","storage","EventManager","EventQueue","logger","Logger","setConsentFlag","getConsentFlag","removeConsentFlag","FormoAnalyticsSession","WagmiEventHandler","AppLifecycleManager","CrashReporter","validateAddress","parseTrafficSource","updateStoredTrafficSource","captureInstallReferrer","Linking","OPT_IN_AUTOCAPTURE","Set","FormoAnalytics","currentUserId","constructor","writeKey","options","config","session","get","undefined","identify","bind","connect","disconnect","chain","signature","transaction","detect","track","screen","isAutocaptureEnabled","init","enabled","enabledLevels","levels","eventQueue","apiHost","flushAt","retryCount","maxQueueSize","flushInterval","eventManager","hasOptedOutTracking","info","wagmi","wagmiHandler","queryClient","warn","asyncStorage","storageManager","initialize","analytics","isAttributionEnabled","startDeepLinkCapture","error","customRefParams","referral","queryParams","pathPattern","debug","lifecycleManager","start","app","trackForegrounded","trackInitialDeepLink","crashReporter","ready","url","getInitialURL","setTrafficSourceFromUrl","initialDeepLinkUrl","linkingSubscription","addEventListener","event","trackDeepLinkOpened","DEEP_LINK_OPENED","pushNotificationReceived","properties","PUSH_NOTIFICATION_RECEIVED","pushNotificationTapped","PUSH_NOTIFICATION_TAPPED","pushNotificationBounced","PUSH_NOTIFICATION_BOUNCED","name","category","context","callback","trackEvent","SCREEN","trafficSource","reset","remove","clear","cleanup","chainId","address","Number","validatedAddress","validateAndChecksumAddress","CONNECT","currentChainId","currentAddress","params","DISCONNECT","isNaN","CHAIN","status","message","SIGNATURE","data","to","value","transactionHash","function_name","function_args","TRANSACTION","userId","providerName","rdns","validAddress","set","isAlreadyIdentified","isWalletIdentified","markWalletIdentified","IDENTIFY","e","log","isWalletDetected","markWalletDetected","DETECT","TRACK","optOutTracking","optInTracking","eventType","isOptIn","has","autocapture","eventConfig","source","attribution","type","payload","shouldTrack","addEvent","errorHandler","Error","String","handlerError","tracking","Array","isArray","excludeChains","length","includes","flush"],"sourceRoot":"../../src","sources":["FormoAnalytics.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,16 +46,30 @@ export class CrashReporter {
|
|
|
46
46
|
logger.debug("CrashReporter: ErrorUtils unavailable, skipping crash tracking");
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
|
|
50
|
+
// Captured in the closure, NOT read from `this` at crash time. If another
|
|
51
|
+
// reporter wraps us afterwards our handler stays reachable through its
|
|
52
|
+
// chain, and cleanup() clearing the field would otherwise sever the chain
|
|
53
|
+
// at the moment it matters: A.start, B.start, A.cleanup, crash — B calls
|
|
54
|
+
// our handler, which would then forward to `undefined` and the real
|
|
55
|
+
// RN/default handler would never run.
|
|
56
|
+
const previousHandler = errorUtils.getGlobalHandler();
|
|
57
|
+
this.previousHandler = previousHandler;
|
|
50
58
|
const handler = (error, isFatal) => {
|
|
51
59
|
// Nothing in here may throw: this runs while the app is already failing,
|
|
52
60
|
// and an exception would replace the real crash with ours.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
//
|
|
62
|
+
// `started` is checked so a cleaned-up reporter still FORWARDS (keeping
|
|
63
|
+
// the chain intact) but no longer reports — otherwise the sequence above
|
|
64
|
+
// would emit a duplicate Application Crashed from the stopped instance.
|
|
65
|
+
if (this.started) {
|
|
66
|
+
try {
|
|
67
|
+
this.report(error, isFatal);
|
|
68
|
+
} catch (reportingError) {
|
|
69
|
+
logger.debug("CrashReporter: failed to report crash", reportingError);
|
|
70
|
+
}
|
|
57
71
|
}
|
|
58
|
-
|
|
72
|
+
previousHandler?.(error, isFatal);
|
|
59
73
|
};
|
|
60
74
|
this.installedHandler = handler;
|
|
61
75
|
errorUtils.setGlobalHandler(handler);
|
|
@@ -92,9 +106,11 @@ export class CrashReporter {
|
|
|
92
106
|
if (errorUtils?.getGlobalHandler?.() === this.installedHandler && errorUtils?.setGlobalHandler && this.previousHandler) {
|
|
93
107
|
errorUtils.setGlobalHandler(this.previousHandler);
|
|
94
108
|
}
|
|
109
|
+
|
|
110
|
+
// previousHandler is deliberately NOT cleared: if another reporter wrapped
|
|
111
|
+
// us, our installed handler is still in its chain and must keep forwarding.
|
|
95
112
|
this.started = false;
|
|
96
113
|
this.installedHandler = undefined;
|
|
97
|
-
this.previousHandler = undefined;
|
|
98
114
|
logger.info("CrashReporter: Cleaned up");
|
|
99
115
|
}
|
|
100
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LIFECYCLE_EVENT","logger","MAX_STACK_LENGTH","getErrorUtils","globalThis","ErrorUtils","CrashReporter","started","constructor","analytics","start","errorUtils","setGlobalHandler","getGlobalHandler","debug","previousHandler","handler","error","isFatal","report","reportingError","installedHandler","info","stack","track","APPLICATION_CRASHED","message","String","name","slice","stack_truncated","length","fatal","Boolean","then","flush","catch","trackError","cleanup","undefined"],"sourceRoot":"../../../../src","sources":["lib/crash/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,2BAAwB;AACxD,SAASC,MAAM,QAAQ,oBAAW;;AAElC;;AAQA;;AAMA;AACA,MAAMC,gBAAgB,GAAG,IAAI;AAE7B,SAASC,aAAaA,CAAA,EAA+B;EACnD;EACA;EACA,OAAQC,UAAU,CAAqCC,UAAU;AACnE;AAEA,OAAO,MAAMC,aAAa,CAAC;EAIjBC,OAAO,GAAG,KAAK;EAEvBC,WAAWA,CAACC,SAA6B,EAAE;IACzC,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC5B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACH,OAAO,EAAE;IAElB,MAAMI,UAAU,GAAGR,aAAa,CAAC,CAAC;IAClC,IAAI,CAACQ,UAAU,EAAEC,gBAAgB,IAAI,CAACD,UAAU,EAAEE,gBAAgB,EAAE;MAClEZ,MAAM,CAACa,KAAK,CACV,gEACF,CAAC;MACD;IACF;
|
|
1
|
+
{"version":3,"names":["LIFECYCLE_EVENT","logger","MAX_STACK_LENGTH","getErrorUtils","globalThis","ErrorUtils","CrashReporter","started","constructor","analytics","start","errorUtils","setGlobalHandler","getGlobalHandler","debug","previousHandler","handler","error","isFatal","report","reportingError","installedHandler","info","stack","track","APPLICATION_CRASHED","message","String","name","slice","stack_truncated","length","fatal","Boolean","then","flush","catch","trackError","cleanup","undefined"],"sourceRoot":"../../../../src","sources":["lib/crash/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -113,7 +113,17 @@ export function getSessionId() {
|
|
|
113
113
|
* ("/tabs/leaderboard") does not produce a doubled separator.
|
|
114
114
|
*/
|
|
115
115
|
export function buildScreenUrl(bundleId, name) {
|
|
116
|
-
const screen = (name ?? "").replace(/^\/+/, "")
|
|
116
|
+
const screen = (name ?? "").replace(/^\/+/, "")
|
|
117
|
+
// Percent-encode the characters that would otherwise change the URL's
|
|
118
|
+
// STRUCTURE rather than its path. '?' starts a query and '#' a fragment, so
|
|
119
|
+
// screen("Checkout?coupon=X") would parse with pathname "/Checkout" and the
|
|
120
|
+
// rest silently dropped from the screen name. '/' is deliberately NOT
|
|
121
|
+
// encoded — router-style names like "/tabs/leaderboard" are meant to be
|
|
122
|
+
// path segments.
|
|
123
|
+
// '%' FIRST, so the transform stays injective. Without it a screen literally
|
|
124
|
+
// named "Checkout%3Fx" and one named "Checkout?x" both produce
|
|
125
|
+
// ".../Checkout%3Fx" and two distinct screens merge in the analytics.
|
|
126
|
+
.replace(/%/g, "%25").replace(/\?/g, "%3F").replace(/#/g, "%23");
|
|
117
127
|
return `app://${bundleId ?? ""}/${screen}`;
|
|
118
128
|
}
|
|
119
129
|
export function resolveExpoDeviceType(deviceType, tabletEnumValue) {
|