noibu-react-native 0.2.6 → 0.2.8

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.
Files changed (114) hide show
  1. package/README.md +15 -15
  2. package/android/build.gradle +1 -1
  3. package/dist/{src/api/clientConfig.d.ts → api/ClientConfig.d.ts} +19 -20
  4. package/dist/api/{clientConfig.js → ClientConfig.js} +82 -63
  5. package/dist/{src/api/helpCode.d.ts → api/HelpCode.d.ts} +3 -10
  6. package/dist/api/{helpCode.js → HelpCode.js} +8 -14
  7. package/dist/api/InputManager.d.ts +39 -0
  8. package/dist/api/InputManager.js +156 -0
  9. package/dist/{src/api/metroplexSocket.d.ts → api/MetroplexSocket.d.ts} +33 -38
  10. package/dist/api/{metroplexSocket.js → MetroplexSocket.js} +190 -178
  11. package/dist/{src/api/storedMetrics.d.ts → api/StoredMetrics.d.ts} +10 -20
  12. package/dist/api/StoredMetrics.js +158 -0
  13. package/dist/{src/api/storedPageVisit.d.ts → api/StoredPageVisit.d.ts} +11 -8
  14. package/dist/api/{storedPageVisit.js → StoredPageVisit.js} +62 -48
  15. package/dist/const_matchers.js +1 -5
  16. package/dist/constants.d.ts +48 -0
  17. package/dist/constants.js +15 -397
  18. package/dist/{src/entry → entry}/index.d.ts +5 -6
  19. package/dist/entry/index.js +3 -4
  20. package/dist/entry/init.d.ts +8 -0
  21. package/dist/entry/init.js +34 -19
  22. package/dist/monitors/AppNavigationMonitor.d.ts +10 -0
  23. package/dist/monitors/AppNavigationMonitor.js +19 -19
  24. package/dist/monitors/AppNavigationMonitor.test.d.ts +1 -0
  25. package/dist/{src/monitors → monitors}/BaseMonitor.d.ts +5 -5
  26. package/dist/monitors/BaseMonitor.js +9 -4
  27. package/dist/monitors/BaseMonitor.test.d.ts +1 -0
  28. package/dist/{src/monitors → monitors}/ClickMonitor.d.ts +10 -13
  29. package/dist/monitors/ClickMonitor.js +72 -76
  30. package/dist/monitors/ClickMonitor.test.d.ts +1 -0
  31. package/dist/{src/monitors → monitors}/ErrorMonitor.d.ts +4 -28
  32. package/dist/monitors/ErrorMonitor.js +45 -55
  33. package/dist/{src/monitors → monitors}/KeyboardInputMonitor.d.ts +1 -3
  34. package/dist/monitors/KeyboardInputMonitor.js +13 -11
  35. package/dist/{src/monitors → monitors}/PageMonitor.d.ts +1 -1
  36. package/dist/monitors/PageMonitor.js +25 -2
  37. package/dist/{src/monitors → monitors}/RequestMonitor.d.ts +9 -29
  38. package/dist/monitors/RequestMonitor.js +46 -57
  39. package/dist/monitors/http-tools/GqlErrorValidator.d.ts +35 -0
  40. package/dist/monitors/http-tools/GqlErrorValidator.js +42 -70
  41. package/dist/{src/monitors → monitors}/http-tools/HTTPDataBundler.d.ts +9 -15
  42. package/dist/monitors/http-tools/HTTPDataBundler.js +74 -67
  43. package/dist/monitors/integrations/ReactNativeNavigationIntegration.d.ts +17 -0
  44. package/dist/monitors/integrations/{react-native-navigation-integration.js → ReactNativeNavigationIntegration.js} +15 -12
  45. package/dist/{src/pageVisit → pageVisit}/EventDebouncer.d.ts +9 -10
  46. package/dist/pageVisit/EventDebouncer.js +43 -74
  47. package/dist/pageVisit/HttpEventManager.d.ts +14 -0
  48. package/dist/pageVisit/HttpEventManager.js +88 -0
  49. package/dist/pageVisit/PageVisitManager.d.ts +31 -0
  50. package/dist/pageVisit/PageVisitManager.js +99 -0
  51. package/dist/pageVisit/pageVisitEventError.d.ts +12 -0
  52. package/dist/pageVisit/pageVisitEventError.js +170 -280
  53. package/dist/{src/react → react}/ErrorBoundary.d.ts +4 -9
  54. package/dist/react/ErrorBoundary.js +3 -6
  55. package/dist/{src/sessionRecorder/sessionRecorder.d.ts → sessionRecorder/SessionRecorder.d.ts} +7 -17
  56. package/dist/sessionRecorder/{sessionRecorder.js → SessionRecorder.js} +60 -71
  57. package/dist/{src/sessionRecorder → sessionRecorder}/nativeSessionRecorderSubscription.d.ts +4 -6
  58. package/dist/sessionRecorder/nativeSessionRecorderSubscription.js +3 -5
  59. package/dist/{src/storage/rnStorageProvider.d.ts → storage/RNStorageProvider.d.ts} +4 -8
  60. package/dist/storage/{rnStorageProvider.js → RNStorageProvider.js} +3 -7
  61. package/dist/{src/storage/storage.d.ts → storage/Storage.d.ts} +8 -18
  62. package/dist/storage/{storage.js → Storage.js} +17 -30
  63. package/dist/{src/storage/storageProvider.d.ts → storage/StorageProvider.d.ts} +5 -8
  64. package/dist/storage/{storageProvider.js → StorageProvider.js} +7 -8
  65. package/dist/types/NavigationIntegration.d.ts +1 -1
  66. package/dist/utils/date.d.ts +7 -0
  67. package/dist/utils/date.js +41 -51
  68. package/dist/utils/eventlistener.js +6 -14
  69. package/dist/{src/utils → utils}/function.d.ts +13 -43
  70. package/dist/utils/function.js +42 -113
  71. package/dist/utils/log.d.ts +4 -0
  72. package/dist/utils/log.js +2 -4
  73. package/dist/{src/utils → utils}/object.d.ts +10 -8
  74. package/dist/utils/object.js +12 -12
  75. package/dist/{src/utils → utils}/performance.d.ts +1 -1
  76. package/dist/utils/piiRedactor.js +31 -3
  77. package/dist/utils/stacktrace-parser.d.ts +8 -0
  78. package/dist/utils/stacktrace-parser.js +29 -21
  79. package/dist/utils/stacktrace-parser.test.d.ts +1 -0
  80. package/package.json +14 -14
  81. package/dist/api/inputManager.js +0 -227
  82. package/dist/api/storedMetrics.js +0 -198
  83. package/dist/pageVisit/pageVisit.js +0 -181
  84. package/dist/pageVisit/pageVisitEventHTTP.js +0 -98
  85. package/dist/pageVisit/userStep.js +0 -20
  86. package/dist/src/api/inputManager.d.ts +0 -87
  87. package/dist/src/constants.d.ts +0 -290
  88. package/dist/src/entry/init.d.ts +0 -5
  89. package/dist/src/monitors/AppNavigationMonitor.d.ts +0 -18
  90. package/dist/src/monitors/http-tools/GqlErrorValidator.d.ts +0 -59
  91. package/dist/src/monitors/integrations/react-native-navigation-integration.d.ts +0 -20
  92. package/dist/src/pageVisit/pageVisit.d.ts +0 -52
  93. package/dist/src/pageVisit/pageVisitEventError.d.ts +0 -15
  94. package/dist/src/pageVisit/pageVisitEventHTTP.d.ts +0 -25
  95. package/dist/src/pageVisit/userStep.d.ts +0 -5
  96. package/dist/src/utils/date.d.ts +0 -6
  97. package/dist/src/utils/log.d.ts +0 -4
  98. package/dist/src/utils/stacktrace-parser.d.ts +0 -7
  99. package/dist/types/Config.d.ts +0 -31
  100. package/dist/types/Metroplex.types.d.ts +0 -73
  101. package/dist/types/PageVisit.types.d.ts +0 -8
  102. package/dist/types/PageVisitErrors.types.d.ts +0 -114
  103. package/dist/types/PageVisitEvents.types.d.ts +0 -91
  104. package/dist/types/PageVisitMetrics.types.d.ts +0 -27
  105. package/dist/types/Storage.d.ts +0 -14
  106. package/dist/types/StoredPageVisit.types.d.ts +0 -11
  107. package/dist/types/WrappedObjects.d.ts +0 -6
  108. /package/dist/{src/api/clientConfig.test.d.ts → api/ClientConfig.test.d.ts} +0 -0
  109. /package/dist/{src/monitors/BaseMonitor.test.d.ts → api/MetroplexSocket.test.d.ts} +0 -0
  110. /package/dist/{src/const_matchers.d.ts → const_matchers.d.ts} +0 -0
  111. /package/dist/{src/sessionRecorder → sessionRecorder}/types.d.ts +0 -0
  112. /package/dist/{src/utils → utils}/eventlistener.d.ts +0 -0
  113. /package/dist/{src/utils → utils}/piiRedactor.d.ts +0 -0
  114. /package/dist/{src/utils → utils}/polyfills.d.ts +0 -0
@@ -1,18 +0,0 @@
1
- import { Monitor, Singleton } from './BaseMonitor';
2
- /**
3
- * Attaches corresponding listener to the passed navigation integration
4
- */
5
- export declare class AppNavigationMonitor extends Singleton implements Monitor {
6
- /**
7
- * Main method for starting the monitoring
8
- */
9
- monitor(): void;
10
- /**
11
- * handler for updating navigation breadcrumbs and notifying metro of location change
12
- */
13
- private static onNavigation;
14
- /**
15
- * Called when the event needs to be emitted
16
- */
17
- private static reportLocationChange;
18
- }
@@ -1,59 +0,0 @@
1
- /**
2
- * Try detecting GraphQL errors from http response
3
- */
4
- export default class GqlErrorValidator {
5
- /**
6
- * Retrieves GQL error object based on fetch request/response
7
- */
8
- static fromFetch(url: string, options: RequestInit | undefined, request: Request | undefined, response: Response): Promise<unknown[]>;
9
- /**
10
- * Retrieves GQL error object based on XHR object
11
- */
12
- static fromXhr(url: string, xhr: unknown): Promise<unknown[]>;
13
- /**
14
- * Try safely parse a string and return null if fails
15
- */
16
- static _parseJsonSafely(content: string): any;
17
- /**
18
- * Try to get content type for fetch arguments
19
- */
20
- static _getContentTypeFromFetchArguments(options?: RequestInit, request?: Request): string;
21
- /**
22
- * Checks if request is aborted
23
- * If it has been aborted we are not able to consume the response
24
- */
25
- static _isRequestAborted(options?: RequestInit, request?: RequestInit): boolean;
26
- /**
27
- * Determines if request should be processed
28
- */
29
- static _shouldHandleRequest(url: string, contentType?: string | null): boolean;
30
- /**
31
- * Sanitizes payload object
32
- */
33
- static _validate(data: unknown, validationIssues: string[]): unknown[];
34
- /**
35
- * Sanitizes message object
36
- */
37
- static _validateMessage(error: object): void;
38
- /**
39
- * Sanitizes extensions object
40
- * @param {any} error
41
- */
42
- static _validateExtensions(error: any): void;
43
- /**
44
- * Sanitizes locations object
45
- */
46
- static _validateLocations(error: object, validationIssues: string[]): void;
47
- /**
48
- * Sanitizes path object
49
- */
50
- static _validatePath(error: object, validationIssues: string[]): void;
51
- /**
52
- * Posts error
53
- */
54
- static _postError(message: unknown): void;
55
- /**
56
- * Posts issue found during object sanitization
57
- */
58
- static _postValidationIssues(validationIssues: string[]): void;
59
- }
@@ -1,20 +0,0 @@
1
- import { NavigationIntegration } from '../../../types/NavigationIntegration';
2
- import { NavigationRoot } from 'react-native-navigation/lib/dist/src/Navigation';
3
- /**
4
- * react-native-navigation adapter
5
- */
6
- export declare class ReactNativeNavigationIntegration implements NavigationIntegration {
7
- private stack;
8
- private stackPointers;
9
- /**
10
- * attaches provided listeners to the integration
11
- */
12
- register(navigation: NavigationRoot, onNavigation: (breadcrumbs: string[]) => void): void;
13
- /**
14
- * Listens to ComponentWillAppear events, keeps track of visited screens and
15
- * pops them if the same page is visited to prevent cycles
16
- * @param onNavigation
17
- * @private
18
- */
19
- private getListener;
20
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * Singleton class to hold all the information
3
- * about the gathered errors throught the session
4
- */
5
- export class PageVisit {
6
- /**
7
- * creates a PV object
8
- */
9
- static configureInstance(): void;
10
- /** gets the singleton instance
11
- * @returns {PageVisit}
12
- */
13
- static getInstance(): PageVisit;
14
- /**
15
- * Creates a page visit frag from an events array and part counter. Appends
16
- * the end time field and returns the frag
17
- * @param {} pvEvents
18
- * @param {} partCounter
19
- */
20
- static makePageVisitFrag(pvEvents: any, partCounter: any): import("../../types/Metroplex.types").PageVisitFrag | import("../../types/Metroplex.types").VideoFrag;
21
- partCounter: number;
22
- pvMap: {};
23
- pvEventLength: number;
24
- visibilityChangedCounter: number;
25
- totalPvEventLength: number;
26
- inDebounceHandle: number;
27
- isInAcceleratedPvPostMode: boolean;
28
- /** adds page visit events into the current page visit map and then sends a page visit message
29
- * @param {} eventObjects
30
- * @param {} type
31
- */
32
- addPageVisitEvents(eventObjects: any, type: any): void;
33
- /**
34
- * adds the page visit event into the current page visit map and then sends a page visit message
35
- * returns the the key to access this event in the map
36
- * @param {} eventObj
37
- * @param {} type
38
- */
39
- addPageVisitEvent(eventObj: any, type: any): string | number[];
40
- /**
41
- * adds a new page visit event into the current page visit map and returns the
42
- * the key to access this event in the map
43
- * @param {} eventObj
44
- * @param {} type
45
- */
46
- _addPageVisitEvent(eventObj: any, type: any): string | number[];
47
- /**
48
- * _sendPageVisitMessage will reset the buffer and post the current
49
- * content to metroplex
50
- */
51
- _sendPageVisitMessage(): void;
52
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * gets the onURL of a string, defaulting to the location of the webpage
3
- */
4
- export function getOnURL(realOnURL: any): string;
5
- /**
6
- * determines if an error is a collect error
7
- * @param {} pvError
8
- */
9
- export function isErrorCollectedByNoibu(pvError: any): boolean;
10
- /** Saves the error to the ErrorQueue
11
- * @param {} type
12
- * @param {} payload
13
- * @param {} [httpDataSeqNum]
14
- */
15
- export function saveErrorToPagevisit(type: any, payload: any, httpDataSeqNum?: any): void;
@@ -1,25 +0,0 @@
1
- import { HTTPDataBundle, PVEventHTTPPayload } from '../../types/PageVisitEvents.types';
2
- /**
3
- * Determines if a response is a failure
4
- */
5
- export declare function isHttpCodeFailure(code: unknown): boolean;
6
- /** Class representing a PageVisitEventHTTP */
7
- export declare class PageVisitEventHTTP {
8
- httpEvent: PVEventHTTPPayload;
9
- httpData: HTTPDataBundle | null;
10
- isGqlError: boolean;
11
- /**
12
- * Creates an instance of the http event for the pv
13
- */
14
- constructor(httpEvent: Partial<PVEventHTTPPayload>, httpData: HTTPDataBundle | null, isGqlError?: boolean);
15
- /** Saves the HTTP event to the pageVisit Queue */
16
- saveHTTPEvent(): void;
17
- /**
18
- * Checks if sending data is allowed based on the HTTP status code and count.
19
- * status - The HTTP status code to evaluate.
20
- * count - The count of events to consider.
21
- * isGqlError - Whether the context is considered as a GQL error.
22
- * Returns `true` if sending data is allowed, `false` otherwise.
23
- */
24
- static isSendAllowed(status: number, count: number, isGqlError?: boolean): boolean;
25
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * updates the payload of a user step in order to stringify the css class
3
- * @param {} payload
4
- */
5
- export function updatePayload(payload: any): any;
@@ -1,6 +0,0 @@
1
- /** Checks to see if the necessary Date functions that we use have been overwritten */
2
- export function isDateOverwritten(): boolean;
3
- /** Timestamp wrapper to properly handle timestamps
4
- * @param {} timestamp
5
- */
6
- export function timestampWrapper(timestamp: any): any;
@@ -1,4 +0,0 @@
1
- /**
2
- * log with level = info
3
- */
4
- export declare const noibuLog: Console['log'];
@@ -1,7 +0,0 @@
1
- export declare interface RawStackFrame {
2
- file: string;
3
- line?: number;
4
- column?: number;
5
- mname: string;
6
- }
7
- export declare function parseStack(stackString: string): RawStackFrame[];
@@ -1,31 +0,0 @@
1
- import { ATTRIBUTE_SELECTORS_ATT_NAME, BROWSER_ID_KEY, CLIENT_UNLOCK_TIME_KEY, CURRENT_PAGE_VISIT_COUNT_KEY, DISABLED_STATUS_KEY, HELP_CODE_EVENT_NAME, HTTP_DATA_COLLECTION_FLAG_NAME, HTTP_DATA_PAYLOAD_URL_REGEXES_FLAG_NAME, LAST_ACTIVE_TIME_KEY, PAGE_VISIT_ID_KEY, POST_METRICS_EVENT_NAME, WIN_BLOCKED_SELECTOR_ATT_NAME, WIN_NJS_VERSION_ATT_NAME, WIN_SCRIPT_ID_ATT_NAME } from '../src/constants';
2
- export interface StoredConfig {
3
- [BROWSER_ID_KEY]: string;
4
- [LAST_ACTIVE_TIME_KEY]?: Date;
5
- [PAGE_VISIT_ID_KEY]?: string;
6
- [CURRENT_PAGE_VISIT_COUNT_KEY]: number;
7
- [CLIENT_UNLOCK_TIME_KEY]?: Date;
8
- [DISABLED_STATUS_KEY]: boolean;
9
- }
10
- export type UrlConfig = {
11
- metroplexSocketBase: string;
12
- metroplexHTTPBase: string;
13
- domain: string;
14
- };
15
- export interface CustomerConfig {
16
- blockedElements?: NoibuConfig[typeof WIN_BLOCKED_SELECTOR_ATT_NAME];
17
- listOfUrlsToCollectHttpDataFrom?: NoibuConfig[typeof HTTP_DATA_PAYLOAD_URL_REGEXES_FLAG_NAME];
18
- enableHttpDataCollection?: NoibuConfig[typeof HTTP_DATA_COLLECTION_FLAG_NAME];
19
- domain: UrlConfig['domain'];
20
- }
21
- export interface NoibuConfig {
22
- [WIN_BLOCKED_SELECTOR_ATT_NAME]: string;
23
- [WIN_SCRIPT_ID_ATT_NAME]: string;
24
- [WIN_NJS_VERSION_ATT_NAME]: string;
25
- [ATTRIBUTE_SELECTORS_ATT_NAME]: string;
26
- [POST_METRICS_EVENT_NAME]: string;
27
- [HELP_CODE_EVENT_NAME]: string;
28
- [HTTP_DATA_COLLECTION_FLAG_NAME]: string;
29
- [HTTP_DATA_PAYLOAD_URL_REGEXES_FLAG_NAME]: string[];
30
- domain: string;
31
- }
@@ -1,73 +0,0 @@
1
- import { BLOCK_SOCKET_MESSAGE, BROWSER_ID_ATT_NAME, CLOSE_CONNECTION_FORCEFULLY, COLLECT_VER_ATT_NAME, CONN_COUNT_ATT_NAME, CSS_URLS_ATT_NAME, CUSTOM_ID_NAME_TYPE, CUSTOM_ID_VALUE_TYPE, END_AT_ATT_NAME, HELP_CODE_ATT_NAME, HTTP_DATA_METROPLEX_TYPE, IS_LAST_ATT_NAME, LANG_ATT_NAME, LENGTH_ATT_NAME, META_DATA_METROPLEX_TYPE, METROPLEX_SOCKET_INSTANCE_ID_ATT_NAME, OK_SOCKET_MESSAGE, ON_URL_ATT_NAME, 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, PV_EVENTS_ATT_NAME, PV_ID_ATT_NAME, PV_METROPLEX_TYPE, PV_PART_COUNTER_ATT_NAME, PV_SEQ_ATT_NAME, REF_URL_ATT_NAME, SCRIPT_ID_ATT_NAME, SCRIPT_INSTANCE_ID_ATT_NAME, SEQ_NUM_ATT_NAME, SOCKET_INSTANCE_ID_ATT_NAME, STARTED_AT_ATT_NAME, STOP_STORING_PV_SOCKET_MESSAGE, STOP_STORING_VID_SOCKET_MESSAGE, VIDEO_FRAG_ATT_NAME, VIDEO_METROPLEX_TYPE, VIDEO_RECORDER_ATT_NAME, WORK_REQUEST_ATT_NAME } from '../src/constants';
2
- import { HTTPDataBundle, PVEventMessage } from './PageVisitEvents.types';
3
- export interface PageVisitInfo {
4
- [BROWSER_ID_ATT_NAME]: string;
5
- [PV_ID_ATT_NAME]: string;
6
- [VIDEO_METROPLEX_TYPE]: number;
7
- [SCRIPT_ID_ATT_NAME]: string;
8
- [SCRIPT_INSTANCE_ID_ATT_NAME]: string;
9
- [METROPLEX_SOCKET_INSTANCE_ID_ATT_NAME]: string;
10
- [SOCKET_INSTANCE_ID_ATT_NAME]: string;
11
- [PV_SEQ_ATT_NAME]: number;
12
- [IS_LAST_ATT_NAME]: boolean;
13
- [CONN_COUNT_ATT_NAME]: number;
14
- [ON_URL_ATT_NAME]: string;
15
- [REF_URL_ATT_NAME]: string;
16
- [STARTED_AT_ATT_NAME]: string;
17
- [COLLECT_VER_ATT_NAME]: number;
18
- [LANG_ATT_NAME]?: string;
19
- [VIDEO_RECORDER_ATT_NAME]: string;
20
- }
21
- export interface OutboundMessageTypeMap {
22
- [META_DATA_METROPLEX_TYPE]: MetadataMessagePayload;
23
- [WORK_REQUEST_ATT_NAME]: WorkRequestPayload;
24
- [PV_METROPLEX_TYPE]: PageVisitPartPayload;
25
- [HTTP_DATA_METROPLEX_TYPE]: HttpDataPayload;
26
- [VIDEO_METROPLEX_TYPE]: VideoPartPayload;
27
- [PAGE_VISIT_INFORMATION_ATT_NAME]: PageVisitInfo;
28
- }
29
- export type OutboundMessageType = keyof OutboundMessageTypeMap;
30
- export type MetroMessagePayloadProps = typeof PAGE_VISIT_PART_ATT_NAME | typeof PAGE_VISIT_VID_FRAG_ATT_NAME | typeof PAGE_VISIT_HTTP_DATA_ATT_NAME | typeof PAGE_VISIT_META_DATA_ATT_NAME;
31
- export interface MetadataMessagePayload {
32
- [PAGE_VISIT_META_DATA_ATT_NAME]: {
33
- [CUSTOM_ID_VALUE_TYPE]: string;
34
- [CUSTOM_ID_NAME_TYPE]: string;
35
- };
36
- }
37
- export interface WorkRequestPayload {
38
- [WORK_REQUEST_ATT_NAME]: typeof HELP_CODE_ATT_NAME;
39
- }
40
- export interface PageVisitPartPayload {
41
- [PAGE_VISIT_PART_ATT_NAME]: PageVisitFrag;
42
- }
43
- export interface PageVisitFrag {
44
- [PV_EVENTS_ATT_NAME]: PVEventMessage[];
45
- [PV_PART_COUNTER_ATT_NAME]: number;
46
- [END_AT_ATT_NAME]?: string;
47
- [SEQ_NUM_ATT_NAME]?: number;
48
- }
49
- export interface HttpDataPayload {
50
- [PAGE_VISIT_HTTP_DATA_ATT_NAME]: HTTPDataBundle;
51
- }
52
- export interface VideoPartPayload {
53
- [PAGE_VISIT_VID_FRAG_ATT_NAME]: VideoFrag;
54
- }
55
- export interface VideoFrag {
56
- [VIDEO_FRAG_ATT_NAME]: string;
57
- [LENGTH_ATT_NAME]: number;
58
- [PV_SEQ_ATT_NAME]: number;
59
- [CSS_URLS_ATT_NAME]: string[];
60
- [END_AT_ATT_NAME]?: string;
61
- }
62
- export interface CompletePageVisit {
63
- [PAGE_VISIT_VID_FRAG_ATT_NAME]: VideoFrag[];
64
- [PAGE_VISIT_INFORMATION_ATT_NAME]: PageVisitInfo;
65
- [PAGE_VISIT_PART_ATT_NAME]: PageVisitFrag[];
66
- }
67
- export interface SlidingMessage<T extends OutboundMessageType = OutboundMessageType> {
68
- type: T;
69
- payload: OutboundMessageTypeMap[T];
70
- }
71
- export interface InboundMessageType {
72
- data?: typeof STOP_STORING_VID_SOCKET_MESSAGE | typeof STOP_STORING_PV_SOCKET_MESSAGE | typeof BLOCK_SOCKET_MESSAGE | typeof CLOSE_CONNECTION_FORCEFULLY | typeof OK_SOCKET_MESSAGE | string;
73
- }
@@ -1,8 +0,0 @@
1
- import { UserStepEventPayload } from './PageVisitEvents.types';
2
- /**
3
- * Helper class to improve typing in methods that use anonymous classes: Keyboard and Click monitors
4
- */
5
- export interface UserInputEventMonitor {
6
- isValid(event: Event): boolean;
7
- getPayload(event: Event): UserStepEventPayload;
8
- }
@@ -1,114 +0,0 @@
1
- import { CUSTOM_ERROR_EVENT_TYPE, ERROR_EVENT_ERROR_TYPE, ERROR_EVENT_UNHANDLED_REJECTION_TYPE, ERROR_LOG_EVENT_ERROR_TYPE, ERROR_SOURCE_ATT_NAME, FETCH_EXCEPTION_ERROR_TYPE, GLOBAL_REASSIGN_ERROR_TYPE, GQL_COLUMN_ATT_NAME, GQL_ERROR_ATT_NAME, GQL_ERROR_TYPE, GQL_EXTENSIONS_ATT_NAME, GQL_LINE_ATT_NAME, GQL_LOCATIONS_ATT_NAME, GQL_MESSAGE_ATT_NAME, GQL_PATH_ATT_NAME, GQL_SRC_ATT_NAME, HTTP_CODE_ATT_NAME, IMAGE_ERROR_TYPE, JS_ERROR_ATT_NAME, JS_STACK_CAUSE_ATT_NAME, JS_STACK_COL_ATT_NAME, JS_STACK_FILE_ATT_NAME, JS_STACK_FRAMES_ATT_NAME, JS_STACK_LINE_ATT_NAME, JS_STACK_MESSAGE_ATT_NAME, JS_STACK_METHOD_ATT_NAME, PAGE_CHECK_ERROR_ATT_NAME, PAGE_CHECK_ERROR_TYPE, PV_SEQ_ATT_NAME, RESOURCE_ERROR_ATT_NAME, RESPONSE_ERROR_TYPE, TYPE_ATT_NAME, URL_ATT_NAME, WRAPPED_EXCEPTION_ERROR_TYPE, XML_HTTP_REQUEST_ERROR_TYPE } from '../src/constants';
2
- import { WrappedXMLHttpRequest } from './WrappedObjects';
3
- import { UserStepEventPayload } from './PageVisitEvents.types';
4
- export interface Input {
5
- [XML_HTTP_REQUEST_ERROR_TYPE]: HttpInput;
6
- [ERROR_EVENT_ERROR_TYPE]: EventInput;
7
- [ERROR_EVENT_UNHANDLED_REJECTION_TYPE]: EventInput;
8
- [RESPONSE_ERROR_TYPE]: ResponseInput;
9
- [GQL_ERROR_TYPE]: GqlInput;
10
- [IMAGE_ERROR_TYPE]: ResourceInput;
11
- [PAGE_CHECK_ERROR_TYPE]: PageCheckInput;
12
- [WRAPPED_EXCEPTION_ERROR_TYPE]: EventInput;
13
- [FETCH_EXCEPTION_ERROR_TYPE]: EventInput;
14
- [ERROR_LOG_EVENT_ERROR_TYPE]: JErrorObject;
15
- [CUSTOM_ERROR_EVENT_TYPE]: EventInput;
16
- [GLOBAL_REASSIGN_ERROR_TYPE]: GlobalReassignInput;
17
- }
18
- export interface Output {
19
- [XML_HTTP_REQUEST_ERROR_TYPE]: Http;
20
- [ERROR_EVENT_ERROR_TYPE]: JSError;
21
- [ERROR_EVENT_UNHANDLED_REJECTION_TYPE]: JSError;
22
- [RESPONSE_ERROR_TYPE]: Http;
23
- [GQL_ERROR_TYPE]: Gql;
24
- [IMAGE_ERROR_TYPE]: Image;
25
- [PAGE_CHECK_ERROR_TYPE]: PageCheck;
26
- [WRAPPED_EXCEPTION_ERROR_TYPE]: JSError;
27
- [FETCH_EXCEPTION_ERROR_TYPE]: JSError;
28
- [ERROR_LOG_EVENT_ERROR_TYPE]: LogError;
29
- [CUSTOM_ERROR_EVENT_TYPE]: JSError;
30
- [GLOBAL_REASSIGN_ERROR_TYPE]: JSError;
31
- }
32
- export interface ResourceInput {
33
- tag_name: string;
34
- id?: string;
35
- src: string;
36
- detail: string;
37
- }
38
- export interface PageCheckInput {
39
- checkId: string;
40
- version?: string;
41
- triggerId?: string;
42
- assertionId?: string;
43
- log: string[];
44
- }
45
- export interface GqlInput {
46
- [GQL_SRC_ATT_NAME]?: string;
47
- [GQL_MESSAGE_ATT_NAME]: string;
48
- [GQL_LOCATIONS_ATT_NAME]?: {
49
- [GQL_LINE_ATT_NAME]: number;
50
- [GQL_COLUMN_ATT_NAME]: number;
51
- }[];
52
- [GQL_PATH_ATT_NAME]?: string[];
53
- [GQL_EXTENSIONS_ATT_NAME]?: string;
54
- }
55
- export interface HttpInputBase {
56
- status: XMLHttpRequest['status'] | Response['status'];
57
- }
58
- export interface ResponseInput extends Pick<Response, 'url'>, HttpInputBase {
59
- }
60
- export interface HttpInput extends Pick<WrappedXMLHttpRequest, 'responseURL'>, HttpInputBase {
61
- }
62
- export type JErrWithCause = Partial<{
63
- cause: UserStepEventPayload[];
64
- }>;
65
- export type JErrWithStack = Error & JErrWithCause;
66
- export interface JErrWithFilename extends JErrWithCause {
67
- fileName: string;
68
- lineNumber: string;
69
- columnNumber: number;
70
- }
71
- export type JErrorObject = JErrWithFilename | JErrWithStack;
72
- export interface EventInput {
73
- filename?: string;
74
- error: JErrorObject;
75
- }
76
- export interface GlobalReassignInput {
77
- error: Error;
78
- }
79
- interface Base {
80
- [TYPE_ATT_NAME]: string;
81
- [URL_ATT_NAME]: string;
82
- [ERROR_SOURCE_ATT_NAME]?: keyof Input;
83
- }
84
- export interface Http extends Base {
85
- [HTTP_CODE_ATT_NAME]: number;
86
- [PV_SEQ_ATT_NAME]?: number;
87
- }
88
- export interface JSError extends Base {
89
- [JS_ERROR_ATT_NAME]: JSErrorOutputMessage;
90
- }
91
- export interface Gql extends Base {
92
- [GQL_ERROR_ATT_NAME]: GqlInput;
93
- [PV_SEQ_ATT_NAME]?: number;
94
- }
95
- export interface LogError extends Base {
96
- [JS_ERROR_ATT_NAME]: JSErrorOutputMessage;
97
- }
98
- export interface PageCheck extends Base {
99
- [PAGE_CHECK_ERROR_ATT_NAME]: PageCheckInput;
100
- }
101
- export interface Image extends Base {
102
- [RESOURCE_ERROR_ATT_NAME]: ResourceInput;
103
- }
104
- export interface JSErrorOutputMessage {
105
- [JS_STACK_MESSAGE_ATT_NAME]: string;
106
- [JS_STACK_FRAMES_ATT_NAME]: {
107
- [JS_STACK_FILE_ATT_NAME]: string;
108
- [JS_STACK_LINE_ATT_NAME]: string;
109
- [JS_STACK_METHOD_ATT_NAME]: string;
110
- [JS_STACK_COL_ATT_NAME]?: number;
111
- }[];
112
- [JS_STACK_CAUSE_ATT_NAME]?: UserStepEventPayload[];
113
- }
114
- export {};
@@ -1,91 +0,0 @@
1
- import { CLICK_EVENT_TYPE, CSS_CLASS_ATT_NAME, ECOMMERCE_EVENT_TYPE, ERROR_EVENT_TYPE, HTMLID_ATT_NAME, 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_RESP_CODE_ATT_NAME, HTTP_RESP_LENGTH_ATT_NAME, HTTP_RESP_TIME_ATT_NAME, KEYBOARD_EVENT_TYPE, LOCATION_EVENT_TYPE, NETWORK_STATS_EVENT_TYPE, OCCURRED_AT_ATT_NAME, PAGE_EVENT_TYPE, PAGE_GROUPS_ATT_NAME, PAGE_TITLE_ATT_NAME, PV_SEQ_ATT_NAME, REF_URL_ATT_NAME, SOURCE_ATT_NAME, TAGNAME_ATT_NAME, TEXT_ATT_NAME, TITLE_EVENT_TYPE, TYPE_ATT_NAME, URL_ATT_NAME, USERSTEP_EVENT_TYPE } from '../src/constants';
2
- import { Output } from './PageVisitErrors.types';
3
- export interface EventPayloadWithTimestamp<T extends EventType = EventType> {
4
- event: EventPayload<T>;
5
- occurredAt: string;
6
- }
7
- export interface PVEventMessage extends Partial<EventTypeMap> {
8
- [OCCURRED_AT_ATT_NAME]: EventPayloadWithTimestamp['occurredAt'];
9
- [TYPE_ATT_NAME]: EventType;
10
- }
11
- export interface EventTypeMap {
12
- [LOCATION_EVENT_TYPE]: LocationEventPayload;
13
- [TITLE_EVENT_TYPE]: TitleEventPayload;
14
- [PAGE_EVENT_TYPE]: PageEventPayload;
15
- [ERROR_EVENT_TYPE]: ValueOf<Output>;
16
- [HTTP_EVENT_TYPE]: PVEventHTTPPayload;
17
- [NETWORK_STATS_EVENT_TYPE]: NetworkStatsEventPayload;
18
- [USERSTEP_EVENT_TYPE]: UserStepEventPayload;
19
- [ECOMMERCE_EVENT_TYPE]: ECommerceEventPayload;
20
- }
21
- export type EventPayload<T extends EventType> = EventTypeMap[T];
22
- export type EventType = typeof LOCATION_EVENT_TYPE | typeof TITLE_EVENT_TYPE | typeof PAGE_EVENT_TYPE | typeof ERROR_EVENT_TYPE | typeof HTTP_EVENT_TYPE | typeof NETWORK_STATS_EVENT_TYPE | typeof USERSTEP_EVENT_TYPE | typeof ECOMMERCE_EVENT_TYPE;
23
- export interface SampleEventPayload {
24
- [name: string]: {
25
- values: [number, number][];
26
- };
27
- }
28
- export interface WebVitalEventPayload {
29
- name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';
30
- rating: 'good' | 'needs-improvement' | 'poor';
31
- attribution: string;
32
- value: string;
33
- }
34
- export interface ECommerceEventPayload {
35
- data: string;
36
- name: string;
37
- platform: string;
38
- }
39
- export interface NetworkStatsEventPayload {
40
- rtt: number;
41
- effective_type: string;
42
- downlink: number;
43
- save_data: boolean;
44
- }
45
- export interface PageEventPayload {
46
- type: string;
47
- data?: string;
48
- }
49
- export interface LocationEventPayload {
50
- [PAGE_TITLE_ATT_NAME]: string;
51
- [REF_URL_ATT_NAME]: string;
52
- [PAGE_GROUPS_ATT_NAME]: string[];
53
- [URL_ATT_NAME]: string;
54
- }
55
- export interface TitleEventPayload {
56
- [PAGE_TITLE_ATT_NAME]: string;
57
- [REF_URL_ATT_NAME]: string;
58
- [PAGE_GROUPS_ATT_NAME]: string[];
59
- [URL_ATT_NAME]: string;
60
- }
61
- export interface GtmPageTypeEventPayload {
62
- key: string;
63
- value: string;
64
- }
65
- export interface UserStepEventPayload {
66
- [SOURCE_ATT_NAME]: string;
67
- [TEXT_ATT_NAME]: string;
68
- [TAGNAME_ATT_NAME]: string;
69
- [HTMLID_ATT_NAME]: string;
70
- [CSS_CLASS_ATT_NAME]: string;
71
- }
72
- export interface ClickEventPayload extends UserStepEventPayload {
73
- [TYPE_ATT_NAME]: typeof CLICK_EVENT_TYPE;
74
- }
75
- export interface KeyboardEventPayload extends UserStepEventPayload {
76
- [TYPE_ATT_NAME]: typeof KEYBOARD_EVENT_TYPE;
77
- }
78
- export interface PVEventHTTPPayload {
79
- [HTTP_METHOD_ATT_NAME]: string;
80
- [HTTP_RESP_CODE_ATT_NAME]: number;
81
- [URL_ATT_NAME]: string;
82
- [HTTP_RESP_TIME_ATT_NAME]: number;
83
- [HTTP_RESP_LENGTH_ATT_NAME]?: number;
84
- [PV_SEQ_ATT_NAME]?: number;
85
- }
86
- export interface HTTPDataBundle {
87
- [HTTP_DATA_REQ_HEADERS_ATT_NAME]: Record<string, string>;
88
- [HTTP_DATA_PAYLOAD_ATT_NAME]: string;
89
- [HTTP_DATA_RESP_HEADERS_ATT_NAME]: Record<string, string>;
90
- [HTTP_DATA_RESP_PAYLOAD_ATT_NAME]: string;
91
- }
@@ -1,27 +0,0 @@
1
- import { BROWSER_ID_ATT_NAME, COLLECT_VER_ATT_NAME, CURRENT_METRICS_VERSION, CURRENT_NOIBUJS_VERSION, CUSTOM_ATTRIBUTE_FAIL_COUNT_ATT_NAME, CUSTOM_ATTRIBUTE_KEY_COUNT_ATT_NAME, CUSTOM_ATTRIBUTE_TOTAL_COUNT_ATT_NAME, DID_CUT_PV_ATT_NAME, DID_CUT_VID_ATT_NAME, DID_START_VID_ATT_NAME, ERR_COUNT_EXPECTED_ATT_NAME, OTHER_METRICS_ATT_NAME, EXP_VIDEO_LENGTH_ATT_NAME, HTTP_COUNT_EXPECTED_ATT_NAME, ON_URL_ATT_NAME, PV_CLICKS_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, VER_ATT_NAME, VIDEO_CLICKS_ATT_NAME, OTHER_METRICS_KEYS } from '../src/constants';
2
- export interface PageVisitMetrics {
3
- [BROWSER_ID_ATT_NAME]: null | string;
4
- [PV_ID_ATT_NAME]: string;
5
- [COLLECT_VER_ATT_NAME]: typeof CURRENT_NOIBUJS_VERSION;
6
- [VER_ATT_NAME]: typeof CURRENT_METRICS_VERSION;
7
- [EXP_VIDEO_LENGTH_ATT_NAME]: number;
8
- [PV_EXP_VF_SEQ_ATT_NAME]: number;
9
- [PV_EXP_PART_COUNTER_ATT_NAME]: number;
10
- [PV_EXP_HTTP_DATA_SEQ_ATT_NAME]: number;
11
- [PV_HTTP_PAYLOADS_COLLECTED_ATT_NAME]: number;
12
- [PV_HTTP_PAYLOADS_DROPPED_OVERSIZE_ATT_NAME]: number;
13
- [PV_HTTP_PAYLOADS_DROPPED_TYPE_ATT_NAME]: number;
14
- [PV_HTTP_REQUESTS_DROPPED_OVER_LIMIT]: number;
15
- [VIDEO_CLICKS_ATT_NAME]: number;
16
- [PV_CLICKS_ATT_NAME]: number;
17
- [DID_CUT_PV_ATT_NAME]: boolean;
18
- [DID_CUT_VID_ATT_NAME]: boolean;
19
- [DID_START_VID_ATT_NAME]: boolean;
20
- [HTTP_COUNT_EXPECTED_ATT_NAME]: number;
21
- [ERR_COUNT_EXPECTED_ATT_NAME]: number;
22
- [ON_URL_ATT_NAME]: string;
23
- [CUSTOM_ATTRIBUTE_TOTAL_COUNT_ATT_NAME]: number;
24
- [CUSTOM_ATTRIBUTE_FAIL_COUNT_ATT_NAME]: number;
25
- [CUSTOM_ATTRIBUTE_KEY_COUNT_ATT_NAME]: number;
26
- [OTHER_METRICS_ATT_NAME]?: Partial<Record<ValueOf<typeof OTHER_METRICS_KEYS>, number>>;
27
- }
@@ -1,14 +0,0 @@
1
- export type StorageValue = unknown;
2
- export interface IStorage {
3
- isAvailable(): Promise<boolean>;
4
- load(key: string): Promise<string | null>;
5
- save(key: string, value: StorageValue): Promise<void>;
6
- remove(key: string): Promise<void>;
7
- calculateUsedSize(): Promise<number>;
8
- getDiagnoseInfo(): Promise<string>;
9
- }
10
- export interface Provider {
11
- getItem(key: string): Promise<string | null>;
12
- setItem(key: string, value: string): Promise<void>;
13
- removeItem(key: string): Promise<void>;
14
- }
@@ -1,11 +0,0 @@
1
- import { PageVisitFrag, PageVisitInfo } from './Metroplex.types';
2
- export interface PageVisitPartsBase {
3
- pageVisitInfo: PageVisitInfo;
4
- pageVisitFrags: PageVisitFrag[];
5
- }
6
- export interface ExportPVParts extends PageVisitPartsBase {
7
- timestamp?: Date;
8
- }
9
- export interface ImportPVParts extends PageVisitPartsBase {
10
- timestamp?: string;
11
- }
@@ -1,6 +0,0 @@
1
- export interface WrappedXMLHttpRequest extends XMLHttpRequest, Partial<{
2
- noibuRequestHeaders: Map<string, string>;
3
- noibuHttpMethod: string;
4
- noibuHttpUrl: string;
5
- }> {
6
- }
File without changes
File without changes
File without changes