@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/storage.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import AsyncStorage from "@react-native-async-storage/async-storage";
|
|
2
|
+
const DEVICE_ID_KEY = "@vestara/device_id";
|
|
3
|
+
const EVENT_QUEUE_KEY = "@vestara/event_queue";
|
|
4
|
+
export async function loadDeviceId(getOrCreate) {
|
|
5
|
+
try {
|
|
6
|
+
const existing = await AsyncStorage.getItem(DEVICE_ID_KEY);
|
|
7
|
+
if (existing) {
|
|
8
|
+
return existing;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// no-op
|
|
13
|
+
}
|
|
14
|
+
const newId = getOrCreate();
|
|
15
|
+
try {
|
|
16
|
+
await AsyncStorage.setItem(DEVICE_ID_KEY, newId);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// no-op
|
|
20
|
+
}
|
|
21
|
+
return newId;
|
|
22
|
+
}
|
|
23
|
+
export async function loadQueue() {
|
|
24
|
+
try {
|
|
25
|
+
const raw = await AsyncStorage.getItem(EVENT_QUEUE_KEY);
|
|
26
|
+
if (!raw)
|
|
27
|
+
return [];
|
|
28
|
+
const parsed = JSON.parse(raw);
|
|
29
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export async function saveQueue(events) {
|
|
36
|
+
try {
|
|
37
|
+
await AsyncStorage.setItem(EVENT_QUEUE_KEY, JSON.stringify(events));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// no-op
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export async function clearQueue() {
|
|
44
|
+
try {
|
|
45
|
+
await AsyncStorage.removeItem(EVENT_QUEUE_KEY);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// no-op
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAyB;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAiB;IAC/C,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "fatal";
|
|
2
|
+
export type RuntimeTargetCategory = "ios_app" | "android_app" | "web_frontend" | "web_backend" | "react_native_app" | "flutter_app" | "python_worker" | "node_worker" | "desktop_app";
|
|
3
|
+
export interface InitOptions {
|
|
4
|
+
token: string;
|
|
5
|
+
apiUrl?: string;
|
|
6
|
+
environment?: string;
|
|
7
|
+
appVersion?: string;
|
|
8
|
+
sampleRate?: number;
|
|
9
|
+
targetCategory?: RuntimeTargetCategory;
|
|
10
|
+
serviceName?: string;
|
|
11
|
+
appIdentifier?: string;
|
|
12
|
+
beforeSend?: (event: SDKEvent) => SDKEvent | null;
|
|
13
|
+
}
|
|
14
|
+
export interface UserContext {
|
|
15
|
+
id: string;
|
|
16
|
+
email?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface CrashContext {
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export type EventType = "log" | "crash" | "rum_metric";
|
|
22
|
+
export type RumMetricType = "app_start" | "screen_load" | "slow_frame" | "network_request" | "memory" | "custom" | "screen_view" | "screen_duration" | "app_foreground" | "app_background" | "anr_or_freeze" | "crash_free_session";
|
|
23
|
+
export type RumMetricUnit = "ms" | "count" | "bytes" | "percent";
|
|
24
|
+
export interface SDKEvent {
|
|
25
|
+
id: string;
|
|
26
|
+
event_type: EventType;
|
|
27
|
+
session_id: string;
|
|
28
|
+
device_id: string;
|
|
29
|
+
timestamp: string;
|
|
30
|
+
sdk_version: string;
|
|
31
|
+
app_version: string;
|
|
32
|
+
os_name: "ios" | "android";
|
|
33
|
+
os_version: string;
|
|
34
|
+
device_model: string;
|
|
35
|
+
environment: string;
|
|
36
|
+
target_category?: string;
|
|
37
|
+
service_name?: string;
|
|
38
|
+
app_identifier?: string;
|
|
39
|
+
payload: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
export interface Breadcrumb {
|
|
42
|
+
timestamp: string;
|
|
43
|
+
category: "log" | "app.lifecycle" | "error" | "manual";
|
|
44
|
+
message: string;
|
|
45
|
+
level: "debug" | "info" | "warn" | "error" | "fatal";
|
|
46
|
+
data?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,aAAa,GACb,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,eAAe,GACf,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;AAEvD,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,oBAAoB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,SAAS,CAAC;IACtB,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;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SDKEvent } from "./types.js";
|
|
2
|
+
export declare function initUploader(opts: {
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
token: string;
|
|
5
|
+
}): void;
|
|
6
|
+
export declare function stopUploader(): void;
|
|
7
|
+
export declare function setLoggingEnabled(enabled: boolean): void;
|
|
8
|
+
export declare function isLoggingEnabled(): boolean;
|
|
9
|
+
export declare function toIngestPayload(events: SDKEvent[]): object[];
|
|
10
|
+
export declare function flushNow(events: SDKEvent[]): Promise<void>;
|
|
11
|
+
export declare function flush(): Promise<void>;
|
|
12
|
+
export declare function setDeviceIdRef(id: string): void;
|
|
13
|
+
//# sourceMappingURL=uploader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAc3C,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK1E;AAED,wBAAgB,YAAY,IAAI,IAAI,CASnC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAgBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAK5D;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3C;AAkED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE/C"}
|
package/dist/uploader.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { removeById, peekAll } from "./queue.js";
|
|
2
|
+
let apiUrl = "";
|
|
3
|
+
let token = "";
|
|
4
|
+
let flushTimer = null;
|
|
5
|
+
let settingsTimer = null;
|
|
6
|
+
let loggingEnabled = true;
|
|
7
|
+
let uploading = false;
|
|
8
|
+
const FLUSH_INTERVAL = 10000;
|
|
9
|
+
const SETTINGS_POLL_INTERVAL = 60000;
|
|
10
|
+
export function initUploader(opts) {
|
|
11
|
+
apiUrl = opts.apiUrl;
|
|
12
|
+
token = opts.token;
|
|
13
|
+
startFlushTimer();
|
|
14
|
+
startSettingsPolling();
|
|
15
|
+
}
|
|
16
|
+
export function stopUploader() {
|
|
17
|
+
if (flushTimer !== null) {
|
|
18
|
+
clearTimeout(flushTimer);
|
|
19
|
+
flushTimer = null;
|
|
20
|
+
}
|
|
21
|
+
if (settingsTimer !== null) {
|
|
22
|
+
clearInterval(settingsTimer);
|
|
23
|
+
settingsTimer = null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function setLoggingEnabled(enabled) {
|
|
27
|
+
loggingEnabled = enabled;
|
|
28
|
+
}
|
|
29
|
+
export function isLoggingEnabled() {
|
|
30
|
+
return loggingEnabled;
|
|
31
|
+
}
|
|
32
|
+
function startFlushTimer() {
|
|
33
|
+
if (flushTimer !== null)
|
|
34
|
+
return;
|
|
35
|
+
const schedule = () => {
|
|
36
|
+
flushTimer = setTimeout(async () => {
|
|
37
|
+
flushTimer = null;
|
|
38
|
+
await flush();
|
|
39
|
+
schedule();
|
|
40
|
+
}, FLUSH_INTERVAL);
|
|
41
|
+
};
|
|
42
|
+
schedule();
|
|
43
|
+
}
|
|
44
|
+
export function toIngestPayload(events) {
|
|
45
|
+
return events.map((event) => {
|
|
46
|
+
const { id: _id, ...rest } = event;
|
|
47
|
+
return rest;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export function flushNow(events) {
|
|
51
|
+
return flushImmediately(events);
|
|
52
|
+
}
|
|
53
|
+
export async function flush() {
|
|
54
|
+
if (uploading)
|
|
55
|
+
return;
|
|
56
|
+
const events = peekAll();
|
|
57
|
+
if (events.length === 0)
|
|
58
|
+
return;
|
|
59
|
+
const toSend = events.length > 50 ? events.slice(0, 50) : events;
|
|
60
|
+
uploading = true;
|
|
61
|
+
try {
|
|
62
|
+
const response = await fetch(apiUrl + "/v1/ingest", {
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers: {
|
|
65
|
+
"Content-Type": "application/json",
|
|
66
|
+
"X-SDK-Token": token,
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify({ events: toIngestPayload(toSend) }),
|
|
69
|
+
});
|
|
70
|
+
if (response.ok) {
|
|
71
|
+
const ids = toSend.map((e) => e.id);
|
|
72
|
+
removeById(ids);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// keep events on failure
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
uploading = false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async function flushImmediately(events) {
|
|
83
|
+
if (events.length === 0)
|
|
84
|
+
return;
|
|
85
|
+
if (uploading)
|
|
86
|
+
return;
|
|
87
|
+
uploading = true;
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(apiUrl + "/v1/ingest", {
|
|
90
|
+
method: "POST",
|
|
91
|
+
headers: {
|
|
92
|
+
"Content-Type": "application/json",
|
|
93
|
+
"X-SDK-Token": token,
|
|
94
|
+
},
|
|
95
|
+
body: JSON.stringify({ events: toIngestPayload(events) }),
|
|
96
|
+
});
|
|
97
|
+
if (response.ok) {
|
|
98
|
+
const ids = events.map((e) => e.id);
|
|
99
|
+
removeById(ids);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// keep events on failure
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
uploading = false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function startSettingsPolling() {
|
|
110
|
+
if (settingsTimer !== null)
|
|
111
|
+
return;
|
|
112
|
+
pollDeviceSettings();
|
|
113
|
+
settingsTimer = setInterval(() => {
|
|
114
|
+
pollDeviceSettings();
|
|
115
|
+
}, SETTINGS_POLL_INTERVAL);
|
|
116
|
+
}
|
|
117
|
+
async function pollDeviceSettings() {
|
|
118
|
+
try {
|
|
119
|
+
const deviceId = getDeviceIdRef();
|
|
120
|
+
if (!deviceId || !apiUrl)
|
|
121
|
+
return;
|
|
122
|
+
const response = await fetch(apiUrl + "/v1/sdk/device-settings?device_id=" + encodeURIComponent(deviceId), {
|
|
123
|
+
method: "GET",
|
|
124
|
+
headers: {
|
|
125
|
+
"X-SDK-Token": token,
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
if (!response.ok)
|
|
129
|
+
return;
|
|
130
|
+
const body = await response.json().catch(() => null);
|
|
131
|
+
if (body && typeof body.logging_enabled === "boolean") {
|
|
132
|
+
loggingEnabled = body.logging_enabled;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// fail open
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
let deviceIdRef = "";
|
|
140
|
+
export function setDeviceIdRef(id) {
|
|
141
|
+
deviceIdRef = id;
|
|
142
|
+
}
|
|
143
|
+
function getDeviceIdRef() {
|
|
144
|
+
return deviceIdRef;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=uploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploader.js","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"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"}
|
package/dist/uuid.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../src/uuid.ts"],"names":[],"mappings":"AAAA,wBAAgB,IAAI,IAAI,MAAM,CAqB7B"}
|
package/dist/uuid.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function uuid() {
|
|
2
|
+
const bytes = new Uint8Array(16);
|
|
3
|
+
for (let i = 0; i < 16; i++) {
|
|
4
|
+
bytes[i] = Math.floor(Math.random() * 256);
|
|
5
|
+
}
|
|
6
|
+
bytes[6] = (bytes[6] & 15) | 64;
|
|
7
|
+
bytes[8] = (bytes[8] & 63) | 128;
|
|
8
|
+
const hex = Array.from(bytes)
|
|
9
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
10
|
+
.join("");
|
|
11
|
+
return (hex.slice(0, 8) +
|
|
12
|
+
"-" +
|
|
13
|
+
hex.slice(8, 12) +
|
|
14
|
+
"-" +
|
|
15
|
+
hex.slice(12, 16) +
|
|
16
|
+
"-" +
|
|
17
|
+
hex.slice(16, 20) +
|
|
18
|
+
"-" +
|
|
19
|
+
hex.slice(20));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=uuid.js.map
|
package/dist/uuid.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../src/uuid.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI;IAClB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAChC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CACL,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAChB,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACd,CAAC;AACJ,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vestara-inc/react-native",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "React Native SDK for Vestara",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"require": "./dist/index.js",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"test": "jest --runInBand"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@react-native-async-storage/async-storage": ">=1.21.0",
|
|
27
|
+
"react-native": ">=0.71.0"
|
|
28
|
+
},
|
|
29
|
+
"license": "Apache-2.0",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@jest/globals": "^29.7.0",
|
|
32
|
+
"@types/jest": "^29.5.14",
|
|
33
|
+
"@types/react-native": "^0.73.0",
|
|
34
|
+
"jest": "^29.7.0",
|
|
35
|
+
"ts-jest": "^29.1.0",
|
|
36
|
+
"typescript": "^5.0.0"
|
|
37
|
+
}
|
|
38
|
+
}
|