From 6e3e03dd463c81219b8f7bd12ab383aecd3d9c02 Mon Sep 17 00:00:00 2001 From: sylenien Date: Mon, 5 Sep 2022 10:38:27 +0200 Subject: [PATCH] feat(backend/tracker): add error messages --- backend/pkg/messages/messages.go | 40 +++ backend/pkg/messages/read-message.go | 21 ++ ee/connectors/msgcodec/messages.py | 14 +- ee/connectors/msgcodec/msgcodec.py | 11 +- .../messages/tracker-legacy.ts | 1 + .../MessageDistributor/messages/tracker.ts | 100 ++++---- mobs/messages.rb | 11 +- tracker/tracker/src/common/messages.gen.ts | 13 +- tracker/tracker/src/main/app/messages.gen.ts | 20 +- .../src/webworker/MessageEncoder.gen.ts | 230 +++++++++--------- 10 files changed, 290 insertions(+), 171 deletions(-) diff --git a/backend/pkg/messages/messages.go b/backend/pkg/messages/messages.go index 118f9dddc..8b0b24003 100644 --- a/backend/pkg/messages/messages.go +++ b/backend/pkg/messages/messages.go @@ -154,6 +154,8 @@ const ( MsgAdoptedSSRemoveOwner = 77 + MsgExceptionWithMeta = 78 + MsgZustand = 79 MsgSessionSearch = 127 @@ -3004,6 +3006,44 @@ func (msg *AdoptedSSRemoveOwner) TypeID() int { return 77 } +type ExceptionWithMeta struct { + message + Name string + Message string + Payload string + Meta string +} + +func (msg *ExceptionWithMeta) Encode() []byte { + buf := make([]byte, 41+len(msg.Name)+len(msg.Message)+len(msg.Payload)+len(msg.Meta)) + buf[0] = 78 + p := 1 + p = WriteString(msg.Name, buf, p) + p = WriteString(msg.Message, buf, p) + p = WriteString(msg.Payload, buf, p) + p = WriteString(msg.Meta, buf, p) + return buf[:p] +} + +func (msg *ExceptionWithMeta) EncodeWithIndex() []byte { + encoded := msg.Encode() + if IsIOSType(msg.TypeID()) { + return encoded + } + data := make([]byte, len(encoded)+8) + copy(data[8:], encoded[:]) + binary.LittleEndian.PutUint64(data[0:], msg.Meta().Index) + return data +} + +func (msg *ExceptionWithMeta) Decode() Message { + return msg +} + +func (msg *ExceptionWithMeta) TypeID() int { + return 78 +} + type Zustand struct { message Mutation string diff --git a/backend/pkg/messages/read-message.go b/backend/pkg/messages/read-message.go index 506b57b89..223114b1f 100644 --- a/backend/pkg/messages/read-message.go +++ b/backend/pkg/messages/read-message.go @@ -1291,6 +1291,24 @@ func DecodeAdoptedSSRemoveOwner(reader io.Reader) (Message, error) { return msg, err } +func DecodeExceptionWithMeta(reader io.Reader) (Message, error) { + var err error = nil + msg := &ExceptionWithMeta{} + if msg.Name, err = ReadString(reader); err != nil { + return nil, err + } + if msg.Message, err = ReadString(reader); err != nil { + return nil, err + } + if msg.Payload, err = ReadString(reader); err != nil { + return nil, err + } + if msg.Meta, err = ReadString(reader); err != nil { + return nil, err + } + return msg, err +} + func DecodeZustand(reader io.Reader) (Message, error) { var err error = nil msg := &Zustand{} @@ -1945,6 +1963,9 @@ func ReadMessage(t uint64, reader io.Reader) (Message, error) { case 77: return DecodeAdoptedSSRemoveOwner(reader) + case 78: + return DecodeExceptionWithMeta(reader) + case 79: return DecodeZustand(reader) diff --git a/ee/connectors/msgcodec/messages.py b/ee/connectors/msgcodec/messages.py index b35d00dea..23468f348 100644 --- a/ee/connectors/msgcodec/messages.py +++ b/ee/connectors/msgcodec/messages.py @@ -99,7 +99,7 @@ class CreateDocument(Message): __id__ = 7 def __init__(self, ): - + class CreateElementNode(Message): @@ -735,6 +735,16 @@ class AdoptedSSRemoveOwner(Message): self.id = id +class ExceptionWithMeta(Message): + __id__ = 78 + + def __init__(self, name, message, payload, meta): + self.name = name + self.message = message + self.payload = payload + self.meta = meta + + class Zustand(Message): __id__ = 79 @@ -959,5 +969,3 @@ class IOSIssueEvent(Message): self.context_string = context_string self.context = context self.payload = payload - - diff --git a/ee/connectors/msgcodec/msgcodec.py b/ee/connectors/msgcodec/msgcodec.py index dd685cc41..4cf54c3c9 100644 --- a/ee/connectors/msgcodec/msgcodec.py +++ b/ee/connectors/msgcodec/msgcodec.py @@ -149,7 +149,7 @@ class MessageCodec(Codec): if message_id == 7: return CreateDocument( - + ) if message_id == 8: @@ -655,6 +655,14 @@ class MessageCodec(Codec): id=self.read_uint(reader) ) + if message_id == 78: + return ExceptionWithMeta( + name=self.read_string(reader), + message=self.read_string(reader), + payload=self.read_string(reader), + meta=self.read_string(reader) + ) + if message_id == 79: return Zustand( mutation=self.read_string(reader), @@ -838,4 +846,3 @@ class MessageCodec(Codec): context=self.read_string(reader), payload=self.read_string(reader) ) - diff --git a/frontend/app/player/MessageDistributor/messages/tracker-legacy.ts b/frontend/app/player/MessageDistributor/messages/tracker-legacy.ts index 1cc6af93d..fd865d147 100644 --- a/frontend/app/player/MessageDistributor/messages/tracker-legacy.ts +++ b/frontend/app/player/MessageDistributor/messages/tracker-legacy.ts @@ -61,6 +61,7 @@ export const TP_MAP = { 75: "adopted_ss_delete_rule", 76: "adopted_ss_add_owner", 77: "adopted_ss_remove_owner", + 78: "exception_with_meta", 79: "zustand", 90: "ios_session_start", 93: "ios_custom_event", diff --git a/frontend/app/player/MessageDistributor/messages/tracker.ts b/frontend/app/player/MessageDistributor/messages/tracker.ts index 7381670c7..034002ea0 100644 --- a/frontend/app/player/MessageDistributor/messages/tracker.ts +++ b/frontend/app/player/MessageDistributor/messages/tracker.ts @@ -45,7 +45,7 @@ type TrSetViewportScroll = [ type TrCreateDocument = [ type: 7, - + ] type TrCreateElementNode = [ @@ -383,6 +383,14 @@ type TrAdoptedSSRemoveOwner = [ id: number, ] +type TrExceptionWithMeta = [ + type: 78, + name: string, + message: string, + payload: string, + meta: string, +] + type TrZustand = [ type: 79, mutation: string, @@ -390,18 +398,18 @@ type TrZustand = [ ] -export type TrackerMessage = TrBatchMetadata | TrPartitionedMessage | TrTimestamp | TrSetPageLocation | TrSetViewportSize | TrSetViewportScroll | TrCreateDocument | TrCreateElementNode | TrCreateTextNode | TrMoveNode | TrRemoveNode | TrSetNodeAttribute | TrRemoveNodeAttribute | TrSetNodeData | TrSetNodeScroll | TrSetInputTarget | TrSetInputValue | TrSetInputChecked | TrMouseMove | TrConsoleLog | TrPageLoadTiming | TrPageRenderTiming | TrJSException | TrRawCustomEvent | TrUserID | TrUserAnonymousID | TrMetadata | TrCSSInsertRule | TrCSSDeleteRule | TrFetch | TrProfiler | TrOTable | TrStateAction | TrRedux | TrVuex | TrMobX | TrNgRx | TrGraphQL | TrPerformanceTrack | TrResourceTiming | TrConnectionInformation | TrSetPageVisibility | TrLongTask | TrSetNodeAttributeURLBased | TrSetCSSDataURLBased | TrTechnicalInfo | TrCustomIssue | TrCSSInsertRuleURLBased | TrMouseClick | TrCreateIFrameDocument | TrAdoptedSSReplaceURLBased | TrAdoptedSSInsertRuleURLBased | TrAdoptedSSDeleteRule | TrAdoptedSSAddOwner | TrAdoptedSSRemoveOwner | TrZustand +export type TrackerMessage = TrBatchMetadata | TrPartitionedMessage | TrTimestamp | TrSetPageLocation | TrSetViewportSize | TrSetViewportScroll | TrCreateDocument | TrCreateElementNode | TrCreateTextNode | TrMoveNode | TrRemoveNode | TrSetNodeAttribute | TrRemoveNodeAttribute | TrSetNodeData | TrSetNodeScroll | TrSetInputTarget | TrSetInputValue | TrSetInputChecked | TrMouseMove | TrConsoleLog | TrPageLoadTiming | TrPageRenderTiming | TrJSException | TrRawCustomEvent | TrUserID | TrUserAnonymousID | TrMetadata | TrCSSInsertRule | TrCSSDeleteRule | TrFetch | TrProfiler | TrOTable | TrStateAction | TrRedux | TrVuex | TrMobX | TrNgRx | TrGraphQL | TrPerformanceTrack | TrResourceTiming | TrConnectionInformation | TrSetPageVisibility | TrLongTask | TrSetNodeAttributeURLBased | TrSetCSSDataURLBased | TrTechnicalInfo | TrCustomIssue | TrCSSInsertRuleURLBased | TrMouseClick | TrCreateIFrameDocument | TrAdoptedSSReplaceURLBased | TrAdoptedSSInsertRuleURLBased | TrAdoptedSSDeleteRule | TrAdoptedSSAddOwner | TrAdoptedSSRemoveOwner | TrExceptionWithMeta | TrZustand export default function translate(tMsg: TrackerMessage): RawMessage | null { switch(tMsg[0]) { - + case 0: { return { tp: "timestamp", timestamp: tMsg[1], } } - + case 4: { return { tp: "set_page_location", @@ -410,7 +418,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { navigationStart: tMsg[3], } } - + case 5: { return { tp: "set_viewport_size", @@ -418,7 +426,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { height: tMsg[2], } } - + case 6: { return { tp: "set_viewport_scroll", @@ -426,14 +434,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { y: tMsg[2], } } - + case 7: { return { tp: "create_document", - + } } - + case 8: { return { tp: "create_element_node", @@ -444,7 +452,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { svg: tMsg[5], } } - + case 9: { return { tp: "create_text_node", @@ -453,7 +461,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { index: tMsg[3], } } - + case 10: { return { tp: "move_node", @@ -462,14 +470,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { index: tMsg[3], } } - + case 11: { return { tp: "remove_node", id: tMsg[1], } } - + case 12: { return { tp: "set_node_attribute", @@ -478,7 +486,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { value: tMsg[3], } } - + case 13: { return { tp: "remove_node_attribute", @@ -486,7 +494,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { name: tMsg[2], } } - + case 14: { return { tp: "set_node_data", @@ -494,7 +502,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { data: tMsg[2], } } - + case 16: { return { tp: "set_node_scroll", @@ -503,7 +511,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { y: tMsg[3], } } - + case 18: { return { tp: "set_input_value", @@ -512,7 +520,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { mask: tMsg[3], } } - + case 19: { return { tp: "set_input_checked", @@ -520,7 +528,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { checked: tMsg[2], } } - + case 20: { return { tp: "mouse_move", @@ -528,7 +536,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { y: tMsg[2], } } - + case 22: { return { tp: "console_log", @@ -536,7 +544,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { value: tMsg[2], } } - + case 37: { return { tp: "css_insert_rule", @@ -545,7 +553,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { index: tMsg[3], } } - + case 38: { return { tp: "css_delete_rule", @@ -553,7 +561,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { index: tMsg[2], } } - + case 39: { return { tp: "fetch", @@ -566,7 +574,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { duration: tMsg[7], } } - + case 40: { return { tp: "profiler", @@ -576,7 +584,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { result: tMsg[4], } } - + case 41: { return { tp: "o_table", @@ -584,7 +592,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { value: tMsg[2], } } - + case 44: { return { tp: "redux", @@ -593,7 +601,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { duration: tMsg[3], } } - + case 45: { return { tp: "vuex", @@ -601,7 +609,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { state: tMsg[2], } } - + case 46: { return { tp: "mob_x", @@ -609,7 +617,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { payload: tMsg[2], } } - + case 47: { return { tp: "ng_rx", @@ -618,7 +626,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { duration: tMsg[3], } } - + case 48: { return { tp: "graph_ql", @@ -628,7 +636,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { response: tMsg[4], } } - + case 49: { return { tp: "performance_track", @@ -638,7 +646,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { usedJSHeapSize: tMsg[4], } } - + case 54: { return { tp: "connection_information", @@ -646,14 +654,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { type: tMsg[2], } } - + case 55: { return { tp: "set_page_visibility", hidden: tMsg[1], } } - + case 59: { return { tp: "long_task", @@ -666,7 +674,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { containerName: tMsg[7], } } - + case 60: { return { tp: "set_node_attribute_url_based", @@ -676,7 +684,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { baseURL: tMsg[4], } } - + case 61: { return { tp: "set_css_data_url_based", @@ -685,7 +693,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { baseURL: tMsg[3], } } - + case 67: { return { tp: "css_insert_rule_url_based", @@ -695,7 +703,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { baseURL: tMsg[4], } } - + case 69: { return { tp: "mouse_click", @@ -705,7 +713,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { selector: tMsg[4], } } - + case 70: { return { tp: "create_i_frame_document", @@ -713,7 +721,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { id: tMsg[2], } } - + case 71: { return { tp: "adopted_ss_replace_url_based", @@ -722,7 +730,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { baseURL: tMsg[3], } } - + case 73: { return { tp: "adopted_ss_insert_rule_url_based", @@ -732,7 +740,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { baseURL: tMsg[4], } } - + case 75: { return { tp: "adopted_ss_delete_rule", @@ -740,7 +748,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { index: tMsg[2], } } - + case 76: { return { tp: "adopted_ss_add_owner", @@ -748,7 +756,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { id: tMsg[2], } } - + case 77: { return { tp: "adopted_ss_remove_owner", @@ -756,7 +764,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { id: tMsg[2], } } - + case 79: { return { tp: "zustand", @@ -764,7 +772,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null { state: tMsg[2], } } - + default: return null } diff --git a/mobs/messages.rb b/mobs/messages.rb index f79366db7..bb6e730e6 100644 --- a/mobs/messages.rb +++ b/mobs/messages.rb @@ -233,7 +233,7 @@ message 36, 'CustomEvent', :tracker => false, :replayer => false do string 'Name' string 'Payload' end -# depricated since 4.0.2 in favor of AdoptedSSInsertRule + AdoptedSSAddOwner +# depricated since 4.0.2 in favor of AdoptedSSInsertRule + AdoptedSSAddOwner message 37, 'CSSInsertRule' do uint 'ID' string 'Rule' @@ -472,4 +472,11 @@ message 127, 'SessionSearch', :tracker => false, :replayer => false do uint 'Partition' end -# 80 -- 90 reserved \ No newline at end of file +message 78, 'ExceptionWithMeta', :replayer => false do + string 'Name' + string 'Message' + string 'Payload' + string 'Meta' +end + +# 80 -- 90 reserved diff --git a/tracker/tracker/src/common/messages.gen.ts b/tracker/tracker/src/common/messages.gen.ts index 4e2afe778..b9ff65c1f 100644 --- a/tracker/tracker/src/common/messages.gen.ts +++ b/tracker/tracker/src/common/messages.gen.ts @@ -57,6 +57,7 @@ export declare const enum Type { AdoptedSSDeleteRule = 75, AdoptedSSAddOwner = 76, AdoptedSSRemoveOwner = 77, + ExceptionWithMeta = 78, Zustand = 79, } @@ -102,7 +103,7 @@ export type SetViewportScroll = [ export type CreateDocument = [ /*type:*/ Type.CreateDocument, - + ] export type CreateElementNode = [ @@ -440,6 +441,14 @@ export type AdoptedSSRemoveOwner = [ /*id:*/ number, ] +export type ExceptionWithMeta = [ + /*type:*/ Type.ExceptionWithMeta, + /*name:*/ string, + /*message:*/ string, + /*payload:*/ string, + /*meta:*/ string, +] + export type Zustand = [ /*type:*/ Type.Zustand, /*mutation:*/ string, @@ -447,5 +456,5 @@ export type Zustand = [ ] -type Message = BatchMetadata | PartitionedMessage | Timestamp | SetPageLocation | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | ConsoleLog | PageLoadTiming | PageRenderTiming | JSException | RawCustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | Redux | Vuex | MobX | NgRx | GraphQL | PerformanceTrack | ResourceTiming | ConnectionInformation | SetPageVisibility | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | Zustand +type Message = BatchMetadata | PartitionedMessage | Timestamp | SetPageLocation | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | ConsoleLog | PageLoadTiming | PageRenderTiming | JSException | RawCustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | Redux | Vuex | MobX | NgRx | GraphQL | PerformanceTrack | ResourceTiming | ConnectionInformation | SetPageVisibility | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | ExceptionWithMeta | Zustand export default Message diff --git a/tracker/tracker/src/main/app/messages.gen.ts b/tracker/tracker/src/main/app/messages.gen.ts index ce924a918..85d2a8503 100644 --- a/tracker/tracker/src/main/app/messages.gen.ts +++ b/tracker/tracker/src/main/app/messages.gen.ts @@ -78,11 +78,11 @@ export function SetViewportScroll( } export function CreateDocument( - + ): Messages.CreateDocument { return [ Messages.Type.CreateDocument, - + ] } @@ -708,6 +708,21 @@ export function AdoptedSSRemoveOwner( ] } +export function ExceptionWithMeta( + name: string, + message: string, + payload: string, + meta: string, +): Messages.ExceptionWithMeta { + return [ + Messages.Type.ExceptionWithMeta, + name, + message, + payload, + meta, + ] +} + export function Zustand( mutation: string, state: string, @@ -718,4 +733,3 @@ export function Zustand( state, ] } - diff --git a/tracker/tracker/src/webworker/MessageEncoder.gen.ts b/tracker/tracker/src/webworker/MessageEncoder.gen.ts index b646fd6ff..2c2942a07 100644 --- a/tracker/tracker/src/webworker/MessageEncoder.gen.ts +++ b/tracker/tracker/src/webworker/MessageEncoder.gen.ts @@ -9,231 +9,235 @@ import PrimitiveEncoder from './PrimitiveEncoder.js' export default class MessageEncoder extends PrimitiveEncoder { encode(msg: Message): boolean { switch(msg[0]) { - + case Messages.Type.BatchMetadata: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.int(msg[4]) && this.string(msg[5]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.int(msg[4]) && this.string(msg[5]) break - + case Messages.Type.PartitionedMessage: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.Timestamp: - return this.uint(msg[1]) + return this.uint(msg[1]) break - + case Messages.Type.SetPageLocation: - return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) + return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.SetViewportSize: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.SetViewportScroll: - return this.int(msg[1]) && this.int(msg[2]) + return this.int(msg[1]) && this.int(msg[2]) break - + case Messages.Type.CreateDocument: - return true + return true break - + case Messages.Type.CreateElementNode: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) && this.boolean(msg[5]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) && this.boolean(msg[5]) break - + case Messages.Type.CreateTextNode: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.MoveNode: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.RemoveNode: - return this.uint(msg[1]) + return this.uint(msg[1]) break - + case Messages.Type.SetNodeAttribute: - return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) + return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) break - + case Messages.Type.RemoveNodeAttribute: - return this.uint(msg[1]) && this.string(msg[2]) + return this.uint(msg[1]) && this.string(msg[2]) break - + case Messages.Type.SetNodeData: - return this.uint(msg[1]) && this.string(msg[2]) + return this.uint(msg[1]) && this.string(msg[2]) break - + case Messages.Type.SetNodeScroll: - return this.uint(msg[1]) && this.int(msg[2]) && this.int(msg[3]) + return this.uint(msg[1]) && this.int(msg[2]) && this.int(msg[3]) break - + case Messages.Type.SetInputTarget: - return this.uint(msg[1]) && this.string(msg[2]) + return this.uint(msg[1]) && this.string(msg[2]) break - + case Messages.Type.SetInputValue: - return this.uint(msg[1]) && this.string(msg[2]) && this.int(msg[3]) + return this.uint(msg[1]) && this.string(msg[2]) && this.int(msg[3]) break - + case Messages.Type.SetInputChecked: - return this.uint(msg[1]) && this.boolean(msg[2]) + return this.uint(msg[1]) && this.boolean(msg[2]) break - + case Messages.Type.MouseMove: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.ConsoleLog: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.PageLoadTiming: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.uint(msg[7]) && this.uint(msg[8]) && this.uint(msg[9]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.uint(msg[7]) && this.uint(msg[8]) && this.uint(msg[9]) break - + case Messages.Type.PageRenderTiming: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.JSException: - return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) + return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) break - + case Messages.Type.RawCustomEvent: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.UserID: - return this.string(msg[1]) + return this.string(msg[1]) break - + case Messages.Type.UserAnonymousID: - return this.string(msg[1]) + return this.string(msg[1]) break - + case Messages.Type.Metadata: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.CSSInsertRule: - return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) + return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.CSSDeleteRule: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.Fetch: - return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.uint(msg[7]) + return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.uint(msg[7]) break - + case Messages.Type.Profiler: - return this.string(msg[1]) && this.uint(msg[2]) && this.string(msg[3]) && this.string(msg[4]) + return this.string(msg[1]) && this.uint(msg[2]) && this.string(msg[3]) && this.string(msg[4]) break - + case Messages.Type.OTable: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.StateAction: - return this.string(msg[1]) + return this.string(msg[1]) break - + case Messages.Type.Redux: - return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) + return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.Vuex: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.MobX: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.NgRx: - return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) + return this.string(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) break - + case Messages.Type.GraphQL: - return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) + return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) break - + case Messages.Type.PerformanceTrack: - return this.int(msg[1]) && this.int(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) + return this.int(msg[1]) && this.int(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) break - + case Messages.Type.ResourceTiming: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.string(msg[7]) && this.string(msg[8]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.uint(msg[5]) && this.uint(msg[6]) && this.string(msg[7]) && this.string(msg[8]) break - + case Messages.Type.ConnectionInformation: - return this.uint(msg[1]) && this.string(msg[2]) + return this.uint(msg[1]) && this.string(msg[2]) break - + case Messages.Type.SetPageVisibility: - return this.boolean(msg[1]) + return this.boolean(msg[1]) break - + case Messages.Type.LongTask: - return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.string(msg[5]) && this.string(msg[6]) && this.string(msg[7]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.uint(msg[3]) && this.uint(msg[4]) && this.string(msg[5]) && this.string(msg[6]) && this.string(msg[7]) break - + case Messages.Type.SetNodeAttributeURLBased: - return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) + return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) break - + case Messages.Type.SetCSSDataURLBased: - return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) + return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) break - + case Messages.Type.TechnicalInfo: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.CustomIssue: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + case Messages.Type.CSSInsertRuleURLBased: - return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) + return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) break - + case Messages.Type.MouseClick: - return this.uint(msg[1]) && this.uint(msg[2]) && this.string(msg[3]) && this.string(msg[4]) + return this.uint(msg[1]) && this.uint(msg[2]) && this.string(msg[3]) && this.string(msg[4]) break - + case Messages.Type.CreateIFrameDocument: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.AdoptedSSReplaceURLBased: - return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) + return this.uint(msg[1]) && this.string(msg[2]) && this.string(msg[3]) break - + case Messages.Type.AdoptedSSInsertRuleURLBased: - return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) + return this.uint(msg[1]) && this.string(msg[2]) && this.uint(msg[3]) && this.string(msg[4]) break - + case Messages.Type.AdoptedSSDeleteRule: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.AdoptedSSAddOwner: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + case Messages.Type.AdoptedSSRemoveOwner: - return this.uint(msg[1]) && this.uint(msg[2]) + return this.uint(msg[1]) && this.uint(msg[2]) break - + + case Messages.Type.ExceptionWithMeta: + return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) + break + case Messages.Type.Zustand: - return this.string(msg[1]) && this.string(msg[2]) + return this.string(msg[1]) && this.string(msg[2]) break - + } }