noibu-react-native 0.1.2 → 0.1.3
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/dist/api/clientConfig.d.ts +4 -5
- package/dist/api/clientConfig.js +13 -15
- package/dist/api/metroplexSocket.d.ts +155 -0
- package/dist/api/metroplexSocket.js +665 -814
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +8 -2
- package/dist/entry/init.d.ts +1 -1
- package/dist/entry/init.js +2 -2
- package/dist/monitors/appNavigationMonitor.js +3 -2
- package/dist/monitors/inputMonitor.js +5 -0
- package/dist/monitors/integrations/react-native-navigation-integration.d.ts +1 -2
- package/dist/pageVisit/pageVisit.js +5 -0
- package/dist/types/NavigationIntegration.d.ts +1 -2
- package/dist/types/globals.d.ts +2 -0
- package/dist/utils/function.d.ts +2 -3
- package/dist/utils/function.js +10 -9
- package/dist/utils/log.js +5 -3
- package/package.json +5 -4
package/dist/constants.d.ts
CHANGED
|
@@ -225,6 +225,10 @@ export declare function GET_METROPLEX_METRICS_URL(): string;
|
|
|
225
225
|
* gets the current env
|
|
226
226
|
*/
|
|
227
227
|
export declare function JS_ENV(): string;
|
|
228
|
+
/**
|
|
229
|
+
* gets the current env
|
|
230
|
+
*/
|
|
231
|
+
export declare function GET_DEVICE_ENV(): string;
|
|
228
232
|
export declare const METROPLEX_RETRY_FREQUENCY: 30000;
|
|
229
233
|
export declare const STACK_TRACE_SANITIZE_REGEXP: RegExp;
|
|
230
234
|
export declare const BLOCKLISTED_DOMAINS: {
|
package/dist/constants.js
CHANGED
|
@@ -315,7 +315,7 @@ const CONTENT_LENGTH = 'content-length';
|
|
|
315
315
|
* Gets the script id from the cookie object, returns default if cannot be found
|
|
316
316
|
*/
|
|
317
317
|
function GET_SCRIPT_ID() {
|
|
318
|
-
return "1.0.104-rn-sdk-0.1.
|
|
318
|
+
return "1.0.104-rn-sdk-0.1.3" ;
|
|
319
319
|
}
|
|
320
320
|
/**
|
|
321
321
|
*
|
|
@@ -421,6 +421,12 @@ function JS_ENV() {
|
|
|
421
421
|
return 'test';
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
|
+
/**
|
|
425
|
+
* gets the current env
|
|
426
|
+
*/
|
|
427
|
+
function GET_DEVICE_ENV() {
|
|
428
|
+
return "react-native-expo" ;
|
|
429
|
+
}
|
|
424
430
|
// gets the frequency at which the client resends the message that were not confirmed by metroplex
|
|
425
431
|
const METROPLEX_RETRY_FREQUENCY = 30000;
|
|
426
432
|
const STACK_TRACE_SANITIZE_REGEXP = /(nbuGlobalPromiseRejectWrapper|(hermes.*InternalBytecode\/InternalBytecode))/gi;
|
|
@@ -432,4 +438,4 @@ const BLOCKLISTED_DOMAINS = {
|
|
|
432
438
|
'cdn.noibu.com': true,
|
|
433
439
|
};
|
|
434
440
|
|
|
435
|
-
export { APP_NAVIGATION_EVENT_TYPE, BLOCKED_HTTP_HEADER_KEYS, BLOCKLISTED_DOMAINS, BLOCK_SOCKET_MESSAGE, BROWSER_ID_ATT_NAME, CLICK_EVENT_TYPE, CLIENT_LOCK_TIME_MINUTES, CLOSE_CONNECTION_FORCEFULLY, COLLECT_VER_ATT_NAME, CONN_COUNT_ATT_NAME, CONSOLE_FUNCTION_OVERRIDES, CONTENT_LENGTH, CONTENT_TYPE, CSS_CLASS_ATT_NAME, CURRENT_METRICS_VERSION, CURRENT_NOIBUJS_VERSION, CURRENT_PV_VERSION, CUSTOM_ERROR_EVENT_TYPE, CUSTOM_ID_NAME_TYPE, CUSTOM_ID_VALUE_TYPE, DEFAULT_STACK_FRAME_FIELD_VALUE, DEFAULT_WEBSITE_SUBDOMAIN_PATTERN, DID_CUT_PV_ATT_NAME, DID_CUT_VID_ATT_NAME, DID_START_VID_ATT_NAME, END_AT_ATT_NAME, ERROR_EVENT_ERROR_TYPE, ERROR_EVENT_TYPE, ERROR_EVENT_UNHANDLED_REJECTION_TYPE, ERROR_LOG_EVENT_ERROR_TYPE, ERROR_SOURCE_ATT_NAME, ERR_COUNT_EXPECTED_ATT_NAME, EVENT_ERROR_TYPE, EXP_VIDEO_LENGTH_ATT_NAME, FETCH_EXCEPTION_ERROR_TYPE, GET_MAX_METROPLEX_RECONNECTION_NUMBER, GET_METROPLEX_BASE_HTTP_URL, GET_METROPLEX_BASE_SOCKET_URL, GET_METROPLEX_CONSECUTIVE_CONNECTION_DELAY, GET_METROPLEX_METRICS_URL, GET_METROPLEX_POST_URL, GET_SCRIPT_ID, GQL_ERROR_ATT_NAME, GQL_ERROR_TYPE, GQL_EVENT_TYPE, HELP_CODE_ATT_NAME, HTMLID_ATT_NAME, HTTP_BODY_DROPPED_LENGTH_MSG, HTTP_BODY_DROPPED_TYPE_MSG, HTTP_BODY_NULL_STRING, HTTP_CODE_ATT_NAME, HTTP_COUNT_EXPECTED_ATT_NAME, HTTP_DATA_METROPLEX_TYPE, HTTP_DATA_PAYLOAD_ATT_NAME, HTTP_DATA_REQ_HEADERS_ATT_NAME, HTTP_DATA_RESP_HEADERS_ATT_NAME, HTTP_DATA_RESP_PAYLOAD_ATT_NAME, HTTP_EVENT_TYPE, HTTP_METHOD_ATT_NAME, HTTP_PII_BLOCKING_PATTERNS, HTTP_RESP_CODE_ATT_NAME, HTTP_RESP_LENGTH_ATT_NAME, HTTP_RESP_TIME_ATT_NAME, HUMAN_READABLE_CONTENT_TYPE_REGEX, IS_LAST_ATT_NAME, IS_NJS_VERSION_BETA, JS_ENV, JS_ERROR_ATT_NAME, JS_EVENT_TYPE, JS_STACK_FILE_ATT_NAME, JS_STACK_FRAMES_ATT_NAME, JS_STACK_MESSAGE_ATT_NAME, JS_STACK_METHOD_ATT_NAME, KEYBOARD_EVENT_TYPE, MAX_BEACON_PAYLOAD_SIZE, MAX_COLLECT_ERROR_LOG, MAX_CUSTOM_ERRORS_PER_PAGEVISIT, MAX_CUSTOM_IDS_PER_PAGEVISIT, MAX_FRAMES_IN_ARRAY, MAX_HTTP_DATA_EVENT_COUNT, MAX_HTTP_DATA_PAYLOAD_LENGTH, MAX_METROPLEX_CONNECTION_COUNT, MAX_METROPLEX_SOCKET_INNACTIVE_TIME, MAX_PAGEVISIT_EVENTS, MAX_PAGEVISIT_PARTS, MAX_PAGEVISIT_VISITED, MAX_STRING_LENGTH, MAX_TIME_FOR_UNSENT_DATA_MILLIS, META_DATA_METROPLEX_TYPE, METROPLEX_ERROR_ROUTE, METROPLEX_FRAG_ROUTE, METROPLEX_FULL_PV_ROUTE, METROPLEX_METRICS_ROUTE, METROPLEX_RETRY_FREQUENCY, METROPLEX_SOCKET_INSTANCE_ID_ATT_NAME, NOIBUJS_SDK_ADD_ERROR_FROM_JS_FMW_FUNCTION, NOIBUJS_SDK_ADD_ERROR_FUNCTION, NOIBUJS_SDK_ADD_ID_FUNCTION, NOIBUJS_SDK_REQUEST_HELP_CODE, NOIBU_BROWSER_ID_KYWRD, NOIBU_INPUT_URLS, NOIBU_LOCAL_STORAGE_TEST_KEY, NOIBU_STORED_PAGE_VISIT, OCCURRED_AT_ATT_NAME, OK_SOCKET_MESSAGE, ON_URL_ATT_NAME, PAGE_EVENTS_DOCUMENT, PAGE_EVENTS_WINDOW, PAGE_EVENT_TYPE, PAGE_VISIT_HTTP_DATA_ATT_NAME, PAGE_VISIT_INFORMATION_ATT_NAME, PAGE_VISIT_META_DATA_ATT_NAME, PAGE_VISIT_PART_ATT_NAME, PAGE_VISIT_VID_FRAG_ATT_NAME, PII_DIGIT_PATTERN, PII_EMAIL_PATTERN, PII_REDACTION_REPLACEMENT_STRING, PV_CLICKS_ATT_NAME, PV_EVENTS_ATT_NAME, PV_EXP_HTTP_DATA_SEQ_ATT_NAME, PV_EXP_PART_COUNTER_ATT_NAME, PV_EXP_VF_SEQ_ATT_NAME, PV_HTTP_PAYLOADS_COLLECTED_ATT_NAME, PV_HTTP_PAYLOADS_DROPPED_OVERSIZE_ATT_NAME, PV_HTTP_PAYLOADS_DROPPED_TYPE_ATT_NAME, PV_HTTP_REQUESTS_DROPPED_OVER_LIMIT, PV_ID_ATT_NAME, PV_METROPLEX_TYPE, PV_PART_COUNTER_ATT_NAME, PV_SEQ_ATT_NAME, PV_SEQ_NUM_RESET_TIME_MINUTES, REF_URL_ATT_NAME, REQUIRED_DATA_PROCESSING_URLS, RESPONSE_ERROR_TYPE, SCRIPT_ID_ATT_NAME, SCRIPT_INSTANCE_ID_ATT_NAME, SEQ_NUM_ATT_NAME, SEVERITY, SOCKET_INSTANCE_ID_ATT_NAME, SOURCE_ATT_NAME, STACK_TRACE_SANITIZE_REGEXP, STARTED_AT_ATT_NAME, STOP_STORING_PV_SOCKET_MESSAGE, STOP_STORING_VID_SOCKET_MESSAGE, TAGNAME_ATT_NAME, TEXT_ATT_NAME, TYPE_ATT_NAME, URL_ATT_NAME, USERSTEP_EVENT_TYPE, VER_ATT_NAME, VIDEO_CLICKS_ATT_NAME, VIDEO_METROPLEX_TYPE, VIDEO_PART_COUNT_ATT_NAME, WHITELIST_HTML_ID_TEXT_REGEX, WORK_REQUEST_ATT_NAME, WRAPPED_EXCEPTION_ERROR_TYPE, XML_HTTP_REQUEST_ERROR_TYPE };
|
|
441
|
+
export { APP_NAVIGATION_EVENT_TYPE, BLOCKED_HTTP_HEADER_KEYS, BLOCKLISTED_DOMAINS, BLOCK_SOCKET_MESSAGE, BROWSER_ID_ATT_NAME, CLICK_EVENT_TYPE, CLIENT_LOCK_TIME_MINUTES, CLOSE_CONNECTION_FORCEFULLY, COLLECT_VER_ATT_NAME, CONN_COUNT_ATT_NAME, CONSOLE_FUNCTION_OVERRIDES, CONTENT_LENGTH, CONTENT_TYPE, CSS_CLASS_ATT_NAME, CURRENT_METRICS_VERSION, CURRENT_NOIBUJS_VERSION, CURRENT_PV_VERSION, CUSTOM_ERROR_EVENT_TYPE, CUSTOM_ID_NAME_TYPE, CUSTOM_ID_VALUE_TYPE, DEFAULT_STACK_FRAME_FIELD_VALUE, DEFAULT_WEBSITE_SUBDOMAIN_PATTERN, DID_CUT_PV_ATT_NAME, DID_CUT_VID_ATT_NAME, DID_START_VID_ATT_NAME, END_AT_ATT_NAME, ERROR_EVENT_ERROR_TYPE, ERROR_EVENT_TYPE, ERROR_EVENT_UNHANDLED_REJECTION_TYPE, ERROR_LOG_EVENT_ERROR_TYPE, ERROR_SOURCE_ATT_NAME, ERR_COUNT_EXPECTED_ATT_NAME, EVENT_ERROR_TYPE, EXP_VIDEO_LENGTH_ATT_NAME, FETCH_EXCEPTION_ERROR_TYPE, GET_DEVICE_ENV, GET_MAX_METROPLEX_RECONNECTION_NUMBER, GET_METROPLEX_BASE_HTTP_URL, GET_METROPLEX_BASE_SOCKET_URL, GET_METROPLEX_CONSECUTIVE_CONNECTION_DELAY, GET_METROPLEX_METRICS_URL, GET_METROPLEX_POST_URL, GET_SCRIPT_ID, GQL_ERROR_ATT_NAME, GQL_ERROR_TYPE, GQL_EVENT_TYPE, HELP_CODE_ATT_NAME, HTMLID_ATT_NAME, HTTP_BODY_DROPPED_LENGTH_MSG, HTTP_BODY_DROPPED_TYPE_MSG, HTTP_BODY_NULL_STRING, HTTP_CODE_ATT_NAME, HTTP_COUNT_EXPECTED_ATT_NAME, HTTP_DATA_METROPLEX_TYPE, HTTP_DATA_PAYLOAD_ATT_NAME, HTTP_DATA_REQ_HEADERS_ATT_NAME, HTTP_DATA_RESP_HEADERS_ATT_NAME, HTTP_DATA_RESP_PAYLOAD_ATT_NAME, HTTP_EVENT_TYPE, HTTP_METHOD_ATT_NAME, HTTP_PII_BLOCKING_PATTERNS, HTTP_RESP_CODE_ATT_NAME, HTTP_RESP_LENGTH_ATT_NAME, HTTP_RESP_TIME_ATT_NAME, HUMAN_READABLE_CONTENT_TYPE_REGEX, IS_LAST_ATT_NAME, IS_NJS_VERSION_BETA, JS_ENV, JS_ERROR_ATT_NAME, JS_EVENT_TYPE, JS_STACK_FILE_ATT_NAME, JS_STACK_FRAMES_ATT_NAME, JS_STACK_MESSAGE_ATT_NAME, JS_STACK_METHOD_ATT_NAME, KEYBOARD_EVENT_TYPE, MAX_BEACON_PAYLOAD_SIZE, MAX_COLLECT_ERROR_LOG, MAX_CUSTOM_ERRORS_PER_PAGEVISIT, MAX_CUSTOM_IDS_PER_PAGEVISIT, MAX_FRAMES_IN_ARRAY, MAX_HTTP_DATA_EVENT_COUNT, MAX_HTTP_DATA_PAYLOAD_LENGTH, MAX_METROPLEX_CONNECTION_COUNT, MAX_METROPLEX_SOCKET_INNACTIVE_TIME, MAX_PAGEVISIT_EVENTS, MAX_PAGEVISIT_PARTS, MAX_PAGEVISIT_VISITED, MAX_STRING_LENGTH, MAX_TIME_FOR_UNSENT_DATA_MILLIS, META_DATA_METROPLEX_TYPE, METROPLEX_ERROR_ROUTE, METROPLEX_FRAG_ROUTE, METROPLEX_FULL_PV_ROUTE, METROPLEX_METRICS_ROUTE, METROPLEX_RETRY_FREQUENCY, METROPLEX_SOCKET_INSTANCE_ID_ATT_NAME, NOIBUJS_SDK_ADD_ERROR_FROM_JS_FMW_FUNCTION, NOIBUJS_SDK_ADD_ERROR_FUNCTION, NOIBUJS_SDK_ADD_ID_FUNCTION, NOIBUJS_SDK_REQUEST_HELP_CODE, NOIBU_BROWSER_ID_KYWRD, NOIBU_INPUT_URLS, NOIBU_LOCAL_STORAGE_TEST_KEY, NOIBU_STORED_PAGE_VISIT, OCCURRED_AT_ATT_NAME, OK_SOCKET_MESSAGE, ON_URL_ATT_NAME, PAGE_EVENTS_DOCUMENT, PAGE_EVENTS_WINDOW, PAGE_EVENT_TYPE, PAGE_VISIT_HTTP_DATA_ATT_NAME, PAGE_VISIT_INFORMATION_ATT_NAME, PAGE_VISIT_META_DATA_ATT_NAME, PAGE_VISIT_PART_ATT_NAME, PAGE_VISIT_VID_FRAG_ATT_NAME, PII_DIGIT_PATTERN, PII_EMAIL_PATTERN, PII_REDACTION_REPLACEMENT_STRING, PV_CLICKS_ATT_NAME, PV_EVENTS_ATT_NAME, PV_EXP_HTTP_DATA_SEQ_ATT_NAME, PV_EXP_PART_COUNTER_ATT_NAME, PV_EXP_VF_SEQ_ATT_NAME, PV_HTTP_PAYLOADS_COLLECTED_ATT_NAME, PV_HTTP_PAYLOADS_DROPPED_OVERSIZE_ATT_NAME, PV_HTTP_PAYLOADS_DROPPED_TYPE_ATT_NAME, PV_HTTP_REQUESTS_DROPPED_OVER_LIMIT, PV_ID_ATT_NAME, PV_METROPLEX_TYPE, PV_PART_COUNTER_ATT_NAME, PV_SEQ_ATT_NAME, PV_SEQ_NUM_RESET_TIME_MINUTES, REF_URL_ATT_NAME, REQUIRED_DATA_PROCESSING_URLS, RESPONSE_ERROR_TYPE, SCRIPT_ID_ATT_NAME, SCRIPT_INSTANCE_ID_ATT_NAME, SEQ_NUM_ATT_NAME, SEVERITY, SOCKET_INSTANCE_ID_ATT_NAME, SOURCE_ATT_NAME, STACK_TRACE_SANITIZE_REGEXP, STARTED_AT_ATT_NAME, STOP_STORING_PV_SOCKET_MESSAGE, STOP_STORING_VID_SOCKET_MESSAGE, TAGNAME_ATT_NAME, TEXT_ATT_NAME, TYPE_ATT_NAME, URL_ATT_NAME, USERSTEP_EVENT_TYPE, VER_ATT_NAME, VIDEO_CLICKS_ATT_NAME, VIDEO_METROPLEX_TYPE, VIDEO_PART_COUNT_ATT_NAME, WHITELIST_HTML_ID_TEXT_REGEX, WORK_REQUEST_ATT_NAME, WRAPPED_EXCEPTION_ERROR_TYPE, XML_HTTP_REQUEST_ERROR_TYPE };
|
package/dist/entry/init.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { CustomerConfig } from '../types/Config';
|
|
|
2
2
|
/**
|
|
3
3
|
* initilializes the script to start executing all of NJS features
|
|
4
4
|
*/
|
|
5
|
-
export default function globalInit(customerConfig: CustomerConfig): void
|
|
5
|
+
export default function globalInit(customerConfig: CustomerConfig): Promise<void>;
|
package/dist/entry/init.js
CHANGED
|
@@ -24,7 +24,7 @@ const urlConfig = {
|
|
|
24
24
|
/**
|
|
25
25
|
* initilializes the script to start executing all of NJS features
|
|
26
26
|
*/
|
|
27
|
-
function globalInit(customerConfig) {
|
|
27
|
+
async function globalInit(customerConfig) {
|
|
28
28
|
noibuLog('global init started');
|
|
29
29
|
// if the config url is invalid we block collect from executing
|
|
30
30
|
if (isInvalidURLConfig({ ...urlConfig, domain: customerConfig.domain })) {
|
|
@@ -39,7 +39,7 @@ function globalInit(customerConfig) {
|
|
|
39
39
|
const noibuErrorURL = `${urlConfig.metroplexHTTPBase}/${METROPLEX_ERROR_ROUTE}`;
|
|
40
40
|
// catch any errors that happened during initialization and send collect error
|
|
41
41
|
try {
|
|
42
|
-
ClientConfig.configureInstance({
|
|
42
|
+
await ClientConfig.configureInstance({
|
|
43
43
|
noibuErrorURL,
|
|
44
44
|
customerConfig,
|
|
45
45
|
});
|
|
@@ -14,8 +14,9 @@ class AppNavigationMonitor {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
this.onNavigation = this.onNavigation.bind(this);
|
|
16
16
|
try {
|
|
17
|
-
// eslint-disable-next-line global-require,@typescript-eslint/no-var-requires,import/no-extraneous-dependencies
|
|
18
|
-
const
|
|
17
|
+
// eslint-disable-next-line global-require,@typescript-eslint/no-var-requires,import/no-extraneous-dependencies,import/no-unresolved
|
|
18
|
+
const Navigation = require('react-native-navigation');
|
|
19
|
+
const rnNavigation = Navigation?.Navigation;
|
|
19
20
|
if (rnNavigation) {
|
|
20
21
|
new ReactNativeNavigationIntegration().register(rnNavigation, this.onNavigation);
|
|
21
22
|
}
|
|
@@ -2,6 +2,7 @@ import { PageVisit } from '../pageVisit/pageVisit.js';
|
|
|
2
2
|
import { APP_NAVIGATION_EVENT_TYPE, PAGE_EVENT_TYPE, MAX_TIME_FOR_UNSENT_DATA_MILLIS, ERROR_EVENT_TYPE, HTTP_EVENT_TYPE, KEYBOARD_EVENT_TYPE, USERSTEP_EVENT_TYPE } from '../constants.js';
|
|
3
3
|
import { timestampWrapper } from '../utils/date.js';
|
|
4
4
|
import { addSafeEventListener } from '../utils/eventlistener.js';
|
|
5
|
+
import { noibuLog } from '../utils/log.js';
|
|
5
6
|
|
|
6
7
|
/** @module InputMonitor */
|
|
7
8
|
|
|
@@ -80,6 +81,10 @@ class InputMonitor {
|
|
|
80
81
|
* @param {} type
|
|
81
82
|
*/
|
|
82
83
|
addEvent(event, type) {
|
|
84
|
+
noibuLog('addEvent', {
|
|
85
|
+
event,
|
|
86
|
+
type,
|
|
87
|
+
});
|
|
83
88
|
if (!(type in this.eventsToDebounce)) {
|
|
84
89
|
throw new Error(`Type: ${type} is not in eventsToDebounce`);
|
|
85
90
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { NavigationDelegate } from 'react-native-navigation/lib/dist/src/NavigationDelegate';
|
|
2
1
|
import { NavigationIntegration } from '../../types/NavigationIntegration';
|
|
3
2
|
/**
|
|
4
3
|
* react-native-navigation adapter
|
|
@@ -9,7 +8,7 @@ export declare class ReactNativeNavigationIntegration implements NavigationInteg
|
|
|
9
8
|
/**
|
|
10
9
|
* attaches provided listeners to the integration
|
|
11
10
|
*/
|
|
12
|
-
register(navigation:
|
|
11
|
+
register(navigation: any, onNavigation: (breadcrumbs: string[]) => void): void;
|
|
13
12
|
/**
|
|
14
13
|
* Listens to ComponentWillAppear events, keeps track of visited screens and
|
|
15
14
|
* pops them if the same page is visited to prevent cycles
|
|
@@ -3,6 +3,7 @@ import { TYPE_ATT_NAME, OCCURRED_AT_ATT_NAME, MAX_PAGEVISIT_EVENTS, MAX_PAGEVISI
|
|
|
3
3
|
import ClientConfig from '../api/clientConfig.js';
|
|
4
4
|
import MetroplexSocket from '../api/metroplexSocket.js';
|
|
5
5
|
import StoredMetrics from '../api/storedMetrics.js';
|
|
6
|
+
import { noibuLog } from '../utils/log.js';
|
|
6
7
|
|
|
7
8
|
/** @module Pagevisit */
|
|
8
9
|
|
|
@@ -64,6 +65,10 @@ class PageVisit {
|
|
|
64
65
|
* @param {} type
|
|
65
66
|
*/
|
|
66
67
|
addPageVisitEvent(eventObj, type) {
|
|
68
|
+
noibuLog('addPageVisitEvent', {
|
|
69
|
+
eventObj,
|
|
70
|
+
type,
|
|
71
|
+
});
|
|
67
72
|
const id = this._addPageVisitEvent(eventObj, type);
|
|
68
73
|
this._sendPageVisitMessage();
|
|
69
74
|
return id;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { NavigationDelegate } from 'react-native-navigation/lib/dist/src/NavigationDelegate';
|
|
2
1
|
/**
|
|
3
2
|
* interface enforces constructor signature
|
|
4
3
|
*/
|
|
5
4
|
export interface NavigationIntegration {
|
|
6
|
-
register(navigation:
|
|
5
|
+
register(navigation: any, onNavigation: (breadcrumbs: string[]) => void): void;
|
|
7
6
|
}
|
package/dist/types/globals.d.ts
CHANGED
package/dist/utils/function.d.ts
CHANGED
|
@@ -48,9 +48,8 @@ export declare function makeRequest(method: string, url: string, data: unknown,
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function isValidURL(str: string): boolean;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @returns {Promise<string>}
|
|
51
|
+
* Fakes the user agent retrieval, since there are no good libraries that support both expo and plain RN
|
|
52
|
+
* caches the result for the session
|
|
54
53
|
*/
|
|
55
54
|
export declare function getUserAgent(): Promise<string>;
|
|
56
55
|
/**
|
package/dist/utils/function.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
2
|
import { parseStack } from './stacktrace-parser.js';
|
|
3
3
|
import { MAX_STRING_LENGTH, MAX_BEACON_PAYLOAD_SIZE, REQUIRED_DATA_PROCESSING_URLS, PII_EMAIL_PATTERN, PII_REDACTION_REPLACEMENT_STRING, PII_DIGIT_PATTERN, DEFAULT_STACK_FRAME_FIELD_VALUE } from '../constants.js';
|
|
4
4
|
import { noibuLog } from './log.js';
|
|
5
5
|
import { unwrapNoibuWrapped } from './object.js';
|
|
6
6
|
|
|
7
|
-
/** @module Functions */
|
|
8
7
|
/**
|
|
9
8
|
* Returns a stack trace frame with default filed values
|
|
10
9
|
*/
|
|
@@ -188,20 +187,22 @@ function isValidURL(str) {
|
|
|
188
187
|
}
|
|
189
188
|
let userAgentCache = '';
|
|
190
189
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* @returns {Promise<string>}
|
|
190
|
+
* Fakes the user agent retrieval, since there are no good libraries that support both expo and plain RN
|
|
191
|
+
* caches the result for the session
|
|
194
192
|
*/
|
|
195
193
|
async function getUserAgent() {
|
|
196
194
|
if (userAgentCache) {
|
|
197
195
|
return userAgentCache;
|
|
198
196
|
}
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
noibuLog('getUserAgent start');
|
|
198
|
+
if (Platform.OS === 'android') {
|
|
199
|
+
const { Brand, Model, Release } = Platform.constants;
|
|
200
|
+
userAgentCache = `Mozilla/5.0 (Linux; Android ${Release}; ${Brand} ${Model}; React Native ${Platform.Version}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36`;
|
|
201
201
|
}
|
|
202
|
-
|
|
203
|
-
userAgentCache =
|
|
202
|
+
else if (Platform.OS === 'ios') {
|
|
203
|
+
userAgentCache = `Mozilla/5.0 (iPhone; CPU iPhone OS ${Platform.constants.osVersion} like Mac OS X; React Native ${Platform.Version}) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1`;
|
|
204
204
|
}
|
|
205
|
+
noibuLog('getUserAgent end', { userAgentCache });
|
|
205
206
|
return userAgentCache;
|
|
206
207
|
}
|
|
207
208
|
/**
|
package/dist/utils/log.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/* eslint-disable no-console,@typescript-eslint/no-empty-function */
|
|
2
2
|
/** no operation */
|
|
3
|
+
const noop = () => { };
|
|
3
4
|
/**
|
|
4
5
|
* checks if was overridden and calls original console function
|
|
5
6
|
*/
|
|
6
7
|
const getConsoleMethod = (ogProp) => {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
{
|
|
9
|
+
return noop;
|
|
10
|
+
}
|
|
9
11
|
};
|
|
10
12
|
/**
|
|
11
13
|
* log with level = info
|
|
12
14
|
*/
|
|
13
|
-
const noibuLog = (...msgs) => getConsoleMethod(
|
|
15
|
+
const noibuLog = (...msgs) => getConsoleMethod()('Noibu', ...msgs);
|
|
14
16
|
|
|
15
17
|
export { noibuLog };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "noibu-react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"targetNjsVersion": "1.0.104",
|
|
5
5
|
"description": "React-Native SDK for NoibuJS to collect errors in React-Native applications",
|
|
6
6
|
"main": "dist/entry/index.js",
|
|
@@ -21,14 +21,15 @@
|
|
|
21
21
|
"lint_output": "eslint src -c .eslintrc.json --ext js,ts,jsx,tsx -f json > eslint_report.json",
|
|
22
22
|
"codecov": "codecov"
|
|
23
23
|
},
|
|
24
|
-
"
|
|
25
|
-
"react-native-navigation":
|
|
24
|
+
"peerDependenciesMeta": {
|
|
25
|
+
"react-native-navigation": {
|
|
26
|
+
"optional": true
|
|
27
|
+
}
|
|
26
28
|
},
|
|
27
29
|
"dependencies": {
|
|
28
30
|
"@react-native-async-storage/async-storage": "^1.19.0",
|
|
29
31
|
"react": ">=16.11.0",
|
|
30
32
|
"react-native": ">=0.63.0",
|
|
31
|
-
"react-native-device-info": "^10.6.0",
|
|
32
33
|
"react-native-url-polyfill": "^1.3.0",
|
|
33
34
|
"react-native-uuid": "^2.0.1"
|
|
34
35
|
},
|