@vestara-inc/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/LICENSE +201 -0
- package/README.md +208 -0
- package/dist/breadcrumbs.d.ts +5 -0
- package/dist/breadcrumbs.d.ts.map +1 -0
- package/dist/breadcrumbs.js +21 -0
- package/dist/breadcrumbs.js.map +1 -0
- package/dist/errorHandlers.d.ts +7 -0
- package/dist/errorHandlers.d.ts.map +1 -0
- package/dist/errorHandlers.js +36 -0
- package/dist/errorHandlers.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +351 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata.d.ts +23 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +47 -0
- package/dist/metadata.js.map +1 -0
- package/dist/queue.d.ts +9 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +74 -0
- package/dist/queue.js.map +1 -0
- package/dist/rum.d.ts +13 -0
- package/dist/rum.d.ts.map +1 -0
- package/dist/rum.js +66 -0
- package/dist/rum.js.map +1 -0
- package/dist/storage.d.ts +5 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +51 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +48 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/uploader.d.ts +13 -0
- package/dist/uploader.d.ts.map +1 -0
- package/dist/uploader.js +146 -0
- package/dist/uploader.js.map +1 -0
- package/dist/uuid.d.ts +2 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +21 -0
- package/dist/uuid.js.map +1 -0
- package/package.json +38 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { AppState } from "react-native";
|
|
2
|
+
import { uuid } from "./uuid.js";
|
|
3
|
+
import { loadDeviceId } from "./storage.js";
|
|
4
|
+
import { loadPersistedQueue, enqueue, persistNow, clear as clearQueue } from "./queue.js";
|
|
5
|
+
import * as uploader from "./uploader.js";
|
|
6
|
+
import { addBreadcrumb, getSnapshot, clear as clearBreadcrumbs } from "./breadcrumbs.js";
|
|
7
|
+
import * as metadata from "./metadata.js";
|
|
8
|
+
import { installGlobalErrorHandler, installUnhandledRejectionHandler } from "./errorHandlers.js";
|
|
9
|
+
import { buildRumPayload } from "./rum.js";
|
|
10
|
+
const DEFAULT_API_URL = "https://api.vestara.dev";
|
|
11
|
+
const DEFAULT_ENVIRONMENT = "production";
|
|
12
|
+
const DEFAULT_SAMPLE_RATE = 1;
|
|
13
|
+
const SDK_VERSION = "0.1.0";
|
|
14
|
+
let config = null;
|
|
15
|
+
let initialized = false;
|
|
16
|
+
let initTimestampMs = 0;
|
|
17
|
+
let user = null;
|
|
18
|
+
let appStateSubscription = null;
|
|
19
|
+
function normalizeLevel(level) {
|
|
20
|
+
if (level === "debug" || level === "info" || level === "warn" || level === "error" || level === "fatal") {
|
|
21
|
+
return level;
|
|
22
|
+
}
|
|
23
|
+
return "info";
|
|
24
|
+
}
|
|
25
|
+
function shouldSample() {
|
|
26
|
+
if (!config)
|
|
27
|
+
return false;
|
|
28
|
+
return Math.random() < config.sampleRate;
|
|
29
|
+
}
|
|
30
|
+
function buildEvent(eventType, payload) {
|
|
31
|
+
const base = metadata.buildMetadata({
|
|
32
|
+
appVersion: config?.appVersion,
|
|
33
|
+
environment: config?.environment || DEFAULT_ENVIRONMENT,
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
id: uuid(),
|
|
37
|
+
event_type: eventType,
|
|
38
|
+
session_id: base.session_id,
|
|
39
|
+
device_id: base.device_id,
|
|
40
|
+
timestamp: metadata.timestamp(),
|
|
41
|
+
sdk_version: SDK_VERSION,
|
|
42
|
+
app_version: base.app_version,
|
|
43
|
+
os_name: base.os_name,
|
|
44
|
+
os_version: base.os_version,
|
|
45
|
+
device_model: base.device_model,
|
|
46
|
+
environment: base.environment,
|
|
47
|
+
target_category: config?.targetCategory || "react_native_app",
|
|
48
|
+
...(config?.serviceName ? { service_name: config.serviceName } : {}),
|
|
49
|
+
...(config?.appIdentifier ? { app_identifier: config.appIdentifier } : {}),
|
|
50
|
+
payload,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function buildUserPayload() {
|
|
54
|
+
if (!user || !user.id)
|
|
55
|
+
return undefined;
|
|
56
|
+
const p = { id: user.id };
|
|
57
|
+
if (user.email)
|
|
58
|
+
p.email = user.email;
|
|
59
|
+
return p;
|
|
60
|
+
}
|
|
61
|
+
function applyBeforeSend(event) {
|
|
62
|
+
if (!config?.beforeSend) {
|
|
63
|
+
return event;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
return config.beforeSend(event) ?? null;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return event;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function parseStack(stack) {
|
|
73
|
+
if (!stack)
|
|
74
|
+
return [];
|
|
75
|
+
const lines = stack.split("\n");
|
|
76
|
+
const frames = [];
|
|
77
|
+
for (let i = 0; i < lines.length && frames.length < 30; i++) {
|
|
78
|
+
const line = lines[i].trim();
|
|
79
|
+
let match = /at\s+(.*?)\s+\((.*?):(\d+):\d+\)$/.exec(line);
|
|
80
|
+
if (match) {
|
|
81
|
+
frames.push({
|
|
82
|
+
function: match[1] || "anonymous",
|
|
83
|
+
file: match[2] || "unknown",
|
|
84
|
+
line: toNumber(match[3]),
|
|
85
|
+
});
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
match = /at\s+(.*?):(\d+):\d+$/.exec(line);
|
|
89
|
+
if (match) {
|
|
90
|
+
frames.push({
|
|
91
|
+
function: "anonymous",
|
|
92
|
+
file: match[1] || "unknown",
|
|
93
|
+
line: toNumber(match[2]),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return frames;
|
|
98
|
+
}
|
|
99
|
+
function toNumber(value) {
|
|
100
|
+
const parsed = parseInt(value, 10);
|
|
101
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
102
|
+
}
|
|
103
|
+
function normalizeValue(value) {
|
|
104
|
+
if (value === null || value === undefined)
|
|
105
|
+
return undefined;
|
|
106
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
107
|
+
return value;
|
|
108
|
+
if (value instanceof Error)
|
|
109
|
+
return value.message || String(value);
|
|
110
|
+
try {
|
|
111
|
+
return JSON.stringify(value);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return String(value);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function normalizeData(data) {
|
|
118
|
+
if (!data || typeof data !== "object")
|
|
119
|
+
return undefined;
|
|
120
|
+
const result = {};
|
|
121
|
+
for (const [key, value] of Object.entries(data)) {
|
|
122
|
+
const normalized = normalizeValue(value);
|
|
123
|
+
if (normalized !== undefined)
|
|
124
|
+
result[key] = normalized;
|
|
125
|
+
}
|
|
126
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
127
|
+
}
|
|
128
|
+
async function captureJSError(error, fatal) {
|
|
129
|
+
if (!config)
|
|
130
|
+
return;
|
|
131
|
+
try {
|
|
132
|
+
const safeError = error instanceof Error ? error : new Error(String(error || "Unknown error"));
|
|
133
|
+
const stackTrace = parseStack(safeError.stack || "");
|
|
134
|
+
addBreadcrumb("error", safeError.message, "error");
|
|
135
|
+
const payload = {
|
|
136
|
+
message: safeError.message || "Unknown error",
|
|
137
|
+
name: safeError.name || "Error",
|
|
138
|
+
stack: safeError.stack || "",
|
|
139
|
+
handled: false,
|
|
140
|
+
fatal,
|
|
141
|
+
};
|
|
142
|
+
if (stackTrace.length > 0)
|
|
143
|
+
payload.stack_trace = stackTrace;
|
|
144
|
+
const userPayload = buildUserPayload();
|
|
145
|
+
if (userPayload)
|
|
146
|
+
payload.user = userPayload;
|
|
147
|
+
const crumbs = getSnapshot();
|
|
148
|
+
if (crumbs.length > 0)
|
|
149
|
+
payload.breadcrumbs = crumbs;
|
|
150
|
+
const event = buildEvent("crash", payload);
|
|
151
|
+
const finalEvent = applyBeforeSend(event);
|
|
152
|
+
if (finalEvent) {
|
|
153
|
+
enqueue(finalEvent, true);
|
|
154
|
+
await persistNow();
|
|
155
|
+
void uploader.flushNow([finalEvent]);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// no-op
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async function captureUnhandledRejection(reason) {
|
|
163
|
+
if (!config)
|
|
164
|
+
return;
|
|
165
|
+
try {
|
|
166
|
+
const safeError = reason instanceof Error ? reason : new Error(String(reason || "Unhandled rejection"));
|
|
167
|
+
addBreadcrumb("error", safeError.message, "error");
|
|
168
|
+
const payload = {
|
|
169
|
+
message: safeError.message || "Unhandled rejection",
|
|
170
|
+
name: safeError.name || "Error",
|
|
171
|
+
stack: safeError.stack || "",
|
|
172
|
+
handled: false,
|
|
173
|
+
fatal: true,
|
|
174
|
+
context: { type: "unhandledPromiseRejection" },
|
|
175
|
+
};
|
|
176
|
+
const stackTrace = parseStack(safeError.stack || "");
|
|
177
|
+
if (stackTrace.length > 0)
|
|
178
|
+
payload.stack_trace = stackTrace;
|
|
179
|
+
const userPayload = buildUserPayload();
|
|
180
|
+
if (userPayload)
|
|
181
|
+
payload.user = userPayload;
|
|
182
|
+
const crumbs = getSnapshot();
|
|
183
|
+
if (crumbs.length > 0)
|
|
184
|
+
payload.breadcrumbs = crumbs;
|
|
185
|
+
const event = buildEvent("crash", payload);
|
|
186
|
+
const finalEvent = applyBeforeSend(event);
|
|
187
|
+
if (finalEvent) {
|
|
188
|
+
enqueue(finalEvent, true);
|
|
189
|
+
await persistNow();
|
|
190
|
+
void uploader.flushNow([finalEvent]);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// no-op
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function bindAppStateBreadcrumbs() {
|
|
198
|
+
if (appStateSubscription)
|
|
199
|
+
return;
|
|
200
|
+
const handler = (state) => {
|
|
201
|
+
if (!config)
|
|
202
|
+
return;
|
|
203
|
+
const message = state === "active" ? "App foregrounded" : "App backgrounded";
|
|
204
|
+
addBreadcrumb("app.lifecycle", message, "info");
|
|
205
|
+
};
|
|
206
|
+
const subscription = AppState.addEventListener("change", handler);
|
|
207
|
+
appStateSubscription = subscription;
|
|
208
|
+
}
|
|
209
|
+
export const Vestara = {
|
|
210
|
+
async init(options) {
|
|
211
|
+
if (!options || !options.token)
|
|
212
|
+
return;
|
|
213
|
+
if (initialized && config) {
|
|
214
|
+
uploader.stopUploader();
|
|
215
|
+
}
|
|
216
|
+
config = {
|
|
217
|
+
token: options.token,
|
|
218
|
+
apiUrl: options.apiUrl || DEFAULT_API_URL,
|
|
219
|
+
environment: options.environment || DEFAULT_ENVIRONMENT,
|
|
220
|
+
appVersion: options.appVersion,
|
|
221
|
+
sampleRate: clampRate(options.sampleRate),
|
|
222
|
+
targetCategory: options.targetCategory || "react_native_app",
|
|
223
|
+
serviceName: options.serviceName,
|
|
224
|
+
appIdentifier: options.appIdentifier,
|
|
225
|
+
beforeSend: options.beforeSend,
|
|
226
|
+
};
|
|
227
|
+
const rawDeviceId = uuid();
|
|
228
|
+
const deviceId = await loadDeviceId(() => rawDeviceId);
|
|
229
|
+
metadata.setDeviceId(deviceId);
|
|
230
|
+
metadata.generateSessionId();
|
|
231
|
+
uploader.setDeviceIdRef(deviceId);
|
|
232
|
+
await loadPersistedQueue();
|
|
233
|
+
initTimestampMs = Date.now();
|
|
234
|
+
uploader.initUploader({
|
|
235
|
+
apiUrl: config.apiUrl,
|
|
236
|
+
token: config.token,
|
|
237
|
+
});
|
|
238
|
+
installGlobalErrorHandler(captureJSError);
|
|
239
|
+
installUnhandledRejectionHandler(captureUnhandledRejection);
|
|
240
|
+
bindAppStateBreadcrumbs();
|
|
241
|
+
clearBreadcrumbs();
|
|
242
|
+
initialized = true;
|
|
243
|
+
},
|
|
244
|
+
log(level, message, data) {
|
|
245
|
+
if (!config || !initialized)
|
|
246
|
+
return;
|
|
247
|
+
if (!uploader.isLoggingEnabled())
|
|
248
|
+
return;
|
|
249
|
+
if (!shouldSample())
|
|
250
|
+
return;
|
|
251
|
+
const safeLevel = normalizeLevel(level);
|
|
252
|
+
addBreadcrumb("log", message, safeLevel, data);
|
|
253
|
+
const payload = {
|
|
254
|
+
level: safeLevel,
|
|
255
|
+
message,
|
|
256
|
+
};
|
|
257
|
+
const normalized = normalizeData(data);
|
|
258
|
+
if (normalized)
|
|
259
|
+
payload.data = normalized;
|
|
260
|
+
const userPayload = buildUserPayload();
|
|
261
|
+
if (userPayload)
|
|
262
|
+
payload.user = userPayload;
|
|
263
|
+
const event = buildEvent("log", payload);
|
|
264
|
+
const finalEvent = applyBeforeSend(event);
|
|
265
|
+
if (finalEvent) {
|
|
266
|
+
enqueue(finalEvent);
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
async captureError(error, context) {
|
|
270
|
+
if (!config || !initialized)
|
|
271
|
+
return;
|
|
272
|
+
const safeError = error instanceof Error ? error : new Error(String(error ?? "Unknown error"));
|
|
273
|
+
const stackTrace = parseStack(safeError.stack || "");
|
|
274
|
+
addBreadcrumb("error", safeError.message, "error");
|
|
275
|
+
const payload = {
|
|
276
|
+
message: safeError.message || "Unknown error",
|
|
277
|
+
name: safeError.name || "Error",
|
|
278
|
+
stack: safeError.stack || "",
|
|
279
|
+
handled: true,
|
|
280
|
+
fatal: false,
|
|
281
|
+
};
|
|
282
|
+
if (stackTrace.length > 0)
|
|
283
|
+
payload.stack_trace = stackTrace;
|
|
284
|
+
if (context) {
|
|
285
|
+
payload.context = normalizeData(context);
|
|
286
|
+
}
|
|
287
|
+
const userPayload = buildUserPayload();
|
|
288
|
+
if (userPayload)
|
|
289
|
+
payload.user = userPayload;
|
|
290
|
+
const crumbs = getSnapshot();
|
|
291
|
+
if (crumbs.length > 0)
|
|
292
|
+
payload.breadcrumbs = crumbs;
|
|
293
|
+
const event = buildEvent("crash", payload);
|
|
294
|
+
const finalEvent = applyBeforeSend(event);
|
|
295
|
+
if (finalEvent) {
|
|
296
|
+
enqueue(finalEvent, true);
|
|
297
|
+
await persistNow();
|
|
298
|
+
void uploader.flushNow([finalEvent]);
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
setUser(context) {
|
|
302
|
+
if (!context || !context.id)
|
|
303
|
+
return;
|
|
304
|
+
user = { id: context.id, email: context.email };
|
|
305
|
+
},
|
|
306
|
+
trackRumMetric(metricType, value, unit, name, screen, route, operation, tags) {
|
|
307
|
+
if (!config || !initialized)
|
|
308
|
+
return;
|
|
309
|
+
const payload = buildRumPayload(metricType, value, unit, name, screen, route, operation, tags);
|
|
310
|
+
if (!payload)
|
|
311
|
+
return;
|
|
312
|
+
const event = buildEvent("rum_metric", payload);
|
|
313
|
+
const finalEvent = applyBeforeSend(event);
|
|
314
|
+
if (finalEvent) {
|
|
315
|
+
enqueue(finalEvent);
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
reportAppStart() {
|
|
319
|
+
const elapsedMs = Date.now() - initTimestampMs;
|
|
320
|
+
Vestara.trackRumMetric("app_start", elapsedMs, "ms");
|
|
321
|
+
},
|
|
322
|
+
reset() {
|
|
323
|
+
if (appStateSubscription) {
|
|
324
|
+
appStateSubscription.remove();
|
|
325
|
+
appStateSubscription = null;
|
|
326
|
+
}
|
|
327
|
+
uploader.stopUploader();
|
|
328
|
+
void clearQueue();
|
|
329
|
+
clearBreadcrumbs();
|
|
330
|
+
metadata.generateSessionId();
|
|
331
|
+
initialized = false;
|
|
332
|
+
config = null;
|
|
333
|
+
},
|
|
334
|
+
__testonly__captureJSError(error, fatal) {
|
|
335
|
+
return captureJSError(error, fatal);
|
|
336
|
+
},
|
|
337
|
+
__testonly__captureUnhandledRejection(reason) {
|
|
338
|
+
return captureUnhandledRejection(reason);
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
function clampRate(rate) {
|
|
342
|
+
if (typeof rate !== "number" || isNaN(rate))
|
|
343
|
+
return DEFAULT_SAMPLE_RATE;
|
|
344
|
+
if (rate <= 0)
|
|
345
|
+
return 0;
|
|
346
|
+
if (rate >= 1)
|
|
347
|
+
return 1;
|
|
348
|
+
return rate;
|
|
349
|
+
}
|
|
350
|
+
export default Vestara;
|
|
351
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare function setDeviceId(id: string): void;
|
|
2
|
+
export declare function getDeviceId(): string;
|
|
3
|
+
export declare function generateSessionId(): string;
|
|
4
|
+
export declare function getSessionId(): string;
|
|
5
|
+
export declare function timestamp(): string;
|
|
6
|
+
export declare function getOsName(): "ios" | "android";
|
|
7
|
+
export declare function getOsVersion(): string;
|
|
8
|
+
export declare function getDeviceModel(): string;
|
|
9
|
+
export declare function buildMetadata(opts: {
|
|
10
|
+
appVersion?: string;
|
|
11
|
+
environment: string;
|
|
12
|
+
}): {
|
|
13
|
+
session_id: string;
|
|
14
|
+
device_id: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
sdk_version: string;
|
|
17
|
+
app_version: string;
|
|
18
|
+
os_name: "ios" | "android";
|
|
19
|
+
os_version: string;
|
|
20
|
+
device_model: string;
|
|
21
|
+
environment: string;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AASA,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,SAAS,IAAI,KAAK,GAAG,SAAS,CAE7C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAgBA"}
|
package/dist/metadata.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
import { uuid } from "./uuid.js";
|
|
3
|
+
const SDK_VERSION = "0.1.0";
|
|
4
|
+
let deviceId = "";
|
|
5
|
+
let sessionId = "";
|
|
6
|
+
export function setDeviceId(id) {
|
|
7
|
+
deviceId = id;
|
|
8
|
+
}
|
|
9
|
+
export function getDeviceId() {
|
|
10
|
+
return deviceId;
|
|
11
|
+
}
|
|
12
|
+
export function generateSessionId() {
|
|
13
|
+
sessionId = uuid();
|
|
14
|
+
return sessionId;
|
|
15
|
+
}
|
|
16
|
+
export function getSessionId() {
|
|
17
|
+
return sessionId;
|
|
18
|
+
}
|
|
19
|
+
export function timestamp() {
|
|
20
|
+
return new Date().toISOString();
|
|
21
|
+
}
|
|
22
|
+
export function getOsName() {
|
|
23
|
+
return Platform.OS;
|
|
24
|
+
}
|
|
25
|
+
export function getOsVersion() {
|
|
26
|
+
return String(Platform.Version ?? "unknown");
|
|
27
|
+
}
|
|
28
|
+
export function getDeviceModel() {
|
|
29
|
+
return `${Platform.OS} react-native`;
|
|
30
|
+
}
|
|
31
|
+
export function buildMetadata(opts) {
|
|
32
|
+
if (!sessionId) {
|
|
33
|
+
generateSessionId();
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
session_id: sessionId,
|
|
37
|
+
device_id: deviceId,
|
|
38
|
+
timestamp: timestamp(),
|
|
39
|
+
sdk_version: SDK_VERSION,
|
|
40
|
+
app_version: opts.appVersion ?? "unknown",
|
|
41
|
+
os_name: getOsName(),
|
|
42
|
+
os_version: getOsVersion(),
|
|
43
|
+
device_model: getDeviceModel(),
|
|
44
|
+
environment: opts.environment,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,IAAI,SAAS,GAAG,EAAE,CAAC;AAEnB,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,SAAS,GAAG,IAAI,EAAE,CAAC;IACnB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,CAAC,EAAuB,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,QAAQ,CAAC,EAAE,eAAe,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAkD;IAW9E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,SAAS,EAAE;QACtB,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;QACzC,OAAO,EAAE,SAAS,EAAE;QACpB,UAAU,EAAE,YAAY,EAAE;QAC1B,YAAY,EAAE,cAAc,EAAE;QAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC;AACJ,CAAC"}
|
package/dist/queue.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SDKEvent } from "./types.js";
|
|
2
|
+
export declare function loadPersistedQueue(): Promise<void>;
|
|
3
|
+
export declare function enqueue(event: SDKEvent, flush?: boolean): void;
|
|
4
|
+
export declare function dequeue(count: number): SDKEvent[];
|
|
5
|
+
export declare function removeById(ids: string[]): number;
|
|
6
|
+
export declare function peekAll(): SDKEvent[];
|
|
7
|
+
export declare function clear(): Promise<void>;
|
|
8
|
+
export declare function persistNow(): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiB3C,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIxD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAa9D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAIjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAYhD;AAED,wBAAgB,OAAO,IAAI,QAAQ,EAAE,CAEpC;AAED,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3C;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD"}
|
package/dist/queue.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { loadQueue, saveQueue } from "./storage.js";
|
|
2
|
+
const MAX_QUEUE = 500;
|
|
3
|
+
let inMemoryQueue = [];
|
|
4
|
+
let storageLoaded = false;
|
|
5
|
+
function findDropIndex(queue) {
|
|
6
|
+
for (let i = 0; i < queue.length; i++) {
|
|
7
|
+
if (queue[i].event_type !== "crash") {
|
|
8
|
+
return i;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return -1;
|
|
12
|
+
}
|
|
13
|
+
export async function loadPersistedQueue() {
|
|
14
|
+
const persisted = await loadQueue();
|
|
15
|
+
inMemoryQueue = persisted.filter(isEvent);
|
|
16
|
+
storageLoaded = true;
|
|
17
|
+
}
|
|
18
|
+
export function enqueue(event, flush) {
|
|
19
|
+
if (inMemoryQueue.length >= MAX_QUEUE) {
|
|
20
|
+
if (event.event_type !== "crash") {
|
|
21
|
+
const dropIdx = findDropIndex(inMemoryQueue);
|
|
22
|
+
if (dropIdx < 0)
|
|
23
|
+
return;
|
|
24
|
+
inMemoryQueue.splice(dropIdx, 1);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const dropIdx = findDropIndex(inMemoryQueue);
|
|
28
|
+
inMemoryQueue.splice(dropIdx >= 0 ? dropIdx : 0, 1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
inMemoryQueue.push(event);
|
|
32
|
+
void persistQueue();
|
|
33
|
+
}
|
|
34
|
+
export function dequeue(count) {
|
|
35
|
+
const removed = inMemoryQueue.splice(0, count);
|
|
36
|
+
void persistQueue();
|
|
37
|
+
return removed;
|
|
38
|
+
}
|
|
39
|
+
export function removeById(ids) {
|
|
40
|
+
const idSet = new Set(ids);
|
|
41
|
+
let removed = 0;
|
|
42
|
+
inMemoryQueue = inMemoryQueue.filter((event) => {
|
|
43
|
+
const keep = !idSet.has(event.id);
|
|
44
|
+
if (!keep)
|
|
45
|
+
removed++;
|
|
46
|
+
return keep;
|
|
47
|
+
});
|
|
48
|
+
if (removed > 0) {
|
|
49
|
+
void persistQueue();
|
|
50
|
+
}
|
|
51
|
+
return removed;
|
|
52
|
+
}
|
|
53
|
+
export function peekAll() {
|
|
54
|
+
return inMemoryQueue;
|
|
55
|
+
}
|
|
56
|
+
export async function clear() {
|
|
57
|
+
inMemoryQueue = [];
|
|
58
|
+
await saveQueue([]);
|
|
59
|
+
}
|
|
60
|
+
export async function persistNow() {
|
|
61
|
+
await persistQueue();
|
|
62
|
+
}
|
|
63
|
+
async function persistQueue() {
|
|
64
|
+
await saveQueue(inMemoryQueue.slice(-MAX_QUEUE));
|
|
65
|
+
}
|
|
66
|
+
function isEvent(value) {
|
|
67
|
+
return (typeof value === "object" &&
|
|
68
|
+
value !== null &&
|
|
69
|
+
"event_type" in value &&
|
|
70
|
+
"session_id" in value &&
|
|
71
|
+
"device_id" in value &&
|
|
72
|
+
"timestamp" in value);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/rum.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RumMetricType, RumMetricUnit } from "./types.js";
|
|
2
|
+
export interface RumPayload {
|
|
3
|
+
metric_type: RumMetricType;
|
|
4
|
+
value: number;
|
|
5
|
+
unit?: RumMetricUnit;
|
|
6
|
+
name?: string;
|
|
7
|
+
screen?: string;
|
|
8
|
+
route?: string;
|
|
9
|
+
operation?: string;
|
|
10
|
+
tags?: Record<string, string | number | boolean>;
|
|
11
|
+
}
|
|
12
|
+
export declare function buildRumPayload(metricType: RumMetricType, value: number, unit?: RumMetricUnit, name?: string, screen?: string, route?: string, operation?: string, tags?: Record<string, unknown>): RumPayload | null;
|
|
13
|
+
//# sourceMappingURL=rum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rum.d.ts","sourceRoot":"","sources":["../src/rum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClD;AA0CD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,aAAa,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,UAAU,GAAG,IAAI,CAkCnB"}
|
package/dist/rum.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function sanitizedRoute(route) {
|
|
2
|
+
const queryIndex = route.indexOf("?");
|
|
3
|
+
const fragmentIndex = route.indexOf("#");
|
|
4
|
+
const cutIndex = queryIndex >= 0 && fragmentIndex >= 0
|
|
5
|
+
? Math.min(queryIndex, fragmentIndex)
|
|
6
|
+
: queryIndex >= 0
|
|
7
|
+
? queryIndex
|
|
8
|
+
: fragmentIndex >= 0
|
|
9
|
+
? fragmentIndex
|
|
10
|
+
: -1;
|
|
11
|
+
if (cutIndex < 0)
|
|
12
|
+
return route;
|
|
13
|
+
return route.substring(0, cutIndex);
|
|
14
|
+
}
|
|
15
|
+
function sanitizedTags(tags) {
|
|
16
|
+
const result = {};
|
|
17
|
+
let count = 0;
|
|
18
|
+
for (const [key, value] of Object.entries(tags)) {
|
|
19
|
+
if (count >= 20)
|
|
20
|
+
break;
|
|
21
|
+
const cleanKey = key.slice(0, 64);
|
|
22
|
+
if (typeof value === "string") {
|
|
23
|
+
result[cleanKey] = value.slice(0, 1024);
|
|
24
|
+
count++;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof value === "boolean") {
|
|
27
|
+
result[cleanKey] = value;
|
|
28
|
+
count++;
|
|
29
|
+
}
|
|
30
|
+
else if (typeof value === "number" && Number.isFinite(value)) {
|
|
31
|
+
result[cleanKey] = value;
|
|
32
|
+
count++;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
export function buildRumPayload(metricType, value, unit, name, screen, route, operation, tags) {
|
|
38
|
+
if (!Number.isFinite(value))
|
|
39
|
+
return null;
|
|
40
|
+
const payload = {
|
|
41
|
+
metric_type: metricType,
|
|
42
|
+
value,
|
|
43
|
+
};
|
|
44
|
+
if (unit)
|
|
45
|
+
payload.unit = unit;
|
|
46
|
+
if (name && name.trim().length > 0) {
|
|
47
|
+
payload.name = name.slice(0, 128);
|
|
48
|
+
}
|
|
49
|
+
if (screen && screen.trim().length > 0) {
|
|
50
|
+
payload.screen = screen.slice(0, 256);
|
|
51
|
+
}
|
|
52
|
+
if (route && route.trim().length > 0) {
|
|
53
|
+
payload.route = sanitizedRoute(route).slice(0, 256);
|
|
54
|
+
}
|
|
55
|
+
if (operation && operation.trim().length > 0) {
|
|
56
|
+
payload.operation = operation.slice(0, 128);
|
|
57
|
+
}
|
|
58
|
+
if (tags && Object.keys(tags).length > 0) {
|
|
59
|
+
const cleaned = sanitizedTags(tags);
|
|
60
|
+
if (Object.keys(cleaned).length > 0) {
|
|
61
|
+
payload.tags = cleaned;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return payload;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=rum.js.map
|
package/dist/rum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rum.js","sourceRoot":"","sources":["../src/rum.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function loadDeviceId(getOrCreate: () => string): Promise<string>;
|
|
2
|
+
export declare function loadQueue(): Promise<unknown[]>;
|
|
3
|
+
export declare function saveQueue(events: unknown[]): Promise<void>;
|
|
4
|
+
export declare function clearQueue(): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB7E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CASpD;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD"}
|