@knime/hub-features 1.26.2 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/package.json +5 -3
- package/src/analytics/README.md +19 -73
- package/src/analytics/analytics.ts +97 -57
- package/src/analytics/index.ts +1 -1
- package/src/analytics/schema/cloudhome-event-functions.ts +247 -0
- package/src/analytics/schema/code-generator.js +158 -0
- package/src/analytics/schema/editor-event-functions.ts +1121 -0
- package/src/analytics/schema/schema.d.ts +765 -122
- package/src/analytics/schema/schema.json +3916 -269
- package/src/analytics/types.ts +22 -46
- package/src/analytics/utils/logger.ts +1 -0
- package/src/analytics/utils/eventIds.ts +0 -35
|
@@ -0,0 +1,1121 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
/* eslint-disable camelcase */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
// AUTO-GENERATED FILE. DO NOT EDIT.
|
|
5
|
+
import type { AnalyticsEvent, DefaultContext, EventFunctionArgs, GeneratedStaticFields, SchemaStaticFields } from "../types";
|
|
6
|
+
import { toSnakeCaseDeep } from "../utils/toSnakeCaseDeep";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This is KAI Prompted QA
|
|
10
|
+
*/
|
|
11
|
+
export const kaiPromptedQA = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
12
|
+
const staticData = {
|
|
13
|
+
...toSnakeCaseDeep(ctx),
|
|
14
|
+
unique_event_id: crypto.randomUUID(),
|
|
15
|
+
timestamp: new Date().toISOString(),
|
|
16
|
+
event_name: "kai_prompted",
|
|
17
|
+
event_source: "editor",
|
|
18
|
+
event_display_name: "K-AI Prompted",
|
|
19
|
+
interaction: {
|
|
20
|
+
location: "kai_qa",
|
|
21
|
+
trigger: "user",
|
|
22
|
+
type: "click",
|
|
23
|
+
},
|
|
24
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
25
|
+
|
|
26
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
27
|
+
|
|
28
|
+
return event;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const kaiPromptedBuild = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
32
|
+
const staticData = {
|
|
33
|
+
...toSnakeCaseDeep(ctx),
|
|
34
|
+
unique_event_id: crypto.randomUUID(),
|
|
35
|
+
timestamp: new Date().toISOString(),
|
|
36
|
+
event_name: "kai_prompted",
|
|
37
|
+
event_source: "editor",
|
|
38
|
+
event_display_name: "K-AI Prompted",
|
|
39
|
+
interaction: {
|
|
40
|
+
location: "kai_build",
|
|
41
|
+
trigger: "user",
|
|
42
|
+
type: "click",
|
|
43
|
+
},
|
|
44
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
45
|
+
|
|
46
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
47
|
+
|
|
48
|
+
return event;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const kaiPromptedQuickBuild = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"kaiPromptedQuickBuild">): AnalyticsEvent => {
|
|
52
|
+
const staticData = {
|
|
53
|
+
...toSnakeCaseDeep(ctx),
|
|
54
|
+
unique_event_id: crypto.randomUUID(),
|
|
55
|
+
timestamp: new Date().toISOString(),
|
|
56
|
+
event_name: "kai_prompted",
|
|
57
|
+
event_source: "editor",
|
|
58
|
+
event_display_name: "K-AI Prompted",
|
|
59
|
+
interaction: {
|
|
60
|
+
location: "qam",
|
|
61
|
+
trigger: "user",
|
|
62
|
+
type: "click",
|
|
63
|
+
},
|
|
64
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
65
|
+
|
|
66
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
67
|
+
|
|
68
|
+
return event;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* This is the sessions started
|
|
73
|
+
*/
|
|
74
|
+
export const sessionStarted = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
75
|
+
const staticData = {
|
|
76
|
+
...toSnakeCaseDeep(ctx),
|
|
77
|
+
unique_event_id: crypto.randomUUID(),
|
|
78
|
+
timestamp: new Date().toISOString(),
|
|
79
|
+
event_name: "session_started",
|
|
80
|
+
event_source: "editor",
|
|
81
|
+
event_display_name: "Editor session start",
|
|
82
|
+
interaction: {
|
|
83
|
+
location: "global",
|
|
84
|
+
trigger: "system",
|
|
85
|
+
type: "auto",
|
|
86
|
+
},
|
|
87
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
88
|
+
|
|
89
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
90
|
+
|
|
91
|
+
return event;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const layoutEditorOpenedCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
95
|
+
const staticData = {
|
|
96
|
+
...toSnakeCaseDeep(ctx),
|
|
97
|
+
unique_event_id: crypto.randomUUID(),
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
event_name: "layouteditor_opened",
|
|
100
|
+
event_source: "editor",
|
|
101
|
+
event_display_name: "Layout Editor Opened",
|
|
102
|
+
interaction: {
|
|
103
|
+
location: "canvas",
|
|
104
|
+
trigger: "user",
|
|
105
|
+
type: "click",
|
|
106
|
+
},
|
|
107
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
108
|
+
|
|
109
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
110
|
+
|
|
111
|
+
return event;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const layoutEditorOpenedKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
115
|
+
const staticData = {
|
|
116
|
+
...toSnakeCaseDeep(ctx),
|
|
117
|
+
unique_event_id: crypto.randomUUID(),
|
|
118
|
+
timestamp: new Date().toISOString(),
|
|
119
|
+
event_name: "layouteditor_opened",
|
|
120
|
+
event_source: "editor",
|
|
121
|
+
event_display_name: "Layout Editor Opened",
|
|
122
|
+
interaction: {
|
|
123
|
+
location: "global",
|
|
124
|
+
trigger: "user",
|
|
125
|
+
type: "shortcut",
|
|
126
|
+
},
|
|
127
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
128
|
+
|
|
129
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
130
|
+
|
|
131
|
+
return event;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export const layoutEditorOpenedToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
135
|
+
const staticData = {
|
|
136
|
+
...toSnakeCaseDeep(ctx),
|
|
137
|
+
unique_event_id: crypto.randomUUID(),
|
|
138
|
+
timestamp: new Date().toISOString(),
|
|
139
|
+
event_name: "layouteditor_opened",
|
|
140
|
+
event_source: "editor",
|
|
141
|
+
event_display_name: "Layout Editor Opened",
|
|
142
|
+
interaction: {
|
|
143
|
+
location: "workflow_toolbar",
|
|
144
|
+
trigger: "user",
|
|
145
|
+
type: "click",
|
|
146
|
+
},
|
|
147
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
148
|
+
|
|
149
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
150
|
+
|
|
151
|
+
return event;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export const annotationCreatedCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
155
|
+
const staticData = {
|
|
156
|
+
...toSnakeCaseDeep(ctx),
|
|
157
|
+
unique_event_id: crypto.randomUUID(),
|
|
158
|
+
timestamp: new Date().toISOString(),
|
|
159
|
+
event_name: "annotation_created",
|
|
160
|
+
event_source: "editor",
|
|
161
|
+
event_display_name: "Annotation Created",
|
|
162
|
+
interaction: {
|
|
163
|
+
location: "canvas",
|
|
164
|
+
trigger: "user",
|
|
165
|
+
type: "click",
|
|
166
|
+
ui_element: "context_menu",
|
|
167
|
+
},
|
|
168
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
169
|
+
|
|
170
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
171
|
+
|
|
172
|
+
return event;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
export const annotationCreatedKaiExplain = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
176
|
+
const staticData = {
|
|
177
|
+
...toSnakeCaseDeep(ctx),
|
|
178
|
+
unique_event_id: crypto.randomUUID(),
|
|
179
|
+
timestamp: new Date().toISOString(),
|
|
180
|
+
event_name: "annotation_created",
|
|
181
|
+
event_source: "editor",
|
|
182
|
+
event_display_name: "Annotation Created",
|
|
183
|
+
interaction: {
|
|
184
|
+
location: "canvas",
|
|
185
|
+
trigger: "user",
|
|
186
|
+
type: "click",
|
|
187
|
+
ui_element: "context_menu",
|
|
188
|
+
},
|
|
189
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
190
|
+
|
|
191
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
192
|
+
|
|
193
|
+
return event;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export const workflowSavedToolbar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"workflowSavedToolbar">): AnalyticsEvent => {
|
|
197
|
+
const staticData = {
|
|
198
|
+
...toSnakeCaseDeep(ctx),
|
|
199
|
+
unique_event_id: crypto.randomUUID(),
|
|
200
|
+
timestamp: new Date().toISOString(),
|
|
201
|
+
event_name: "workflow_saved",
|
|
202
|
+
event_source: "editor",
|
|
203
|
+
event_display_name: "Workflow Saved",
|
|
204
|
+
interaction: {
|
|
205
|
+
location: "workflow_toolbar",
|
|
206
|
+
trigger: "user",
|
|
207
|
+
type: "click",
|
|
208
|
+
},
|
|
209
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
210
|
+
|
|
211
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
212
|
+
|
|
213
|
+
return event;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
export const workflowSavedKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"workflowSavedKeyboard">): AnalyticsEvent => {
|
|
217
|
+
const staticData = {
|
|
218
|
+
...toSnakeCaseDeep(ctx),
|
|
219
|
+
unique_event_id: crypto.randomUUID(),
|
|
220
|
+
timestamp: new Date().toISOString(),
|
|
221
|
+
event_name: "workflow_saved",
|
|
222
|
+
event_source: "editor",
|
|
223
|
+
event_display_name: "Workflow Saved",
|
|
224
|
+
interaction: {
|
|
225
|
+
location: "global",
|
|
226
|
+
trigger: "user",
|
|
227
|
+
type: "shortcut",
|
|
228
|
+
},
|
|
229
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
230
|
+
|
|
231
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
232
|
+
|
|
233
|
+
return event;
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
export const connectionCreatedPortDragDrop = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"connectionCreatedPortDragDrop">): AnalyticsEvent => {
|
|
237
|
+
const staticData = {
|
|
238
|
+
...toSnakeCaseDeep(ctx),
|
|
239
|
+
unique_event_id: crypto.randomUUID(),
|
|
240
|
+
timestamp: new Date().toISOString(),
|
|
241
|
+
event_name: "connection_created",
|
|
242
|
+
event_source: "editor",
|
|
243
|
+
event_display_name: "Connection Created",
|
|
244
|
+
interaction: {
|
|
245
|
+
location: "canvas",
|
|
246
|
+
trigger: "user",
|
|
247
|
+
type: "drag_drop",
|
|
248
|
+
},
|
|
249
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
250
|
+
|
|
251
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
252
|
+
|
|
253
|
+
return event;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
export const connectionCreatedKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"connectionCreatedKeyboard">): AnalyticsEvent => {
|
|
257
|
+
const staticData = {
|
|
258
|
+
...toSnakeCaseDeep(ctx),
|
|
259
|
+
unique_event_id: crypto.randomUUID(),
|
|
260
|
+
timestamp: new Date().toISOString(),
|
|
261
|
+
event_name: "connection_created_autoconnect",
|
|
262
|
+
event_source: "editor",
|
|
263
|
+
event_display_name: "Connection created autoconnect",
|
|
264
|
+
interaction: {
|
|
265
|
+
location: "canvas",
|
|
266
|
+
trigger: "user",
|
|
267
|
+
type: "shortcut",
|
|
268
|
+
},
|
|
269
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
270
|
+
|
|
271
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
272
|
+
|
|
273
|
+
return event;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
export const connectionCreatedCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"connectionCreatedCtxMenu">): AnalyticsEvent => {
|
|
277
|
+
const staticData = {
|
|
278
|
+
...toSnakeCaseDeep(ctx),
|
|
279
|
+
unique_event_id: crypto.randomUUID(),
|
|
280
|
+
timestamp: new Date().toISOString(),
|
|
281
|
+
event_name: "connection_created_autoconnect",
|
|
282
|
+
event_source: "editor",
|
|
283
|
+
event_display_name: "Connection created autoconnect",
|
|
284
|
+
interaction: {
|
|
285
|
+
location: "canvas",
|
|
286
|
+
trigger: "user",
|
|
287
|
+
type: "click",
|
|
288
|
+
ui_element: "context_menu",
|
|
289
|
+
},
|
|
290
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
291
|
+
|
|
292
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
293
|
+
|
|
294
|
+
return event;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
export const nodeCreatedNodeRepoDragDrop = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedNodeRepoDragDrop">): AnalyticsEvent => {
|
|
298
|
+
const staticData = {
|
|
299
|
+
...toSnakeCaseDeep(ctx),
|
|
300
|
+
unique_event_id: crypto.randomUUID(),
|
|
301
|
+
timestamp: new Date().toISOString(),
|
|
302
|
+
event_name: "node_created",
|
|
303
|
+
event_source: "editor",
|
|
304
|
+
event_display_name: "Node Created",
|
|
305
|
+
interaction: {
|
|
306
|
+
location: "noderepository",
|
|
307
|
+
trigger: "user",
|
|
308
|
+
type: "drag_drop",
|
|
309
|
+
},
|
|
310
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
311
|
+
|
|
312
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
313
|
+
|
|
314
|
+
return event;
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
export const nodeCreatedNodeRepoDoubleClick = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedNodeRepoDoubleClick">): AnalyticsEvent => {
|
|
318
|
+
const staticData = {
|
|
319
|
+
...toSnakeCaseDeep(ctx),
|
|
320
|
+
unique_event_id: crypto.randomUUID(),
|
|
321
|
+
timestamp: new Date().toISOString(),
|
|
322
|
+
event_name: "node_created",
|
|
323
|
+
event_source: "editor",
|
|
324
|
+
event_display_name: "Node Created",
|
|
325
|
+
interaction: {
|
|
326
|
+
location: "noderepository",
|
|
327
|
+
trigger: "user",
|
|
328
|
+
type: "double_click",
|
|
329
|
+
},
|
|
330
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
331
|
+
|
|
332
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
333
|
+
|
|
334
|
+
return event;
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
export const nodeCreatedNodeRepoKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedNodeRepoKeyboard">): AnalyticsEvent => {
|
|
338
|
+
const staticData = {
|
|
339
|
+
...toSnakeCaseDeep(ctx),
|
|
340
|
+
unique_event_id: crypto.randomUUID(),
|
|
341
|
+
timestamp: new Date().toISOString(),
|
|
342
|
+
event_name: "node_created",
|
|
343
|
+
event_source: "editor",
|
|
344
|
+
event_display_name: "Node Created",
|
|
345
|
+
interaction: {
|
|
346
|
+
location: "noderepository",
|
|
347
|
+
trigger: "user",
|
|
348
|
+
type: "key_press",
|
|
349
|
+
},
|
|
350
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
351
|
+
|
|
352
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
353
|
+
|
|
354
|
+
return event;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
export const nodeCreatedExplorerDragDrop = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedExplorerDragDrop">): AnalyticsEvent => {
|
|
358
|
+
const staticData = {
|
|
359
|
+
...toSnakeCaseDeep(ctx),
|
|
360
|
+
unique_event_id: crypto.randomUUID(),
|
|
361
|
+
timestamp: new Date().toISOString(),
|
|
362
|
+
event_name: "node_created",
|
|
363
|
+
event_source: "editor",
|
|
364
|
+
event_display_name: "Node Created",
|
|
365
|
+
interaction: {
|
|
366
|
+
location: "space_explorer",
|
|
367
|
+
trigger: "user",
|
|
368
|
+
type: "drag_drop",
|
|
369
|
+
},
|
|
370
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
371
|
+
|
|
372
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
373
|
+
|
|
374
|
+
return event;
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
export const nodeCreatedQamClick = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedQamClick">): AnalyticsEvent => {
|
|
378
|
+
const staticData = {
|
|
379
|
+
...toSnakeCaseDeep(ctx),
|
|
380
|
+
unique_event_id: crypto.randomUUID(),
|
|
381
|
+
timestamp: new Date().toISOString(),
|
|
382
|
+
event_name: "node_created",
|
|
383
|
+
event_source: "editor",
|
|
384
|
+
event_display_name: "Node Created",
|
|
385
|
+
interaction: {
|
|
386
|
+
location: "qam",
|
|
387
|
+
trigger: "user",
|
|
388
|
+
type: "click",
|
|
389
|
+
},
|
|
390
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
391
|
+
|
|
392
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
393
|
+
|
|
394
|
+
return event;
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
export const nodeCreatedQamKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedQamKeyboard">): AnalyticsEvent => {
|
|
398
|
+
const staticData = {
|
|
399
|
+
...toSnakeCaseDeep(ctx),
|
|
400
|
+
unique_event_id: crypto.randomUUID(),
|
|
401
|
+
timestamp: new Date().toISOString(),
|
|
402
|
+
event_name: "node_created",
|
|
403
|
+
event_source: "editor",
|
|
404
|
+
event_display_name: "Node Created",
|
|
405
|
+
interaction: {
|
|
406
|
+
location: "qam",
|
|
407
|
+
trigger: "user",
|
|
408
|
+
type: "key_press",
|
|
409
|
+
},
|
|
410
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
411
|
+
|
|
412
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
413
|
+
|
|
414
|
+
return event;
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
export const nodeCreatedKaiQaDragDrop = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedKaiQaDragDrop">): AnalyticsEvent => {
|
|
418
|
+
const staticData = {
|
|
419
|
+
...toSnakeCaseDeep(ctx),
|
|
420
|
+
unique_event_id: crypto.randomUUID(),
|
|
421
|
+
timestamp: new Date().toISOString(),
|
|
422
|
+
event_name: "node_created",
|
|
423
|
+
event_source: "editor",
|
|
424
|
+
event_display_name: "Node Created",
|
|
425
|
+
interaction: {
|
|
426
|
+
location: "kai",
|
|
427
|
+
trigger: "user",
|
|
428
|
+
type: "drag_drop",
|
|
429
|
+
},
|
|
430
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
431
|
+
|
|
432
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
433
|
+
|
|
434
|
+
return event;
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
export const nodeCreatedKaiQaKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedKaiQaKeyboard">): AnalyticsEvent => {
|
|
438
|
+
const staticData = {
|
|
439
|
+
...toSnakeCaseDeep(ctx),
|
|
440
|
+
unique_event_id: crypto.randomUUID(),
|
|
441
|
+
timestamp: new Date().toISOString(),
|
|
442
|
+
event_name: "node_created",
|
|
443
|
+
event_source: "editor",
|
|
444
|
+
event_display_name: "Node Created",
|
|
445
|
+
interaction: {
|
|
446
|
+
location: "kai",
|
|
447
|
+
trigger: "user",
|
|
448
|
+
type: "key_press",
|
|
449
|
+
},
|
|
450
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
451
|
+
|
|
452
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
453
|
+
|
|
454
|
+
return event;
|
|
455
|
+
};
|
|
456
|
+
|
|
457
|
+
export const qamOpenedPortDragDrop = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"qamOpenedPortDragDrop">): AnalyticsEvent => {
|
|
458
|
+
const staticData = {
|
|
459
|
+
...toSnakeCaseDeep(ctx),
|
|
460
|
+
unique_event_id: crypto.randomUUID(),
|
|
461
|
+
timestamp: new Date().toISOString(),
|
|
462
|
+
event_name: "qam_opened",
|
|
463
|
+
event_source: "editor",
|
|
464
|
+
event_display_name: "QAM Opened",
|
|
465
|
+
interaction: {
|
|
466
|
+
location: "canvas",
|
|
467
|
+
trigger: "user",
|
|
468
|
+
type: "drag_drop",
|
|
469
|
+
},
|
|
470
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
471
|
+
|
|
472
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
473
|
+
|
|
474
|
+
return event;
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
export const qamOpenedCanvasDoubleClick = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
478
|
+
const staticData = {
|
|
479
|
+
...toSnakeCaseDeep(ctx),
|
|
480
|
+
unique_event_id: crypto.randomUUID(),
|
|
481
|
+
timestamp: new Date().toISOString(),
|
|
482
|
+
event_name: "qam_opened",
|
|
483
|
+
event_source: "editor",
|
|
484
|
+
event_display_name: "QAM Opened",
|
|
485
|
+
interaction: {
|
|
486
|
+
location: "canvas",
|
|
487
|
+
trigger: "user",
|
|
488
|
+
type: "double_click",
|
|
489
|
+
},
|
|
490
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
491
|
+
|
|
492
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
493
|
+
|
|
494
|
+
return event;
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
export const qamOpenedKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"qamOpenedKeyboard">): AnalyticsEvent => {
|
|
498
|
+
const staticData = {
|
|
499
|
+
...toSnakeCaseDeep(ctx),
|
|
500
|
+
unique_event_id: crypto.randomUUID(),
|
|
501
|
+
timestamp: new Date().toISOString(),
|
|
502
|
+
event_name: "qam_opened",
|
|
503
|
+
event_source: "editor",
|
|
504
|
+
event_display_name: "QAM Opened",
|
|
505
|
+
interaction: {
|
|
506
|
+
location: "canvas",
|
|
507
|
+
trigger: "user",
|
|
508
|
+
type: "shortcut",
|
|
509
|
+
},
|
|
510
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
511
|
+
|
|
512
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
513
|
+
|
|
514
|
+
return event;
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
export const qamOpenedCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
518
|
+
const staticData = {
|
|
519
|
+
...toSnakeCaseDeep(ctx),
|
|
520
|
+
unique_event_id: crypto.randomUUID(),
|
|
521
|
+
timestamp: new Date().toISOString(),
|
|
522
|
+
event_name: "qam_opened",
|
|
523
|
+
event_source: "editor",
|
|
524
|
+
event_display_name: "QAM Opened",
|
|
525
|
+
interaction: {
|
|
526
|
+
location: "canvas",
|
|
527
|
+
trigger: "user",
|
|
528
|
+
type: "click",
|
|
529
|
+
ui_element: "context_menu",
|
|
530
|
+
},
|
|
531
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
532
|
+
|
|
533
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
534
|
+
|
|
535
|
+
return event;
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
export const nodeSearchedNodeRepo = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeSearchedNodeRepo">): AnalyticsEvent => {
|
|
539
|
+
const staticData = {
|
|
540
|
+
...toSnakeCaseDeep(ctx),
|
|
541
|
+
unique_event_id: crypto.randomUUID(),
|
|
542
|
+
timestamp: new Date().toISOString(),
|
|
543
|
+
event_name: "node_searched",
|
|
544
|
+
event_source: "editor",
|
|
545
|
+
event_display_name: "Node Searched",
|
|
546
|
+
interaction: {
|
|
547
|
+
location: "noderepository",
|
|
548
|
+
trigger: "user",
|
|
549
|
+
type: "key_press",
|
|
550
|
+
},
|
|
551
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
552
|
+
|
|
553
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
554
|
+
|
|
555
|
+
return event;
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
export const nodeSearchedQam = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeSearchedQam">): AnalyticsEvent => {
|
|
559
|
+
const staticData = {
|
|
560
|
+
...toSnakeCaseDeep(ctx),
|
|
561
|
+
unique_event_id: crypto.randomUUID(),
|
|
562
|
+
timestamp: new Date().toISOString(),
|
|
563
|
+
event_name: "node_searched",
|
|
564
|
+
event_source: "editor",
|
|
565
|
+
event_display_name: "Node Searched",
|
|
566
|
+
interaction: {
|
|
567
|
+
location: "qam",
|
|
568
|
+
trigger: "user",
|
|
569
|
+
type: "key_press",
|
|
570
|
+
},
|
|
571
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
572
|
+
|
|
573
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
574
|
+
|
|
575
|
+
return event;
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
export const workflowInfoOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
579
|
+
const staticData = {
|
|
580
|
+
...toSnakeCaseDeep(ctx),
|
|
581
|
+
unique_event_id: crypto.randomUUID(),
|
|
582
|
+
timestamp: new Date().toISOString(),
|
|
583
|
+
event_name: "workflow_info_opened",
|
|
584
|
+
event_source: "editor",
|
|
585
|
+
event_display_name: "Workflow Info Opened",
|
|
586
|
+
interaction: {
|
|
587
|
+
location: "workflow_info",
|
|
588
|
+
trigger: "user",
|
|
589
|
+
type: "click",
|
|
590
|
+
},
|
|
591
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
592
|
+
|
|
593
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
594
|
+
|
|
595
|
+
return event;
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
export const nodeRepositoryOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
599
|
+
const staticData = {
|
|
600
|
+
...toSnakeCaseDeep(ctx),
|
|
601
|
+
unique_event_id: crypto.randomUUID(),
|
|
602
|
+
timestamp: new Date().toISOString(),
|
|
603
|
+
event_name: "noderepository_opened",
|
|
604
|
+
event_source: "editor",
|
|
605
|
+
event_display_name: "Node Repository Opened",
|
|
606
|
+
interaction: {
|
|
607
|
+
location: "noderepository",
|
|
608
|
+
trigger: "user",
|
|
609
|
+
type: "click",
|
|
610
|
+
},
|
|
611
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
612
|
+
|
|
613
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
614
|
+
|
|
615
|
+
return event;
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
export const spaceExplorerOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
619
|
+
const staticData = {
|
|
620
|
+
...toSnakeCaseDeep(ctx),
|
|
621
|
+
unique_event_id: crypto.randomUUID(),
|
|
622
|
+
timestamp: new Date().toISOString(),
|
|
623
|
+
event_name: "space_explorer_opened",
|
|
624
|
+
event_source: "editor",
|
|
625
|
+
event_display_name: "Space Explorer Opened",
|
|
626
|
+
interaction: {
|
|
627
|
+
location: "space_explorer",
|
|
628
|
+
trigger: "user",
|
|
629
|
+
type: "click",
|
|
630
|
+
},
|
|
631
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
632
|
+
|
|
633
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
634
|
+
|
|
635
|
+
return event;
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
export const kaiOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
639
|
+
const staticData = {
|
|
640
|
+
...toSnakeCaseDeep(ctx),
|
|
641
|
+
unique_event_id: crypto.randomUUID(),
|
|
642
|
+
timestamp: new Date().toISOString(),
|
|
643
|
+
event_name: "kai_opened",
|
|
644
|
+
event_source: "editor",
|
|
645
|
+
event_display_name: "K-AI Opened",
|
|
646
|
+
interaction: {
|
|
647
|
+
location: "kai",
|
|
648
|
+
trigger: "user",
|
|
649
|
+
type: "click",
|
|
650
|
+
},
|
|
651
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
652
|
+
|
|
653
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
654
|
+
|
|
655
|
+
return event;
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
export const workflowMonitorOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
659
|
+
const staticData = {
|
|
660
|
+
...toSnakeCaseDeep(ctx),
|
|
661
|
+
unique_event_id: crypto.randomUUID(),
|
|
662
|
+
timestamp: new Date().toISOString(),
|
|
663
|
+
event_name: "workflow_monitor_opened",
|
|
664
|
+
event_source: "editor",
|
|
665
|
+
event_display_name: "Workflow Monitor opened",
|
|
666
|
+
interaction: {
|
|
667
|
+
location: "workflow_monitor",
|
|
668
|
+
trigger: "user",
|
|
669
|
+
type: "click",
|
|
670
|
+
},
|
|
671
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
672
|
+
|
|
673
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
674
|
+
|
|
675
|
+
return event;
|
|
676
|
+
};
|
|
677
|
+
|
|
678
|
+
export const versionHistoryOpened = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
679
|
+
const staticData = {
|
|
680
|
+
...toSnakeCaseDeep(ctx),
|
|
681
|
+
unique_event_id: crypto.randomUUID(),
|
|
682
|
+
timestamp: new Date().toISOString(),
|
|
683
|
+
event_name: "version_history_opened",
|
|
684
|
+
event_source: "editor",
|
|
685
|
+
event_display_name: "Version History opened",
|
|
686
|
+
interaction: {
|
|
687
|
+
location: "workflow_toolbar",
|
|
688
|
+
trigger: "user",
|
|
689
|
+
type: "click",
|
|
690
|
+
ui_element: "dropdown_menu",
|
|
691
|
+
},
|
|
692
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
693
|
+
|
|
694
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
695
|
+
|
|
696
|
+
return event;
|
|
697
|
+
};
|
|
698
|
+
|
|
699
|
+
export const actionUndoneToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
700
|
+
const staticData = {
|
|
701
|
+
...toSnakeCaseDeep(ctx),
|
|
702
|
+
unique_event_id: crypto.randomUUID(),
|
|
703
|
+
timestamp: new Date().toISOString(),
|
|
704
|
+
event_name: "action_undone",
|
|
705
|
+
event_source: "editor",
|
|
706
|
+
event_display_name: "Action Undone",
|
|
707
|
+
interaction: {
|
|
708
|
+
location: "workflow_toolbar",
|
|
709
|
+
trigger: "user",
|
|
710
|
+
type: "click",
|
|
711
|
+
},
|
|
712
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
713
|
+
|
|
714
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
715
|
+
|
|
716
|
+
return event;
|
|
717
|
+
};
|
|
718
|
+
|
|
719
|
+
export const actionUndoneKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
720
|
+
const staticData = {
|
|
721
|
+
...toSnakeCaseDeep(ctx),
|
|
722
|
+
unique_event_id: crypto.randomUUID(),
|
|
723
|
+
timestamp: new Date().toISOString(),
|
|
724
|
+
event_name: "action_undone",
|
|
725
|
+
event_source: "editor",
|
|
726
|
+
event_display_name: "Action Undone",
|
|
727
|
+
interaction: {
|
|
728
|
+
location: "global",
|
|
729
|
+
trigger: "user",
|
|
730
|
+
type: "shortcut",
|
|
731
|
+
},
|
|
732
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
733
|
+
|
|
734
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
735
|
+
|
|
736
|
+
return event;
|
|
737
|
+
};
|
|
738
|
+
|
|
739
|
+
export const actionRedoneToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
740
|
+
const staticData = {
|
|
741
|
+
...toSnakeCaseDeep(ctx),
|
|
742
|
+
unique_event_id: crypto.randomUUID(),
|
|
743
|
+
timestamp: new Date().toISOString(),
|
|
744
|
+
event_name: "action_redone",
|
|
745
|
+
event_source: "editor",
|
|
746
|
+
event_display_name: "Action Redone",
|
|
747
|
+
interaction: {
|
|
748
|
+
location: "workflow_toolbar",
|
|
749
|
+
trigger: "user",
|
|
750
|
+
type: "click",
|
|
751
|
+
},
|
|
752
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
753
|
+
|
|
754
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
755
|
+
|
|
756
|
+
return event;
|
|
757
|
+
};
|
|
758
|
+
|
|
759
|
+
export const actionRedoneKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
760
|
+
const staticData = {
|
|
761
|
+
...toSnakeCaseDeep(ctx),
|
|
762
|
+
unique_event_id: crypto.randomUUID(),
|
|
763
|
+
timestamp: new Date().toISOString(),
|
|
764
|
+
event_name: "action_redone",
|
|
765
|
+
event_source: "editor",
|
|
766
|
+
event_display_name: "Action Redone",
|
|
767
|
+
interaction: {
|
|
768
|
+
location: "global",
|
|
769
|
+
trigger: "user",
|
|
770
|
+
type: "shortcut",
|
|
771
|
+
},
|
|
772
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
773
|
+
|
|
774
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
775
|
+
|
|
776
|
+
return event;
|
|
777
|
+
};
|
|
778
|
+
|
|
779
|
+
export const versionCreated = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
780
|
+
const staticData = {
|
|
781
|
+
...toSnakeCaseDeep(ctx),
|
|
782
|
+
unique_event_id: crypto.randomUUID(),
|
|
783
|
+
timestamp: new Date().toISOString(),
|
|
784
|
+
event_name: "version_created",
|
|
785
|
+
event_source: "editor",
|
|
786
|
+
event_display_name: "Version Created",
|
|
787
|
+
interaction: {
|
|
788
|
+
location: "version_history",
|
|
789
|
+
trigger: "user",
|
|
790
|
+
type: "click",
|
|
791
|
+
},
|
|
792
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
793
|
+
|
|
794
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
795
|
+
|
|
796
|
+
return event;
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
export const sessionEnded = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"sessionEnded">): AnalyticsEvent => {
|
|
800
|
+
const staticData = {
|
|
801
|
+
...toSnakeCaseDeep(ctx),
|
|
802
|
+
unique_event_id: crypto.randomUUID(),
|
|
803
|
+
timestamp: new Date().toISOString(),
|
|
804
|
+
event_name: "session_ended",
|
|
805
|
+
event_source: "editor",
|
|
806
|
+
event_display_name: "Editor Session End",
|
|
807
|
+
interaction: {
|
|
808
|
+
location: "global",
|
|
809
|
+
trigger: "user",
|
|
810
|
+
type: "click",
|
|
811
|
+
},
|
|
812
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
813
|
+
|
|
814
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
815
|
+
|
|
816
|
+
return event;
|
|
817
|
+
};
|
|
818
|
+
|
|
819
|
+
export const sessionInterrupted = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
820
|
+
const staticData = {
|
|
821
|
+
...toSnakeCaseDeep(ctx),
|
|
822
|
+
unique_event_id: crypto.randomUUID(),
|
|
823
|
+
timestamp: new Date().toISOString(),
|
|
824
|
+
event_name: "session_interrupted",
|
|
825
|
+
event_source: "editor",
|
|
826
|
+
event_display_name: "Editor Session Interrupted",
|
|
827
|
+
interaction: {
|
|
828
|
+
location: "global",
|
|
829
|
+
trigger: "system",
|
|
830
|
+
type: "auto",
|
|
831
|
+
},
|
|
832
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
833
|
+
|
|
834
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
835
|
+
|
|
836
|
+
return event;
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
export const sessionResumed = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
|
|
840
|
+
const staticData = {
|
|
841
|
+
...toSnakeCaseDeep(ctx),
|
|
842
|
+
unique_event_id: crypto.randomUUID(),
|
|
843
|
+
timestamp: new Date().toISOString(),
|
|
844
|
+
event_name: "session_resumed",
|
|
845
|
+
event_source: "editor",
|
|
846
|
+
event_display_name: "Editor Session Resumed",
|
|
847
|
+
interaction: {
|
|
848
|
+
location: "global",
|
|
849
|
+
trigger: "system",
|
|
850
|
+
type: "auto",
|
|
851
|
+
},
|
|
852
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
853
|
+
|
|
854
|
+
const event = { id: staticData.event_name, data: { ...staticData } };
|
|
855
|
+
|
|
856
|
+
return event;
|
|
857
|
+
};
|
|
858
|
+
|
|
859
|
+
export const containerNodeCreatedCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeCreatedCtxMenu">): AnalyticsEvent => {
|
|
860
|
+
const staticData = {
|
|
861
|
+
...toSnakeCaseDeep(ctx),
|
|
862
|
+
unique_event_id: crypto.randomUUID(),
|
|
863
|
+
timestamp: new Date().toISOString(),
|
|
864
|
+
event_name: "containernode_created",
|
|
865
|
+
event_source: "editor",
|
|
866
|
+
event_display_name: "Container Node Created",
|
|
867
|
+
interaction: {
|
|
868
|
+
location: "canvas",
|
|
869
|
+
trigger: "user",
|
|
870
|
+
type: "click",
|
|
871
|
+
ui_element: "context_menu",
|
|
872
|
+
},
|
|
873
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
874
|
+
|
|
875
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
876
|
+
|
|
877
|
+
return event;
|
|
878
|
+
};
|
|
879
|
+
|
|
880
|
+
export const containerNodeCreatedKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeCreatedKeyboard">): AnalyticsEvent => {
|
|
881
|
+
const staticData = {
|
|
882
|
+
...toSnakeCaseDeep(ctx),
|
|
883
|
+
unique_event_id: crypto.randomUUID(),
|
|
884
|
+
timestamp: new Date().toISOString(),
|
|
885
|
+
event_name: "containernode_created",
|
|
886
|
+
event_source: "editor",
|
|
887
|
+
event_display_name: "Container Node Created",
|
|
888
|
+
interaction: {
|
|
889
|
+
location: "canvas",
|
|
890
|
+
trigger: "user",
|
|
891
|
+
type: "shortcut",
|
|
892
|
+
},
|
|
893
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
894
|
+
|
|
895
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
896
|
+
|
|
897
|
+
return event;
|
|
898
|
+
};
|
|
899
|
+
|
|
900
|
+
export const hintShown = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"hintShown">): AnalyticsEvent => {
|
|
901
|
+
const staticData = {
|
|
902
|
+
...toSnakeCaseDeep(ctx),
|
|
903
|
+
unique_event_id: crypto.randomUUID(),
|
|
904
|
+
timestamp: new Date().toISOString(),
|
|
905
|
+
event_name: "hint_shown",
|
|
906
|
+
event_source: "editor",
|
|
907
|
+
event_display_name: "Hint Shown",
|
|
908
|
+
interaction: {
|
|
909
|
+
location: "global",
|
|
910
|
+
trigger: "system",
|
|
911
|
+
type: "auto",
|
|
912
|
+
},
|
|
913
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
914
|
+
|
|
915
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
916
|
+
|
|
917
|
+
return event;
|
|
918
|
+
};
|
|
919
|
+
|
|
920
|
+
export const hintClosed = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"hintClosed">): AnalyticsEvent => {
|
|
921
|
+
const staticData = {
|
|
922
|
+
...toSnakeCaseDeep(ctx),
|
|
923
|
+
unique_event_id: crypto.randomUUID(),
|
|
924
|
+
timestamp: new Date().toISOString(),
|
|
925
|
+
event_name: "hint_closed",
|
|
926
|
+
event_source: "editor",
|
|
927
|
+
event_display_name: "Hint Closed",
|
|
928
|
+
interaction: {
|
|
929
|
+
location: "hint",
|
|
930
|
+
trigger: "user",
|
|
931
|
+
type: "click",
|
|
932
|
+
},
|
|
933
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
934
|
+
|
|
935
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
936
|
+
|
|
937
|
+
return event;
|
|
938
|
+
};
|
|
939
|
+
|
|
940
|
+
export const configurationCompletedApply = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"configurationCompletedApply">): AnalyticsEvent => {
|
|
941
|
+
const staticData = {
|
|
942
|
+
...toSnakeCaseDeep(ctx),
|
|
943
|
+
unique_event_id: crypto.randomUUID(),
|
|
944
|
+
timestamp: new Date().toISOString(),
|
|
945
|
+
event_name: "configuration_completed",
|
|
946
|
+
event_source: "editor",
|
|
947
|
+
event_display_name: "Configuration Completed",
|
|
948
|
+
interaction: {
|
|
949
|
+
location: "node_configuration",
|
|
950
|
+
trigger: "user",
|
|
951
|
+
type: "click",
|
|
952
|
+
},
|
|
953
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
954
|
+
|
|
955
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
956
|
+
|
|
957
|
+
return event;
|
|
958
|
+
};
|
|
959
|
+
|
|
960
|
+
export const configurationCompletedAutoApply = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"configurationCompletedAutoApply">): AnalyticsEvent => {
|
|
961
|
+
const staticData = {
|
|
962
|
+
...toSnakeCaseDeep(ctx),
|
|
963
|
+
unique_event_id: crypto.randomUUID(),
|
|
964
|
+
timestamp: new Date().toISOString(),
|
|
965
|
+
event_name: "configuration_completed",
|
|
966
|
+
event_source: "editor",
|
|
967
|
+
event_display_name: "Configuration Completed",
|
|
968
|
+
interaction: {
|
|
969
|
+
location: "node_configuration",
|
|
970
|
+
trigger: "user",
|
|
971
|
+
type: "auto",
|
|
972
|
+
},
|
|
973
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
974
|
+
|
|
975
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
976
|
+
|
|
977
|
+
return event;
|
|
978
|
+
};
|
|
979
|
+
|
|
980
|
+
export const containerNodeEnteredCanvasDoubleClick = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeEnteredCanvasDoubleClick">): AnalyticsEvent => {
|
|
981
|
+
const staticData = {
|
|
982
|
+
...toSnakeCaseDeep(ctx),
|
|
983
|
+
unique_event_id: crypto.randomUUID(),
|
|
984
|
+
timestamp: new Date().toISOString(),
|
|
985
|
+
event_name: "containernode_entered",
|
|
986
|
+
event_source: "editor",
|
|
987
|
+
event_display_name: "Container Node Entered",
|
|
988
|
+
interaction: {
|
|
989
|
+
location: "canvas",
|
|
990
|
+
trigger: "user",
|
|
991
|
+
type: "double_click",
|
|
992
|
+
ui_element: "node",
|
|
993
|
+
},
|
|
994
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
995
|
+
|
|
996
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
997
|
+
|
|
998
|
+
return event;
|
|
999
|
+
};
|
|
1000
|
+
|
|
1001
|
+
export const containerNodeEnteredKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeEnteredKeyboard">): AnalyticsEvent => {
|
|
1002
|
+
const staticData = {
|
|
1003
|
+
...toSnakeCaseDeep(ctx),
|
|
1004
|
+
unique_event_id: crypto.randomUUID(),
|
|
1005
|
+
timestamp: new Date().toISOString(),
|
|
1006
|
+
event_name: "containernode_entered",
|
|
1007
|
+
event_source: "editor",
|
|
1008
|
+
event_display_name: "Container Node Entered",
|
|
1009
|
+
interaction: {
|
|
1010
|
+
location: "canvas",
|
|
1011
|
+
trigger: "user",
|
|
1012
|
+
type: "shortcut",
|
|
1013
|
+
},
|
|
1014
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1015
|
+
|
|
1016
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1017
|
+
|
|
1018
|
+
return event;
|
|
1019
|
+
};
|
|
1020
|
+
|
|
1021
|
+
export const containerNodeEnteredCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeEnteredCtxMenu">): AnalyticsEvent => {
|
|
1022
|
+
const staticData = {
|
|
1023
|
+
...toSnakeCaseDeep(ctx),
|
|
1024
|
+
unique_event_id: crypto.randomUUID(),
|
|
1025
|
+
timestamp: new Date().toISOString(),
|
|
1026
|
+
event_name: "containernode_entered",
|
|
1027
|
+
event_source: "editor",
|
|
1028
|
+
event_display_name: "Container Node Entered",
|
|
1029
|
+
interaction: {
|
|
1030
|
+
location: "canvas",
|
|
1031
|
+
trigger: "user",
|
|
1032
|
+
type: "click",
|
|
1033
|
+
ui_element: "context_menu",
|
|
1034
|
+
},
|
|
1035
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1036
|
+
|
|
1037
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1038
|
+
|
|
1039
|
+
return event;
|
|
1040
|
+
};
|
|
1041
|
+
|
|
1042
|
+
export const containerNodeExitedKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeExitedKeyboard">): AnalyticsEvent => {
|
|
1043
|
+
const staticData = {
|
|
1044
|
+
...toSnakeCaseDeep(ctx),
|
|
1045
|
+
unique_event_id: crypto.randomUUID(),
|
|
1046
|
+
timestamp: new Date().toISOString(),
|
|
1047
|
+
event_name: "containernode_exited",
|
|
1048
|
+
event_source: "editor",
|
|
1049
|
+
event_display_name: "Container Node Exited",
|
|
1050
|
+
interaction: {
|
|
1051
|
+
location: "global",
|
|
1052
|
+
trigger: "user",
|
|
1053
|
+
type: "shortcut",
|
|
1054
|
+
},
|
|
1055
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1056
|
+
|
|
1057
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1058
|
+
|
|
1059
|
+
return event;
|
|
1060
|
+
};
|
|
1061
|
+
|
|
1062
|
+
export const containerNodeExitedToolbar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"containerNodeExitedToolbar">): AnalyticsEvent => {
|
|
1063
|
+
const staticData = {
|
|
1064
|
+
...toSnakeCaseDeep(ctx),
|
|
1065
|
+
unique_event_id: crypto.randomUUID(),
|
|
1066
|
+
timestamp: new Date().toISOString(),
|
|
1067
|
+
event_name: "containernode_exited",
|
|
1068
|
+
event_source: "editor",
|
|
1069
|
+
event_display_name: "Container Node Exited",
|
|
1070
|
+
interaction: {
|
|
1071
|
+
location: "workflow_toolbar",
|
|
1072
|
+
trigger: "user",
|
|
1073
|
+
type: "click",
|
|
1074
|
+
},
|
|
1075
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1076
|
+
|
|
1077
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1078
|
+
|
|
1079
|
+
return event;
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
export const nodeCreatedCanvasDragDropFile = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedCanvasDragDropFile">): AnalyticsEvent => {
|
|
1083
|
+
const staticData = {
|
|
1084
|
+
...toSnakeCaseDeep(ctx),
|
|
1085
|
+
unique_event_id: crypto.randomUUID(),
|
|
1086
|
+
timestamp: new Date().toISOString(),
|
|
1087
|
+
event_name: "node_created",
|
|
1088
|
+
event_source: "editor",
|
|
1089
|
+
event_display_name: "Node Created",
|
|
1090
|
+
interaction: {
|
|
1091
|
+
location: "canvas",
|
|
1092
|
+
trigger: "user",
|
|
1093
|
+
type: "drag_drop",
|
|
1094
|
+
},
|
|
1095
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1096
|
+
|
|
1097
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1098
|
+
|
|
1099
|
+
return event;
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
export const nodeCreatedFloatingToolsAddByFile = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"nodeCreatedFloatingToolsAddByFile">): AnalyticsEvent => {
|
|
1103
|
+
const staticData = {
|
|
1104
|
+
...toSnakeCaseDeep(ctx),
|
|
1105
|
+
unique_event_id: crypto.randomUUID(),
|
|
1106
|
+
timestamp: new Date().toISOString(),
|
|
1107
|
+
event_name: "node_created",
|
|
1108
|
+
event_source: "editor",
|
|
1109
|
+
event_display_name: "Node Created",
|
|
1110
|
+
interaction: {
|
|
1111
|
+
location: "floating_canvas_tools",
|
|
1112
|
+
trigger: "user",
|
|
1113
|
+
type: "click",
|
|
1114
|
+
},
|
|
1115
|
+
} satisfies SchemaStaticFields & GeneratedStaticFields;
|
|
1116
|
+
|
|
1117
|
+
const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
|
|
1118
|
+
|
|
1119
|
+
return event;
|
|
1120
|
+
};
|
|
1121
|
+
|