refactor(player;mobs):use enum message type; use .gen. filename for generated files

This commit is contained in:
Alex Kaminskii 2022-12-02 17:19:59 +01:00
parent 228cbee9e1
commit 3a72e1d8b2
21 changed files with 406 additions and 340 deletions

View file

@ -19,6 +19,16 @@ import WindowNodeCounter from './managers/WindowNodeCounter';
import ActivityManager from './managers/ActivityManager';
import MFileReader from './messages/MFileReader';
import { MType } from './messages';
import type {
Message,
SetPageLocation,
ConnectionInformation,
SetViewportSize,
SetViewportScroll,
MouseClick,
} from './messages';
import { loadFiles, requestEFSDom, requestEFSDevtools } from './network/loadFiles';
import { decryptSessionBytes } from './network/crypto';
@ -57,23 +67,14 @@ export interface State extends ScreenState, ListsState {
}
import type {
Message,
SetPageLocation,
ConnectionInformation,
SetViewportSize,
SetViewportScroll,
MouseClick,
} from './messages';
const visualChanges = [
"mouse_move",
"mouse_click",
"create_element_node",
"set_input_value",
"set_input_checked",
"set_viewport_size",
"set_viewport_scroll",
MType.MouseMove,
MType.MouseClick,
MType.CreateElementNode,
MType.SetInputValue,
MType.SetInputChecked,
MType.SetViewportSize,
MType.SetViewportScroll,
]
export default class MessageManager {
@ -158,15 +159,15 @@ export default class MessageManager {
const headChildrenIds = msgs.filter(m => m.parentID === 1).map(m => m.id);
this.pagesManager.sortPages((m1, m2) => {
if (m1.time === m2.time) {
if (m1.tp === "remove_node" && m2.tp !== "remove_node") {
if (m1.tp === MType.RemoveNode && m2.tp !== MType.RemoveNode) {
if (headChildrenIds.includes(m1.id)) {
return -1;
}
} else if (m2.tp === "remove_node" && m1.tp !== "remove_node") {
} else if (m2.tp === MType.RemoveNode && m1.tp !== MType.RemoveNode) {
if (headChildrenIds.includes(m2.id)) {
return 1;
}
} else if (m2.tp === "remove_node" && m1.tp === "remove_node") {
} else if (m2.tp === MType.RemoveNode && m1.tp === MType.RemoveNode) {
const m1FromHead = headChildrenIds.includes(m1.id);
const m2FromHead = headChildrenIds.includes(m2.id);
if (m1FromHead && !m2FromHead) {
@ -399,45 +400,45 @@ export default class MessageManager {
let decoded;
const time = msg.time;
switch (msg.tp) {
case "set_page_location":
case MType.SetPageLocation:
this.locationManager.append(msg);
if (msg.navigationStart > 0) {
this.loadedLocationManager.append(msg);
}
break;
case "set_viewport_size":
case MType.SetViewportSize:
this.resizeManager.append(msg);
break;
case "mouse_move":
case MType.MouseMove:
this.mouseMoveManager.append(msg);
break;
case "mouse_click":
case MType.MouseClick:
this.clickManager.append(msg);
break;
case "set_viewport_scroll":
case MType.SetViewportScroll:
this.scrollManager.append(msg);
break;
case "performance_track":
case MType.PerformanceTrack:
this.performanceTrackManager.append(msg);
break;
case "set_page_visibility":
case MType.SetPageVisibility:
this.performanceTrackManager.handleVisibility(msg)
break;
case "connection_information":
case MType.ConnectionInformation:
this.connectionInfoManger.append(msg);
break;
case "o_table":
case MType.OTable:
this.decoder.set(msg.key, msg.value);
break;
/* Lists: */
case "console_log":
case MType.ConsoleLog:
if (msg.level === 'debug') break;
this.lists.lists.log.append(
// @ts-ignore : TODO: enums in the message schema
Log(msg)
)
break;
case "fetch":
case MType.Fetch:
// @ts-ignore burn immutable
this.lists.lists.fetch.append(Resource({
method: msg.method,
@ -451,34 +452,34 @@ export default class MessageManager {
index,
}) as Timed)
break;
case "redux":
case MType.Redux:
decoded = this.decodeStateMessage(msg, ["state", "action"]);
logger.log('redux', decoded)
if (decoded != null) {
this.lists.lists.redux.append(decoded);
}
break;
case "ng_rx":
case MType.NgRx:
decoded = this.decodeStateMessage(msg, ["state", "action"]);
logger.log('ngrx', decoded)
if (decoded != null) {
this.lists.lists.ngrx.append(decoded);
}
break;
case "vuex":
case MType.Vuex:
decoded = this.decodeStateMessage(msg, ["state", "mutation"]);
logger.log('vuex', decoded)
if (decoded != null) {
this.lists.lists.vuex.append(decoded);
}
break;
case "zustand":
case MType.Zustand:
decoded = this.decodeStateMessage(msg, ["state", "mutation"])
logger.log('zustand', decoded)
if (decoded != null) {
this.lists.lists.zustand.append(decoded)
}
case "mob_x":
case MType.MobX:
decoded = this.decodeStateMessage(msg, ["payload"]);
logger.log('mobx', decoded)
@ -486,29 +487,29 @@ export default class MessageManager {
this.lists.lists.mobx.append(decoded);
}
break;
case "graph_ql":
case MType.GraphQl:
this.lists.lists.graphql.append(msg);
break;
case "profiler":
case MType.Profiler:
this.lists.lists.profiles.append(msg);
break;
/* ===|=== */
default:
switch (msg.tp) {
case "create_document":
case MType.CreateDocument:
this.windowNodeCounter.reset();
this.performanceTrackManager.setCurrentNodesCount(this.windowNodeCounter.count);
break;
case "create_text_node":
case "create_element_node":
case MType.CreateTextNode:
case MType.CreateElementNode:
this.windowNodeCounter.addNode(msg.id, msg.parentID);
this.performanceTrackManager.setCurrentNodesCount(this.windowNodeCounter.count);
break;
case "move_node":
case MType.MoveNode:
this.windowNodeCounter.moveNode(msg.id, msg.parentID);
this.performanceTrackManager.setCurrentNodesCount(this.windowNodeCounter.count);
break;
case "remove_node":
case MType.RemoveNode:
this.windowNodeCounter.removeNode(msg.id);
this.performanceTrackManager.setCurrentNodesCount(this.windowNodeCounter.count);
break;

View file

@ -0,0 +1,8 @@
import type { Socket as SocketIO } from 'socket.io-client';
export interface Socket {
emit: SocketIO['emit'],
on: SocketIO['on'],
id: SocketIO['id'],
}

View file

@ -2,9 +2,9 @@ import logger from 'App/logger';
import type Screen from '../../Screen/Screen';
import type MessageManager from '../../MessageManager';
import type { Message, SetNodeScroll, CreateElementNode } from '../../messages';
import { MType } from '../../messages';
import ListWalker from '../../../common/ListWalker';
import StylesManager, { rewriteNodeStyleSheet } from './StylesManager';
import FocusManager from './FocusManager';
@ -63,7 +63,7 @@ export default class DOMManager extends ListWalker<Message> {
}
append(m: Message): void {
if (m.tp === "set_node_scroll") {
if (m.tp === MType.SetNodeScroll) {
let scrollManager = this.nodeScrollManagers.get(m.id)
if (!scrollManager) {
scrollManager = new ListWalker()
@ -72,15 +72,15 @@ export default class DOMManager extends ListWalker<Message> {
scrollManager.append(m)
return
}
if (m.tp === "set_node_focus") {
if (m.tp === MType.SetNodeFocus) {
this.focusManager.append(m)
return
}
if (m.tp === "create_element_node") {
if (m.tp === MType.CreateElementNode) {
if(m.tag === "BODY" && this.upperBodyId === -1) {
this.upperBodyId = m.id
}
} else if (m.tp === "set_node_attribute" &&
} else if (m.tp === MType.SetNodeAttribute &&
(IGNORED_ATTRS.includes(m.name) || !ATTR_NAME_REGEXP.test(m.name))) {
logger.log("Ignorring message: ", m)
return; // Ignoring
@ -141,7 +141,7 @@ export default class DOMManager extends ListWalker<Message> {
let doc: Document | null
let styleSheet: CSSStyleSheet | PostponedStyleSheet | undefined
switch (msg.tp) {
case "create_document":
case MType.CreateDocument:
doc = this.screen.document;
if (!doc) {
logger.error("No root iframe document found", msg)
@ -166,12 +166,12 @@ export default class DOMManager extends ListWalker<Message> {
this.stylesManager.reset()
this.activeIframeRoots.clear()
return
case "create_text_node":
case MType.CreateTextNode:
vn = new VText()
this.vTexts.set(msg.id, vn)
this.insertNode(msg)
return
case "create_element_node":
case MType.CreateElementNode:
let element: Element
if (msg.svg) {
element = document.createElementNS('http://www.w3.org/2000/svg', msg.tag)
@ -191,16 +191,16 @@ export default class DOMManager extends ListWalker<Message> {
vn.enforceInsertion()
}
return
case "move_node":
case MType.MoveNode:
this.insertNode(msg);
return
case "remove_node":
case MType.RemoveNode:
vn = this.vElements.get(msg.id) || this.vTexts.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
if (!vn.parentNode) { logger.error("Parent node not found", msg); return }
vn.parentNode.removeChild(vn)
return
case "set_node_attribute":
case MType.SetNodeAttribute:
let { name, value } = msg;
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
@ -224,12 +224,12 @@ export default class DOMManager extends ListWalker<Message> {
vn.setAttribute(name, value)
this.removeBodyScroll(msg.id, vn)
return
case "remove_node_attribute":
case MType.RemoveNodeAttribute:
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
vn.removeAttribute(msg.name)
return
case "set_input_value":
case MType.SetInputValue:
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
const nodeWithValue = vn.node
@ -249,13 +249,13 @@ export default class DOMManager extends ListWalker<Message> {
}
nodeWithValue.value = val
return
case "set_input_checked":
case MType.SetInputChecked:
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
(vn.node as HTMLInputElement).checked = msg.checked
return
case "set_node_data":
case "set_css_data": // mbtodo: remove css transitions when timeflow is not natural (on jumps)
case MType.SetNodeData:
case MType.SetCssData: // mbtodo: remove css transitions when timeflow is not natural (on jumps)
vn = this.vTexts.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
vn.setData(msg.data)
@ -264,13 +264,13 @@ export default class DOMManager extends ListWalker<Message> {
// TODO: move to message parsing
doc && rewriteNodeStyleSheet(doc, vn.node)
}
if (msg.tp === "set_css_data") { // Styles in priority (do we need inlines as well?)
if (msg.tp === MType.SetCssData) { // Styles in priority (do we need inlines as well?)
vn.applyChanges()
}
return
// @depricated since 4.0.2 in favor of adopted_ss_insert/delete_rule + add_owner as being common case for StyleSheets
case "css_insert_rule":
case MType.CssInsertRule:
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
if (!(vn instanceof VStyleElement)) {
@ -279,7 +279,7 @@ export default class DOMManager extends ListWalker<Message> {
}
vn.onStyleSheet(sheet => insertRule(sheet, msg))
return
case "css_delete_rule":
case MType.CssDeleteRule:
vn = this.vElements.get(msg.id)
if (!vn) { logger.error("Node not found", msg); return }
if (!(vn instanceof VStyleElement)) {
@ -290,7 +290,7 @@ export default class DOMManager extends ListWalker<Message> {
return
// end @depricated
case "create_i_frame_document":
case MType.CreateIFrameDocument:
vn = this.vElements.get(msg.frameID)
if (!vn) { logger.error("Node not found", msg); return }
vn.enforceInsertion()
@ -321,7 +321,7 @@ export default class DOMManager extends ListWalker<Message> {
logger.warn("Context message host is not Element", msg)
}
return
case "adopted_ss_insert_rule":
case MType.AdoptedSsInsertRule:
styleSheet = this.styleSheets.get(msg.sheetID) || this.ppStyleSheets.get(msg.sheetID)
if (!styleSheet) {
logger.warn("No stylesheet was created for ", msg)
@ -329,7 +329,7 @@ export default class DOMManager extends ListWalker<Message> {
}
insertRule(styleSheet, msg)
return
case "adopted_ss_delete_rule":
case MType.AdoptedSsDeleteRule:
styleSheet = this.styleSheets.get(msg.sheetID) || this.ppStyleSheets.get(msg.sheetID)
if (!styleSheet) {
logger.warn("No stylesheet was created for ", msg)
@ -338,7 +338,7 @@ export default class DOMManager extends ListWalker<Message> {
deleteRule(styleSheet, msg)
return
case "adopted_ss_replace":
case MType.AdoptedSsReplace:
styleSheet = this.styleSheets.get(msg.sheetID)
if (!styleSheet) {
logger.warn("No stylesheet was created for ", msg)
@ -347,7 +347,7 @@ export default class DOMManager extends ListWalker<Message> {
// @ts-ignore
styleSheet.replaceSync(msg.text)
return
case "adopted_ss_add_owner":
case MType.AdoptedSsAddOwner:
vn = this.vRoots.get(msg.id)
if (!vn) {
// non-constructed case
@ -372,7 +372,7 @@ export default class DOMManager extends ListWalker<Message> {
//@ts-ignore
vn.node.adoptedStyleSheets = [...vn.node.adoptedStyleSheets, styleSheet]
return
case "adopted_ss_remove_owner":
case MType.AdoptedSsRemoveOwner:
styleSheet = this.styleSheets.get(msg.sheetID)
if (!styleSheet) {
logger.warn("No stylesheet was created for ", msg)
@ -383,7 +383,7 @@ export default class DOMManager extends ListWalker<Message> {
//@ts-ignore
vn.node.adoptedStyleSheets = [...vn.node.adoptedStyleSheets].filter(s => s !== styleSheet)
return
case "load_font_face":
case MType.LoadFontFace:
vn = this.vRoots.get(msg.parentID)
if (!vn) { logger.error("Node not found", msg); return }
if (vn instanceof VShadowRoot) { logger.error(`Node ${vn} expected to be a Document`, msg); return }

View file

@ -2,7 +2,7 @@ import type Screen from '../Screen/Screen';
import type { Message } from '../messages';
import type MessageManager from '../MessageManager';
import { MType } from '../messages';
import ListWalker from '../../common/ListWalker';
import DOMManager from './DOM/DOMManager';
@ -16,7 +16,7 @@ export default class PagesManager extends ListWalker<DOMManager> {
Assumed that messages added in a correct time sequence.
*/
appendMessage(m: Message): void {
if (m.tp === "create_document") {
if (m.tp === MType.CreateDocument) {
super.append(new DOMManager(this.screen, this.isMobile, m.time, this.mm))
}
if (this.last === null) {

View file

@ -10,16 +10,17 @@ import type {
RawAdoptedSsInsertRule,
RawAdoptedSsReplaceURLBased,
RawAdoptedSsReplace,
} from './raw'
import type { TrackerMessage } from './tracker'
import translate from './tracker'
import { TP_MAP } from './tracker-legacy'
} from './raw.gen'
import type { TrackerMessage } from './tracker.gen'
import { MType } from './raw.gen'
import translate from './tracker.gen'
import { TP_MAP } from './tracker-legacy.gen'
import { resolveURL, resolveCSS } from './urlResolve'
function legacyTranslate(msg: any): RawMessage | null {
const type = TP_MAP[msg._id as keyof typeof TP_MAP]
if (!type) {
if (!type) { // msg._id can be other than keyof TP_MAP, in fact
return null
}
msg.tp = type
@ -30,7 +31,7 @@ function legacyTranslate(msg: any): RawMessage | null {
// TODO: commonURLBased logic for feilds
const resolvers = {
"set_node_attribute_url_based": (msg: RawSetNodeAttributeURLBased): RawSetNodeAttribute =>
[MType.SetNodeAttributeURLBased]: (msg: RawSetNodeAttributeURLBased): RawSetNodeAttribute =>
({
...msg,
value: msg.name === 'src' || msg.name === 'href'
@ -39,31 +40,31 @@ const resolvers = {
? resolveCSS(msg.baseURL, msg.value)
: msg.value
),
tp: "set_node_attribute",
tp: MType.SetNodeAttribute,
}),
"set_css_data_url_based": (msg: RawSetCssDataURLBased): RawSetCssData =>
[MType.SetCssDataURLBased]: (msg: RawSetCssDataURLBased): RawSetCssData =>
({
...msg,
data: resolveCSS(msg.baseURL, msg.data),
tp: "set_css_data",
tp: MType.SetCssData,
}),
"css_insert_rule_url_based": (msg: RawCssInsertRuleURLBased): RawCssInsertRule =>
[MType.CssInsertRuleURLBased]: (msg: RawCssInsertRuleURLBased): RawCssInsertRule =>
({
...msg,
rule: resolveCSS(msg.baseURL, msg.rule),
tp: "css_insert_rule",
tp: MType.CssInsertRule,
}),
"adopted_ss_insert_rule_url_based": (msg: RawAdoptedSsInsertRuleURLBased): RawAdoptedSsInsertRule =>
[MType.AdoptedSsInsertRuleURLBased]: (msg: RawAdoptedSsInsertRuleURLBased): RawAdoptedSsInsertRule =>
({
...msg,
rule: resolveCSS(msg.baseURL, msg.rule),
tp: "adopted_ss_insert_rule",
tp: MType.AdoptedSsInsertRule,
}),
"adopted_ss_replace_url_based": (msg: RawAdoptedSsReplaceURLBased): RawAdoptedSsReplace =>
[MType.AdoptedSsReplaceURLBased]: (msg: RawAdoptedSsReplaceURLBased): RawAdoptedSsReplace =>
({
...msg,
text: resolveCSS(msg.baseURL, msg.text),
tp: "adopted_ss_replace"
tp: MType.AdoptedSsReplace,
}),
} as const

View file

@ -1,7 +1,8 @@
import type { Message } from './message';
import type { RawMessage } from './raw';
import type { Message } from './message.gen';
import type { RawMessage } from './raw.gen';
import { MType } from './raw.gen';
import logger from 'App/logger';
import RawMessageReader from './RawMessageReader';
import RawMessageReader from './RawMessageReader.gen';
// TODO: composition instead of inheritance
// needSkipMessage() and next() methods here use buf and p protected properties,
@ -67,7 +68,7 @@ export default class MFileReader extends RawMessageReader {
return null
}
if (rMsg.tp === "timestamp") {
if (rMsg.tp === MType.Timestamp) {
if (!this.startTime) {
this.startTime = rMsg.timestamp
}

View file

@ -1,6 +1,7 @@
import type { Message } from './message'
import type { RawMessage } from './raw'
import RawMessageReader from './RawMessageReader'
import type { Message } from './message.gen'
import type { RawMessage } from './raw.gen'
import { MType } from './raw.gen'
import RawMessageReader from './RawMessageReader.gen'
interface RawMessageReaderI {
readMessage(): RawMessage | null
@ -14,7 +15,7 @@ export default class MStreamReader {
readNext(): Message | null {
let msg = this.r.readMessage()
if (msg === null) { return null }
if (msg.tp === "timestamp") {
if (msg.tp === MType.Timestamp) {
this.startTs = this.startTs || msg.timestamp
this.t = msg.timestamp - this.startTs
return this.readNext()

View file

@ -2,7 +2,8 @@
/* eslint-disable */
import PrimitiveReader from './PrimitiveReader'
import type { RawMessage } from './raw'
import { MType } from './raw.gen'
import type { RawMessage } from './raw.gen'
export default class RawMessageReader extends PrimitiveReader {
@ -21,7 +22,7 @@ export default class RawMessageReader extends PrimitiveReader {
case 0: {
const timestamp = this.readUint(); if (timestamp === null) { return resetPointer() }
return {
tp: "timestamp",
tp: MType.Timestamp,
timestamp,
};
}
@ -31,7 +32,7 @@ export default class RawMessageReader extends PrimitiveReader {
const referrer = this.readString(); if (referrer === null) { return resetPointer() }
const navigationStart = this.readUint(); if (navigationStart === null) { return resetPointer() }
return {
tp: "set_page_location",
tp: MType.SetPageLocation,
url,
referrer,
navigationStart,
@ -42,7 +43,7 @@ export default class RawMessageReader extends PrimitiveReader {
const width = this.readUint(); if (width === null) { return resetPointer() }
const height = this.readUint(); if (height === null) { return resetPointer() }
return {
tp: "set_viewport_size",
tp: MType.SetViewportSize,
width,
height,
};
@ -52,7 +53,7 @@ export default class RawMessageReader extends PrimitiveReader {
const x = this.readInt(); if (x === null) { return resetPointer() }
const y = this.readInt(); if (y === null) { return resetPointer() }
return {
tp: "set_viewport_scroll",
tp: MType.SetViewportScroll,
x,
y,
};
@ -61,7 +62,7 @@ export default class RawMessageReader extends PrimitiveReader {
case 7: {
return {
tp: "create_document",
tp: MType.CreateDocument,
};
}
@ -73,7 +74,7 @@ export default class RawMessageReader extends PrimitiveReader {
const tag = this.readString(); if (tag === null) { return resetPointer() }
const svg = this.readBoolean(); if (svg === null) { return resetPointer() }
return {
tp: "create_element_node",
tp: MType.CreateElementNode,
id,
parentID,
index,
@ -87,7 +88,7 @@ export default class RawMessageReader extends PrimitiveReader {
const parentID = this.readUint(); if (parentID === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "create_text_node",
tp: MType.CreateTextNode,
id,
parentID,
index,
@ -99,7 +100,7 @@ export default class RawMessageReader extends PrimitiveReader {
const parentID = this.readUint(); if (parentID === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "move_node",
tp: MType.MoveNode,
id,
parentID,
index,
@ -109,7 +110,7 @@ export default class RawMessageReader extends PrimitiveReader {
case 11: {
const id = this.readUint(); if (id === null) { return resetPointer() }
return {
tp: "remove_node",
tp: MType.RemoveNode,
id,
};
}
@ -119,7 +120,7 @@ export default class RawMessageReader extends PrimitiveReader {
const name = this.readString(); if (name === null) { return resetPointer() }
const value = this.readString(); if (value === null) { return resetPointer() }
return {
tp: "set_node_attribute",
tp: MType.SetNodeAttribute,
id,
name,
value,
@ -130,7 +131,7 @@ export default class RawMessageReader extends PrimitiveReader {
const id = this.readUint(); if (id === null) { return resetPointer() }
const name = this.readString(); if (name === null) { return resetPointer() }
return {
tp: "remove_node_attribute",
tp: MType.RemoveNodeAttribute,
id,
name,
};
@ -140,7 +141,7 @@ export default class RawMessageReader extends PrimitiveReader {
const id = this.readUint(); if (id === null) { return resetPointer() }
const data = this.readString(); if (data === null) { return resetPointer() }
return {
tp: "set_node_data",
tp: MType.SetNodeData,
id,
data,
};
@ -150,7 +151,7 @@ export default class RawMessageReader extends PrimitiveReader {
const id = this.readUint(); if (id === null) { return resetPointer() }
const data = this.readString(); if (data === null) { return resetPointer() }
return {
tp: "set_css_data",
tp: MType.SetCssData,
id,
data,
};
@ -161,7 +162,7 @@ export default class RawMessageReader extends PrimitiveReader {
const x = this.readInt(); if (x === null) { return resetPointer() }
const y = this.readInt(); if (y === null) { return resetPointer() }
return {
tp: "set_node_scroll",
tp: MType.SetNodeScroll,
id,
x,
y,
@ -173,7 +174,7 @@ export default class RawMessageReader extends PrimitiveReader {
const value = this.readString(); if (value === null) { return resetPointer() }
const mask = this.readInt(); if (mask === null) { return resetPointer() }
return {
tp: "set_input_value",
tp: MType.SetInputValue,
id,
value,
mask,
@ -184,7 +185,7 @@ export default class RawMessageReader extends PrimitiveReader {
const id = this.readUint(); if (id === null) { return resetPointer() }
const checked = this.readBoolean(); if (checked === null) { return resetPointer() }
return {
tp: "set_input_checked",
tp: MType.SetInputChecked,
id,
checked,
};
@ -194,7 +195,7 @@ export default class RawMessageReader extends PrimitiveReader {
const x = this.readUint(); if (x === null) { return resetPointer() }
const y = this.readUint(); if (y === null) { return resetPointer() }
return {
tp: "mouse_move",
tp: MType.MouseMove,
x,
y,
};
@ -204,7 +205,7 @@ export default class RawMessageReader extends PrimitiveReader {
const level = this.readString(); if (level === null) { return resetPointer() }
const value = this.readString(); if (value === null) { return resetPointer() }
return {
tp: "console_log",
tp: MType.ConsoleLog,
level,
value,
};
@ -215,7 +216,7 @@ export default class RawMessageReader extends PrimitiveReader {
const rule = this.readString(); if (rule === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "css_insert_rule",
tp: MType.CssInsertRule,
id,
rule,
index,
@ -226,7 +227,7 @@ export default class RawMessageReader extends PrimitiveReader {
const id = this.readUint(); if (id === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "css_delete_rule",
tp: MType.CssDeleteRule,
id,
index,
};
@ -241,7 +242,7 @@ export default class RawMessageReader extends PrimitiveReader {
const timestamp = this.readUint(); if (timestamp === null) { return resetPointer() }
const duration = this.readUint(); if (duration === null) { return resetPointer() }
return {
tp: "fetch",
tp: MType.Fetch,
method,
url,
request,
@ -258,7 +259,7 @@ export default class RawMessageReader extends PrimitiveReader {
const args = this.readString(); if (args === null) { return resetPointer() }
const result = this.readString(); if (result === null) { return resetPointer() }
return {
tp: "profiler",
tp: MType.Profiler,
name,
duration,
args,
@ -270,7 +271,7 @@ export default class RawMessageReader extends PrimitiveReader {
const key = this.readString(); if (key === null) { return resetPointer() }
const value = this.readString(); if (value === null) { return resetPointer() }
return {
tp: "o_table",
tp: MType.OTable,
key,
value,
};
@ -281,7 +282,7 @@ export default class RawMessageReader extends PrimitiveReader {
const state = this.readString(); if (state === null) { return resetPointer() }
const duration = this.readUint(); if (duration === null) { return resetPointer() }
return {
tp: "redux",
tp: MType.Redux,
action,
state,
duration,
@ -292,7 +293,7 @@ export default class RawMessageReader extends PrimitiveReader {
const mutation = this.readString(); if (mutation === null) { return resetPointer() }
const state = this.readString(); if (state === null) { return resetPointer() }
return {
tp: "vuex",
tp: MType.Vuex,
mutation,
state,
};
@ -302,7 +303,7 @@ export default class RawMessageReader extends PrimitiveReader {
const type = this.readString(); if (type === null) { return resetPointer() }
const payload = this.readString(); if (payload === null) { return resetPointer() }
return {
tp: "mob_x",
tp: MType.MobX,
type,
payload,
};
@ -313,7 +314,7 @@ export default class RawMessageReader extends PrimitiveReader {
const state = this.readString(); if (state === null) { return resetPointer() }
const duration = this.readUint(); if (duration === null) { return resetPointer() }
return {
tp: "ng_rx",
tp: MType.NgRx,
action,
state,
duration,
@ -326,7 +327,7 @@ export default class RawMessageReader extends PrimitiveReader {
const variables = this.readString(); if (variables === null) { return resetPointer() }
const response = this.readString(); if (response === null) { return resetPointer() }
return {
tp: "graph_ql",
tp: MType.GraphQl,
operationKind,
operationName,
variables,
@ -340,7 +341,7 @@ export default class RawMessageReader extends PrimitiveReader {
const totalJSHeapSize = this.readUint(); if (totalJSHeapSize === null) { return resetPointer() }
const usedJSHeapSize = this.readUint(); if (usedJSHeapSize === null) { return resetPointer() }
return {
tp: "performance_track",
tp: MType.PerformanceTrack,
frames,
ticks,
totalJSHeapSize,
@ -352,7 +353,7 @@ export default class RawMessageReader extends PrimitiveReader {
const downlink = this.readUint(); if (downlink === null) { return resetPointer() }
const type = this.readString(); if (type === null) { return resetPointer() }
return {
tp: "connection_information",
tp: MType.ConnectionInformation,
downlink,
type,
};
@ -361,7 +362,7 @@ export default class RawMessageReader extends PrimitiveReader {
case 55: {
const hidden = this.readBoolean(); if (hidden === null) { return resetPointer() }
return {
tp: "set_page_visibility",
tp: MType.SetPageVisibility,
hidden,
};
}
@ -372,7 +373,7 @@ export default class RawMessageReader extends PrimitiveReader {
const source = this.readString(); if (source === null) { return resetPointer() }
const descriptors = this.readString(); if (descriptors === null) { return resetPointer() }
return {
tp: "load_font_face",
tp: MType.LoadFontFace,
parentID,
family,
source,
@ -383,7 +384,7 @@ export default class RawMessageReader extends PrimitiveReader {
case 58: {
const id = this.readInt(); if (id === null) { return resetPointer() }
return {
tp: "set_node_focus",
tp: MType.SetNodeFocus,
id,
};
}
@ -397,7 +398,7 @@ export default class RawMessageReader extends PrimitiveReader {
const containerId = this.readString(); if (containerId === null) { return resetPointer() }
const containerName = this.readString(); if (containerName === null) { return resetPointer() }
return {
tp: "long_task",
tp: MType.LongTask,
timestamp,
duration,
context,
@ -414,7 +415,7 @@ export default class RawMessageReader extends PrimitiveReader {
const value = this.readString(); if (value === null) { return resetPointer() }
const baseURL = this.readString(); if (baseURL === null) { return resetPointer() }
return {
tp: "set_node_attribute_url_based",
tp: MType.SetNodeAttributeURLBased,
id,
name,
value,
@ -427,7 +428,7 @@ export default class RawMessageReader extends PrimitiveReader {
const data = this.readString(); if (data === null) { return resetPointer() }
const baseURL = this.readString(); if (baseURL === null) { return resetPointer() }
return {
tp: "set_css_data_url_based",
tp: MType.SetCssDataURLBased,
id,
data,
baseURL,
@ -440,7 +441,7 @@ export default class RawMessageReader extends PrimitiveReader {
const index = this.readUint(); if (index === null) { return resetPointer() }
const baseURL = this.readString(); if (baseURL === null) { return resetPointer() }
return {
tp: "css_insert_rule_url_based",
tp: MType.CssInsertRuleURLBased,
id,
rule,
index,
@ -454,7 +455,7 @@ export default class RawMessageReader extends PrimitiveReader {
const label = this.readString(); if (label === null) { return resetPointer() }
const selector = this.readString(); if (selector === null) { return resetPointer() }
return {
tp: "mouse_click",
tp: MType.MouseClick,
id,
hesitationTime,
label,
@ -466,7 +467,7 @@ export default class RawMessageReader extends PrimitiveReader {
const frameID = this.readUint(); if (frameID === null) { return resetPointer() }
const id = this.readUint(); if (id === null) { return resetPointer() }
return {
tp: "create_i_frame_document",
tp: MType.CreateIFrameDocument,
frameID,
id,
};
@ -477,7 +478,7 @@ export default class RawMessageReader extends PrimitiveReader {
const text = this.readString(); if (text === null) { return resetPointer() }
const baseURL = this.readString(); if (baseURL === null) { return resetPointer() }
return {
tp: "adopted_ss_replace_url_based",
tp: MType.AdoptedSsReplaceURLBased,
sheetID,
text,
baseURL,
@ -488,7 +489,7 @@ export default class RawMessageReader extends PrimitiveReader {
const sheetID = this.readUint(); if (sheetID === null) { return resetPointer() }
const text = this.readString(); if (text === null) { return resetPointer() }
return {
tp: "adopted_ss_replace",
tp: MType.AdoptedSsReplace,
sheetID,
text,
};
@ -500,7 +501,7 @@ export default class RawMessageReader extends PrimitiveReader {
const index = this.readUint(); if (index === null) { return resetPointer() }
const baseURL = this.readString(); if (baseURL === null) { return resetPointer() }
return {
tp: "adopted_ss_insert_rule_url_based",
tp: MType.AdoptedSsInsertRuleURLBased,
sheetID,
rule,
index,
@ -513,7 +514,7 @@ export default class RawMessageReader extends PrimitiveReader {
const rule = this.readString(); if (rule === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "adopted_ss_insert_rule",
tp: MType.AdoptedSsInsertRule,
sheetID,
rule,
index,
@ -524,7 +525,7 @@ export default class RawMessageReader extends PrimitiveReader {
const sheetID = this.readUint(); if (sheetID === null) { return resetPointer() }
const index = this.readUint(); if (index === null) { return resetPointer() }
return {
tp: "adopted_ss_delete_rule",
tp: MType.AdoptedSsDeleteRule,
sheetID,
index,
};
@ -534,7 +535,7 @@ export default class RawMessageReader extends PrimitiveReader {
const sheetID = this.readUint(); if (sheetID === null) { return resetPointer() }
const id = this.readUint(); if (id === null) { return resetPointer() }
return {
tp: "adopted_ss_add_owner",
tp: MType.AdoptedSsAddOwner,
sheetID,
id,
};
@ -544,7 +545,7 @@ export default class RawMessageReader extends PrimitiveReader {
const sheetID = this.readUint(); if (sheetID === null) { return resetPointer() }
const id = this.readUint(); if (id === null) { return resetPointer() }
return {
tp: "adopted_ss_remove_owner",
tp: MType.AdoptedSsRemoveOwner,
sheetID,
id,
};
@ -554,7 +555,7 @@ export default class RawMessageReader extends PrimitiveReader {
const mutation = this.readString(); if (mutation === null) { return resetPointer() }
const state = this.readString(); if (state === null) { return resetPointer() }
return {
tp: "zustand",
tp: MType.Zustand,
mutation,
state,
};
@ -572,7 +573,7 @@ export default class RawMessageReader extends PrimitiveReader {
const userDeviceType = this.readString(); if (userDeviceType === null) { return resetPointer() }
const userCountry = this.readString(); if (userCountry === null) { return resetPointer() }
return {
tp: "ios_session_start",
tp: MType.IosSessionStart,
timestamp,
projectID,
trackerVersion,
@ -592,7 +593,7 @@ export default class RawMessageReader extends PrimitiveReader {
const name = this.readString(); if (name === null) { return resetPointer() }
const payload = this.readString(); if (payload === null) { return resetPointer() }
return {
tp: "ios_custom_event",
tp: MType.IosCustomEvent,
timestamp,
length,
name,
@ -608,7 +609,7 @@ export default class RawMessageReader extends PrimitiveReader {
const width = this.readUint(); if (width === null) { return resetPointer() }
const height = this.readUint(); if (height === null) { return resetPointer() }
return {
tp: "ios_screen_changes",
tp: MType.IosScreenChanges,
timestamp,
length,
x,
@ -625,7 +626,7 @@ export default class RawMessageReader extends PrimitiveReader {
const x = this.readUint(); if (x === null) { return resetPointer() }
const y = this.readUint(); if (y === null) { return resetPointer() }
return {
tp: "ios_click_event",
tp: MType.IosClickEvent,
timestamp,
length,
label,
@ -640,7 +641,7 @@ export default class RawMessageReader extends PrimitiveReader {
const name = this.readString(); if (name === null) { return resetPointer() }
const value = this.readUint(); if (value === null) { return resetPointer() }
return {
tp: "ios_performance_event",
tp: MType.IosPerformanceEvent,
timestamp,
length,
name,
@ -654,7 +655,7 @@ export default class RawMessageReader extends PrimitiveReader {
const severity = this.readString(); if (severity === null) { return resetPointer() }
const content = this.readString(); if (content === null) { return resetPointer() }
return {
tp: "ios_log",
tp: MType.IosLog,
timestamp,
length,
severity,
@ -673,7 +674,7 @@ export default class RawMessageReader extends PrimitiveReader {
const method = this.readString(); if (method === null) { return resetPointer() }
const status = this.readUint(); if (status === null) { return resetPointer() }
return {
tp: "ios_network_call",
tp: MType.IosNetworkCall,
timestamp,
length,
duration,

View file

@ -1 +1,2 @@
export * from './message'
export * from './message.gen'
export { MType } from './raw.gen'

View file

@ -2,7 +2,7 @@
/* eslint-disable */
import type { Timed } from './timed'
import type { RawMessage } from './raw'
import type { RawMessage } from './raw.gen'
import type {
RawTimestamp,
RawSetPageLocation,
@ -58,7 +58,7 @@ import type {
RawIosPerformanceEvent,
RawIosLog,
RawIosNetworkCall,
} from './raw'
} from './raw.gen'
export type Message = RawMessage & Timed

View file

@ -1,38 +1,95 @@
// Auto-generated, do not edit
/* eslint-disable */
export const enum MType {
Timestamp = 0,
SetPageLocation = 4,
SetViewportSize = 5,
SetViewportScroll = 6,
CreateDocument = 7,
CreateElementNode = 8,
CreateTextNode = 9,
MoveNode = 10,
RemoveNode = 11,
SetNodeAttribute = 12,
RemoveNodeAttribute = 13,
SetNodeData = 14,
SetCssData = 15,
SetNodeScroll = 16,
SetInputValue = 18,
SetInputChecked = 19,
MouseMove = 20,
ConsoleLog = 22,
CssInsertRule = 37,
CssDeleteRule = 38,
Fetch = 39,
Profiler = 40,
OTable = 41,
Redux = 44,
Vuex = 45,
MobX = 46,
NgRx = 47,
GraphQl = 48,
PerformanceTrack = 49,
ConnectionInformation = 54,
SetPageVisibility = 55,
LoadFontFace = 57,
SetNodeFocus = 58,
LongTask = 59,
SetNodeAttributeURLBased = 60,
SetCssDataURLBased = 61,
CssInsertRuleURLBased = 67,
MouseClick = 69,
CreateIFrameDocument = 70,
AdoptedSsReplaceURLBased = 71,
AdoptedSsReplace = 72,
AdoptedSsInsertRuleURLBased = 73,
AdoptedSsInsertRule = 74,
AdoptedSsDeleteRule = 75,
AdoptedSsAddOwner = 76,
AdoptedSsRemoveOwner = 77,
Zustand = 79,
IosSessionStart = 90,
IosCustomEvent = 93,
IosScreenChanges = 96,
IosClickEvent = 100,
IosPerformanceEvent = 102,
IosLog = 103,
IosNetworkCall = 105,
}
export interface RawTimestamp {
tp: "timestamp",
tp: MType.Timestamp,
timestamp: number,
}
export interface RawSetPageLocation {
tp: "set_page_location",
tp: MType.SetPageLocation,
url: string,
referrer: string,
navigationStart: number,
}
export interface RawSetViewportSize {
tp: "set_viewport_size",
tp: MType.SetViewportSize,
width: number,
height: number,
}
export interface RawSetViewportScroll {
tp: "set_viewport_scroll",
tp: MType.SetViewportScroll,
x: number,
y: number,
}
export interface RawCreateDocument {
tp: "create_document",
tp: MType.CreateDocument,
}
export interface RawCreateElementNode {
tp: "create_element_node",
tp: MType.CreateElementNode,
id: number,
parentID: number,
index: number,
@ -41,96 +98,96 @@ export interface RawCreateElementNode {
}
export interface RawCreateTextNode {
tp: "create_text_node",
tp: MType.CreateTextNode,
id: number,
parentID: number,
index: number,
}
export interface RawMoveNode {
tp: "move_node",
tp: MType.MoveNode,
id: number,
parentID: number,
index: number,
}
export interface RawRemoveNode {
tp: "remove_node",
tp: MType.RemoveNode,
id: number,
}
export interface RawSetNodeAttribute {
tp: "set_node_attribute",
tp: MType.SetNodeAttribute,
id: number,
name: string,
value: string,
}
export interface RawRemoveNodeAttribute {
tp: "remove_node_attribute",
tp: MType.RemoveNodeAttribute,
id: number,
name: string,
}
export interface RawSetNodeData {
tp: "set_node_data",
tp: MType.SetNodeData,
id: number,
data: string,
}
export interface RawSetCssData {
tp: "set_css_data",
tp: MType.SetCssData,
id: number,
data: string,
}
export interface RawSetNodeScroll {
tp: "set_node_scroll",
tp: MType.SetNodeScroll,
id: number,
x: number,
y: number,
}
export interface RawSetInputValue {
tp: "set_input_value",
tp: MType.SetInputValue,
id: number,
value: string,
mask: number,
}
export interface RawSetInputChecked {
tp: "set_input_checked",
tp: MType.SetInputChecked,
id: number,
checked: boolean,
}
export interface RawMouseMove {
tp: "mouse_move",
tp: MType.MouseMove,
x: number,
y: number,
}
export interface RawConsoleLog {
tp: "console_log",
tp: MType.ConsoleLog,
level: string,
value: string,
}
export interface RawCssInsertRule {
tp: "css_insert_rule",
tp: MType.CssInsertRule,
id: number,
rule: string,
index: number,
}
export interface RawCssDeleteRule {
tp: "css_delete_rule",
tp: MType.CssDeleteRule,
id: number,
index: number,
}
export interface RawFetch {
tp: "fetch",
tp: MType.Fetch,
method: string,
url: string,
request: string,
@ -141,7 +198,7 @@ export interface RawFetch {
}
export interface RawProfiler {
tp: "profiler",
tp: MType.Profiler,
name: string,
duration: number,
args: string,
@ -149,39 +206,39 @@ export interface RawProfiler {
}
export interface RawOTable {
tp: "o_table",
tp: MType.OTable,
key: string,
value: string,
}
export interface RawRedux {
tp: "redux",
tp: MType.Redux,
action: string,
state: string,
duration: number,
}
export interface RawVuex {
tp: "vuex",
tp: MType.Vuex,
mutation: string,
state: string,
}
export interface RawMobX {
tp: "mob_x",
tp: MType.MobX,
type: string,
payload: string,
}
export interface RawNgRx {
tp: "ng_rx",
tp: MType.NgRx,
action: string,
state: string,
duration: number,
}
export interface RawGraphQl {
tp: "graph_ql",
tp: MType.GraphQl,
operationKind: string,
operationName: string,
variables: string,
@ -189,7 +246,7 @@ export interface RawGraphQl {
}
export interface RawPerformanceTrack {
tp: "performance_track",
tp: MType.PerformanceTrack,
frames: number,
ticks: number,
totalJSHeapSize: number,
@ -197,18 +254,18 @@ export interface RawPerformanceTrack {
}
export interface RawConnectionInformation {
tp: "connection_information",
tp: MType.ConnectionInformation,
downlink: number,
type: string,
}
export interface RawSetPageVisibility {
tp: "set_page_visibility",
tp: MType.SetPageVisibility,
hidden: boolean,
}
export interface RawLoadFontFace {
tp: "load_font_face",
tp: MType.LoadFontFace,
parentID: number,
family: string,
source: string,
@ -216,12 +273,12 @@ export interface RawLoadFontFace {
}
export interface RawSetNodeFocus {
tp: "set_node_focus",
tp: MType.SetNodeFocus,
id: number,
}
export interface RawLongTask {
tp: "long_task",
tp: MType.LongTask,
timestamp: number,
duration: number,
context: number,
@ -232,7 +289,7 @@ export interface RawLongTask {
}
export interface RawSetNodeAttributeURLBased {
tp: "set_node_attribute_url_based",
tp: MType.SetNodeAttributeURLBased,
id: number,
name: string,
value: string,
@ -240,14 +297,14 @@ export interface RawSetNodeAttributeURLBased {
}
export interface RawSetCssDataURLBased {
tp: "set_css_data_url_based",
tp: MType.SetCssDataURLBased,
id: number,
data: string,
baseURL: string,
}
export interface RawCssInsertRuleURLBased {
tp: "css_insert_rule_url_based",
tp: MType.CssInsertRuleURLBased,
id: number,
rule: string,
index: number,
@ -255,7 +312,7 @@ export interface RawCssInsertRuleURLBased {
}
export interface RawMouseClick {
tp: "mouse_click",
tp: MType.MouseClick,
id: number,
hesitationTime: number,
label: string,
@ -263,26 +320,26 @@ export interface RawMouseClick {
}
export interface RawCreateIFrameDocument {
tp: "create_i_frame_document",
tp: MType.CreateIFrameDocument,
frameID: number,
id: number,
}
export interface RawAdoptedSsReplaceURLBased {
tp: "adopted_ss_replace_url_based",
tp: MType.AdoptedSsReplaceURLBased,
sheetID: number,
text: string,
baseURL: string,
}
export interface RawAdoptedSsReplace {
tp: "adopted_ss_replace",
tp: MType.AdoptedSsReplace,
sheetID: number,
text: string,
}
export interface RawAdoptedSsInsertRuleURLBased {
tp: "adopted_ss_insert_rule_url_based",
tp: MType.AdoptedSsInsertRuleURLBased,
sheetID: number,
rule: string,
index: number,
@ -290,38 +347,38 @@ export interface RawAdoptedSsInsertRuleURLBased {
}
export interface RawAdoptedSsInsertRule {
tp: "adopted_ss_insert_rule",
tp: MType.AdoptedSsInsertRule,
sheetID: number,
rule: string,
index: number,
}
export interface RawAdoptedSsDeleteRule {
tp: "adopted_ss_delete_rule",
tp: MType.AdoptedSsDeleteRule,
sheetID: number,
index: number,
}
export interface RawAdoptedSsAddOwner {
tp: "adopted_ss_add_owner",
tp: MType.AdoptedSsAddOwner,
sheetID: number,
id: number,
}
export interface RawAdoptedSsRemoveOwner {
tp: "adopted_ss_remove_owner",
tp: MType.AdoptedSsRemoveOwner,
sheetID: number,
id: number,
}
export interface RawZustand {
tp: "zustand",
tp: MType.Zustand,
mutation: string,
state: string,
}
export interface RawIosSessionStart {
tp: "ios_session_start",
tp: MType.IosSessionStart,
timestamp: number,
projectID: number,
trackerVersion: string,
@ -335,7 +392,7 @@ export interface RawIosSessionStart {
}
export interface RawIosCustomEvent {
tp: "ios_custom_event",
tp: MType.IosCustomEvent,
timestamp: number,
length: number,
name: string,
@ -343,7 +400,7 @@ export interface RawIosCustomEvent {
}
export interface RawIosScreenChanges {
tp: "ios_screen_changes",
tp: MType.IosScreenChanges,
timestamp: number,
length: number,
x: number,
@ -353,7 +410,7 @@ export interface RawIosScreenChanges {
}
export interface RawIosClickEvent {
tp: "ios_click_event",
tp: MType.IosClickEvent,
timestamp: number,
length: number,
label: string,
@ -362,7 +419,7 @@ export interface RawIosClickEvent {
}
export interface RawIosPerformanceEvent {
tp: "ios_performance_event",
tp: MType.IosPerformanceEvent,
timestamp: number,
length: number,
name: string,
@ -370,7 +427,7 @@ export interface RawIosPerformanceEvent {
}
export interface RawIosLog {
tp: "ios_log",
tp: MType.IosLog,
timestamp: number,
length: number,
severity: string,
@ -378,7 +435,7 @@ export interface RawIosLog {
}
export interface RawIosNetworkCall {
tp: "ios_network_call",
tp: MType.IosNetworkCall,
timestamp: number,
length: number,
duration: number,

View file

@ -0,0 +1,60 @@
// Auto-generated, do not edit
import { MType } from './raw.gen'
export const TP_MAP = {
0: MType.Timestamp,
4: MType.SetPageLocation,
5: MType.SetViewportSize,
6: MType.SetViewportScroll,
7: MType.CreateDocument,
8: MType.CreateElementNode,
9: MType.CreateTextNode,
10: MType.MoveNode,
11: MType.RemoveNode,
12: MType.SetNodeAttribute,
13: MType.RemoveNodeAttribute,
14: MType.SetNodeData,
15: MType.SetCssData,
16: MType.SetNodeScroll,
18: MType.SetInputValue,
19: MType.SetInputChecked,
20: MType.MouseMove,
22: MType.ConsoleLog,
37: MType.CssInsertRule,
38: MType.CssDeleteRule,
39: MType.Fetch,
40: MType.Profiler,
41: MType.OTable,
44: MType.Redux,
45: MType.Vuex,
46: MType.MobX,
47: MType.NgRx,
48: MType.GraphQl,
49: MType.PerformanceTrack,
54: MType.ConnectionInformation,
55: MType.SetPageVisibility,
57: MType.LoadFontFace,
58: MType.SetNodeFocus,
59: MType.LongTask,
60: MType.SetNodeAttributeURLBased,
61: MType.SetCssDataURLBased,
67: MType.CssInsertRuleURLBased,
69: MType.MouseClick,
70: MType.CreateIFrameDocument,
71: MType.AdoptedSsReplaceURLBased,
72: MType.AdoptedSsReplace,
73: MType.AdoptedSsInsertRuleURLBased,
74: MType.AdoptedSsInsertRule,
75: MType.AdoptedSsDeleteRule,
76: MType.AdoptedSsAddOwner,
77: MType.AdoptedSsRemoveOwner,
79: MType.Zustand,
90: MType.IosSessionStart,
93: MType.IosCustomEvent,
96: MType.IosScreenChanges,
100: MType.IosClickEvent,
102: MType.IosPerformanceEvent,
103: MType.IosLog,
105: MType.IosNetworkCall,
} as const

View file

@ -1,75 +0,0 @@
// @ts-nocheck
/* eslint-disable */
// Auto-generated, do not edit
export const TP_MAP = {
81: "batch_metadata",
82: "partitioned_message",
0: "timestamp",
4: "set_page_location",
5: "set_viewport_size",
6: "set_viewport_scroll",
7: "create_document",
8: "create_element_node",
9: "create_text_node",
10: "move_node",
11: "remove_node",
12: "set_node_attribute",
13: "remove_node_attribute",
14: "set_node_data",
15: "set_css_data",
16: "set_node_scroll",
17: "set_input_target",
18: "set_input_value",
19: "set_input_checked",
20: "mouse_move",
22: "console_log",
23: "page_load_timing",
24: "page_render_timing",
25: "js_exception_deprecated",
27: "raw_custom_event",
28: "user_id",
29: "user_anonymous_id",
30: "metadata",
37: "css_insert_rule",
38: "css_delete_rule",
39: "fetch",
40: "profiler",
41: "o_table",
42: "state_action",
44: "redux",
45: "vuex",
46: "mob_x",
47: "ng_rx",
48: "graph_ql",
49: "performance_track",
53: "resource_timing",
54: "connection_information",
55: "set_page_visibility",
57: "load_font_face",
58: "set_node_focus",
59: "long_task",
60: "set_node_attribute_url_based",
61: "set_css_data_url_based",
63: "technical_info",
64: "custom_issue",
67: "css_insert_rule_url_based",
69: "mouse_click",
70: "create_i_frame_document",
71: "adopted_ss_replace_url_based",
72: "adopted_ss_replace",
73: "adopted_ss_insert_rule_url_based",
74: "adopted_ss_insert_rule",
75: "adopted_ss_delete_rule",
76: "adopted_ss_add_owner",
77: "adopted_ss_remove_owner",
79: "zustand",
78: "js_exception",
90: "ios_session_start",
93: "ios_custom_event",
96: "ios_screen_changes",
100: "ios_click_event",
102: "ios_performance_event",
103: "ios_log",
105: "ios_network_call",
} as const

View file

@ -1,7 +1,8 @@
// Auto-generated, do not edit
/* eslint-disable */
import type { RawMessage } from './raw'
import type { RawMessage } from './raw.gen'
import { MType } from './raw.gen'
type TrBatchMetadata = [
@ -418,14 +419,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 0: {
return {
tp: "timestamp",
tp: MType.Timestamp,
timestamp: tMsg[1],
}
}
case 4: {
return {
tp: "set_page_location",
tp: MType.SetPageLocation,
url: tMsg[1],
referrer: tMsg[2],
navigationStart: tMsg[3],
@ -434,7 +435,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 5: {
return {
tp: "set_viewport_size",
tp: MType.SetViewportSize,
width: tMsg[1],
height: tMsg[2],
}
@ -442,7 +443,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 6: {
return {
tp: "set_viewport_scroll",
tp: MType.SetViewportScroll,
x: tMsg[1],
y: tMsg[2],
}
@ -450,14 +451,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 7: {
return {
tp: "create_document",
tp: MType.CreateDocument,
}
}
case 8: {
return {
tp: "create_element_node",
tp: MType.CreateElementNode,
id: tMsg[1],
parentID: tMsg[2],
index: tMsg[3],
@ -468,7 +469,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 9: {
return {
tp: "create_text_node",
tp: MType.CreateTextNode,
id: tMsg[1],
parentID: tMsg[2],
index: tMsg[3],
@ -477,7 +478,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 10: {
return {
tp: "move_node",
tp: MType.MoveNode,
id: tMsg[1],
parentID: tMsg[2],
index: tMsg[3],
@ -486,14 +487,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 11: {
return {
tp: "remove_node",
tp: MType.RemoveNode,
id: tMsg[1],
}
}
case 12: {
return {
tp: "set_node_attribute",
tp: MType.SetNodeAttribute,
id: tMsg[1],
name: tMsg[2],
value: tMsg[3],
@ -502,7 +503,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 13: {
return {
tp: "remove_node_attribute",
tp: MType.RemoveNodeAttribute,
id: tMsg[1],
name: tMsg[2],
}
@ -510,7 +511,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 14: {
return {
tp: "set_node_data",
tp: MType.SetNodeData,
id: tMsg[1],
data: tMsg[2],
}
@ -518,7 +519,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 16: {
return {
tp: "set_node_scroll",
tp: MType.SetNodeScroll,
id: tMsg[1],
x: tMsg[2],
y: tMsg[3],
@ -527,7 +528,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 18: {
return {
tp: "set_input_value",
tp: MType.SetInputValue,
id: tMsg[1],
value: tMsg[2],
mask: tMsg[3],
@ -536,7 +537,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 19: {
return {
tp: "set_input_checked",
tp: MType.SetInputChecked,
id: tMsg[1],
checked: tMsg[2],
}
@ -544,7 +545,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 20: {
return {
tp: "mouse_move",
tp: MType.MouseMove,
x: tMsg[1],
y: tMsg[2],
}
@ -552,7 +553,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 22: {
return {
tp: "console_log",
tp: MType.ConsoleLog,
level: tMsg[1],
value: tMsg[2],
}
@ -560,7 +561,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 37: {
return {
tp: "css_insert_rule",
tp: MType.CssInsertRule,
id: tMsg[1],
rule: tMsg[2],
index: tMsg[3],
@ -569,7 +570,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 38: {
return {
tp: "css_delete_rule",
tp: MType.CssDeleteRule,
id: tMsg[1],
index: tMsg[2],
}
@ -577,7 +578,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 39: {
return {
tp: "fetch",
tp: MType.Fetch,
method: tMsg[1],
url: tMsg[2],
request: tMsg[3],
@ -590,7 +591,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 40: {
return {
tp: "profiler",
tp: MType.Profiler,
name: tMsg[1],
duration: tMsg[2],
args: tMsg[3],
@ -600,7 +601,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 41: {
return {
tp: "o_table",
tp: MType.OTable,
key: tMsg[1],
value: tMsg[2],
}
@ -608,7 +609,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 44: {
return {
tp: "redux",
tp: MType.Redux,
action: tMsg[1],
state: tMsg[2],
duration: tMsg[3],
@ -617,7 +618,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 45: {
return {
tp: "vuex",
tp: MType.Vuex,
mutation: tMsg[1],
state: tMsg[2],
}
@ -625,7 +626,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 46: {
return {
tp: "mob_x",
tp: MType.MobX,
type: tMsg[1],
payload: tMsg[2],
}
@ -633,7 +634,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 47: {
return {
tp: "ng_rx",
tp: MType.NgRx,
action: tMsg[1],
state: tMsg[2],
duration: tMsg[3],
@ -642,7 +643,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 48: {
return {
tp: "graph_ql",
tp: MType.GraphQl,
operationKind: tMsg[1],
operationName: tMsg[2],
variables: tMsg[3],
@ -652,7 +653,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 49: {
return {
tp: "performance_track",
tp: MType.PerformanceTrack,
frames: tMsg[1],
ticks: tMsg[2],
totalJSHeapSize: tMsg[3],
@ -662,7 +663,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 54: {
return {
tp: "connection_information",
tp: MType.ConnectionInformation,
downlink: tMsg[1],
type: tMsg[2],
}
@ -670,14 +671,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 55: {
return {
tp: "set_page_visibility",
tp: MType.SetPageVisibility,
hidden: tMsg[1],
}
}
case 57: {
return {
tp: "load_font_face",
tp: MType.LoadFontFace,
parentID: tMsg[1],
family: tMsg[2],
source: tMsg[3],
@ -687,14 +688,14 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 58: {
return {
tp: "set_node_focus",
tp: MType.SetNodeFocus,
id: tMsg[1],
}
}
case 59: {
return {
tp: "long_task",
tp: MType.LongTask,
timestamp: tMsg[1],
duration: tMsg[2],
context: tMsg[3],
@ -707,7 +708,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 60: {
return {
tp: "set_node_attribute_url_based",
tp: MType.SetNodeAttributeURLBased,
id: tMsg[1],
name: tMsg[2],
value: tMsg[3],
@ -717,7 +718,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 61: {
return {
tp: "set_css_data_url_based",
tp: MType.SetCssDataURLBased,
id: tMsg[1],
data: tMsg[2],
baseURL: tMsg[3],
@ -726,7 +727,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 67: {
return {
tp: "css_insert_rule_url_based",
tp: MType.CssInsertRuleURLBased,
id: tMsg[1],
rule: tMsg[2],
index: tMsg[3],
@ -736,7 +737,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 69: {
return {
tp: "mouse_click",
tp: MType.MouseClick,
id: tMsg[1],
hesitationTime: tMsg[2],
label: tMsg[3],
@ -746,7 +747,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 70: {
return {
tp: "create_i_frame_document",
tp: MType.CreateIFrameDocument,
frameID: tMsg[1],
id: tMsg[2],
}
@ -754,7 +755,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 71: {
return {
tp: "adopted_ss_replace_url_based",
tp: MType.AdoptedSsReplaceURLBased,
sheetID: tMsg[1],
text: tMsg[2],
baseURL: tMsg[3],
@ -763,7 +764,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 73: {
return {
tp: "adopted_ss_insert_rule_url_based",
tp: MType.AdoptedSsInsertRuleURLBased,
sheetID: tMsg[1],
rule: tMsg[2],
index: tMsg[3],
@ -773,7 +774,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 75: {
return {
tp: "adopted_ss_delete_rule",
tp: MType.AdoptedSsDeleteRule,
sheetID: tMsg[1],
index: tMsg[2],
}
@ -781,7 +782,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 76: {
return {
tp: "adopted_ss_add_owner",
tp: MType.AdoptedSsAddOwner,
sheetID: tMsg[1],
id: tMsg[2],
}
@ -789,7 +790,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 77: {
return {
tp: "adopted_ss_remove_owner",
tp: MType.AdoptedSsRemoveOwner,
sheetID: tMsg[1],
id: tMsg[2],
}
@ -797,7 +798,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
case 79: {
return {
tp: "zustand",
tp: MType.Zustand,
mutation: tMsg[1],
state: tMsg[2],
}

View file

@ -7,7 +7,7 @@ class String
self.sub('Id', 'ID').sub('Url', 'URL')
end
# pascal_case
# PascalCase
def pascal_case
return self if self !~ /_/ && self =~ /[A-Z]+.*/
split('_').map{|e| e.capitalize}.join.upperize_abbreviations

View file

@ -2,7 +2,8 @@
/* eslint-disable */
import PrimitiveReader from './PrimitiveReader'
import type { RawMessage } from './raw'
import { MType } from './raw.gen'
import type { RawMessage } from './raw.gen'
export default class RawMessageReader extends PrimitiveReader {
@ -22,7 +23,7 @@ export default class RawMessageReader extends PrimitiveReader {
<%= msg.attributes.map { |attr|
" const #{attr.name.camel_case} = this.read#{attr.type.to_s.pascal_case}(); if (#{attr.name.camel_case} === null) { return resetPointer() }" }.join "\n" %>
return {
tp: "<%= msg.name.snake_case %>",
tp: MType.<%= msg.name.snake_case.pascal_case %>,
<%= msg.attributes.map { |attr|
" #{attr.name.camel_case}," }.join "\n" %>
};

View file

@ -2,10 +2,10 @@
/* eslint-disable */
import type { Timed } from './timed'
import type { RawMessage } from './raw'
import type { RawMessage } from './raw.gen'
import type {
<%= $messages.select { |msg| msg.replayer != false }.map { |msg| " Raw#{msg.name.snake_case.pascal_case}," }.join "\n" %>
} from './raw'
} from './raw.gen'
export type Message = RawMessage & Timed

View file

@ -1,9 +1,16 @@
// Auto-generated, do not edit
/* eslint-disable */
export const enum MType {
<%= $messages.select { |msg| msg.replayer != false }
.map { |msg| " #{msg.name.snake_case.pascal_case} = #{msg.id}," }
.join "\n"
%>
}
<% $messages.select { |msg| msg.replayer != false }.each do |msg| %>
export interface Raw<%= msg.name.snake_case.pascal_case %> {
tp: "<%= msg.name.snake_case %>",
tp: MType.<%= msg.name.snake_case.pascal_case %>,
<%= msg.attributes.map { |attr| " #{attr.name.camel_case}: #{attr.type_js}," }.join "\n" %>
}
<% end %>

View file

@ -0,0 +1,7 @@
// Auto-generated, do not edit
import { MType } from './raw.gen'
export const TP_MAP = {
<%= $messages.select { |msg| msg.replayer != false }.map { |msg| " #{msg.id}: MType.#{msg.name.snake_case.pascal_case}," }.join "\n" %>
} as const

View file

@ -1,7 +0,0 @@
// @ts-nocheck
/* eslint-disable */
// Auto-generated, do not edit
export const TP_MAP = {
<%= $messages.select { |msg| msg.tracker || msg.replayer != false }.map { |msg| " #{msg.id}: \"#{msg.name.snake_case}\"," }.join "\n" %>
} as const

View file

@ -1,7 +1,8 @@
// Auto-generated, do not edit
/* eslint-disable */
import type { RawMessage } from './raw'
import type { RawMessage } from './raw.gen'
import { MType } from './raw.gen'
<% $messages.select { |msg| msg.tracker }.each do |msg| %>
type Tr<%= msg.name %> = [
@ -17,7 +18,7 @@ export default function translate(tMsg: TrackerMessage): RawMessage | null {
<% $messages.select { |msg| msg.replayer != false && msg.tracker }.each do |msg| %>
case <%= msg.id %>: {
return {
tp: "<%= msg.name.snake_case %>",
tp: MType.<%= msg.name.snake_case.pascal_case %>,
<%= msg.attributes.map.with_index { |attr, i| "#{attr.name.camel_case}: tMsg[#{i+1}]," }.join "\n " %>
}
}