@happyvertical/smrt-analytics 0.41.0 → 0.42.1

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.
@@ -2,660 +2,461 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-analytics",
5
- "packageVersion": "0.41.0",
5
+ "packageVersion": "0.42.1",
6
6
  "objects": {
7
- "@happyvertical/smrt-analytics:AnalyticsDataStream": {
8
- "name": "analyticsdatastream",
9
- "className": "AnalyticsDataStream",
10
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsDataStream",
7
+ "@happyvertical/smrt-analytics:AnalyticsDataStreamCollection": {
8
+ "name": "analyticsdatastreamcollection",
9
+ "className": "AnalyticsDataStreamCollection",
10
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsDataStreamCollection",
11
11
  "collection": "analyticsdatastreams",
12
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts",
12
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts",
13
13
  "packageName": "@happyvertical/smrt-analytics",
14
- "fields": {
15
- "created_at": {
16
- "type": "datetime",
17
- "required": false
18
- },
19
- "updated_at": {
20
- "type": "datetime",
21
- "required": false
22
- },
23
- "tenantId": {
24
- "type": "text",
25
- "required": false,
26
- "_meta": {
27
- "sqlType": "UUID",
28
- "nullable": true,
29
- "__tenancy": {
30
- "isTenantIdField": true,
31
- "autoFilter": true,
32
- "required": false,
33
- "autoPopulate": true,
34
- "nullable": true,
35
- "mode": "optional",
36
- "field": "tenantId",
37
- "allowSuperAdminBypass": false
38
- }
39
- }
40
- },
41
- "propertyId": {
42
- "type": "foreignKey",
43
- "required": false,
44
- "related": "AnalyticsProperty"
45
- },
46
- "displayName": {
47
- "type": "text",
48
- "required": false,
49
- "default": ""
50
- },
51
- "streamType": {
52
- "type": "text",
53
- "required": false
54
- },
55
- "externalId": {
56
- "type": "text",
57
- "required": false,
58
- "default": ""
59
- },
60
- "measurementId": {
61
- "type": "text",
62
- "required": false,
63
- "default": ""
64
- },
65
- "firebaseAppId": {
66
- "type": "text",
67
- "required": false,
68
- "default": ""
69
- },
70
- "defaultUri": {
71
- "type": "text",
72
- "required": false,
73
- "default": ""
74
- },
75
- "bundleId": {
76
- "type": "text",
77
- "required": false,
78
- "default": ""
79
- },
80
- "packageName": {
81
- "type": "text",
82
- "required": false,
83
- "default": ""
84
- },
85
- "status": {
86
- "type": "text",
87
- "required": false
88
- },
89
- "enhancedMeasurement": {
90
- "type": "boolean",
91
- "required": false,
92
- "default": true
93
- }
94
- },
14
+ "fields": {},
95
15
  "methods": {
96
- "getAiUsageSnapshot": {
97
- "name": "getAiUsageSnapshot",
98
- "async": false,
99
- "parameters": [],
100
- "returnType": "AiUsageSnapshot | undefined",
101
- "isStatic": false,
102
- "isPublic": true
103
- },
104
- "resetAiUsage": {
105
- "name": "resetAiUsage",
106
- "async": false,
107
- "parameters": [],
108
- "returnType": "void",
109
- "isStatic": false,
110
- "isPublic": true
111
- },
112
- "listAiUsage": {
113
- "name": "listAiUsage",
16
+ "findByProperty": {
17
+ "name": "findByProperty",
114
18
  "async": true,
115
19
  "parameters": [
116
20
  {
117
- "name": "options",
118
- "type": "AiUsageListOptions",
119
- "optional": true
21
+ "name": "propertyId",
22
+ "type": "string",
23
+ "optional": false
120
24
  }
121
25
  ],
122
- "returnType": "Promise<SmrtAiUsageRecord[]>",
26
+ "returnType": "Promise<AnalyticsDataStream[]>",
123
27
  "isStatic": false,
124
28
  "isPublic": true
125
29
  },
126
- "summarizeAiUsage": {
127
- "name": "summarizeAiUsage",
30
+ "findByExternalId": {
31
+ "name": "findByExternalId",
128
32
  "async": true,
129
33
  "parameters": [
130
34
  {
131
- "name": "options",
132
- "type": "AiUsageSummaryOptions",
133
- "optional": true
35
+ "name": "externalId",
36
+ "type": "string",
37
+ "optional": false
134
38
  }
135
39
  ],
136
- "returnType": "Promise<Record<string, AiUsageStats>>",
137
- "isStatic": false,
138
- "isPublic": true
139
- },
140
- "destroy": {
141
- "name": "destroy",
142
- "async": false,
143
- "parameters": [],
144
- "returnType": "void",
145
- "isStatic": false,
146
- "isPublic": true
147
- },
148
- "markAsPersisted": {
149
- "name": "markAsPersisted",
150
- "async": false,
151
- "parameters": [],
152
- "returnType": "void",
153
- "isStatic": false,
154
- "isPublic": true
155
- },
156
- "requireInsertOnSave": {
157
- "name": "requireInsertOnSave",
158
- "async": false,
159
- "parameters": [],
160
- "returnType": "void",
161
- "isStatic": false,
162
- "isPublic": true
163
- },
164
- "initialize": {
165
- "name": "initialize",
166
- "async": true,
167
- "parameters": [],
168
- "returnType": "Promise",
40
+ "returnType": "Promise<AnalyticsDataStream | null>",
169
41
  "isStatic": false,
170
42
  "isPublic": true
171
43
  },
172
- "loadDataFromDb": {
173
- "name": "loadDataFromDb",
44
+ "findByMeasurementId": {
45
+ "name": "findByMeasurementId",
174
46
  "async": true,
175
47
  "parameters": [
176
48
  {
177
- "name": "data",
178
- "type": "Record<string>",
49
+ "name": "measurementId",
50
+ "type": "string",
179
51
  "optional": false
180
52
  }
181
53
  ],
182
- "returnType": "any",
54
+ "returnType": "Promise<AnalyticsDataStream | null>",
183
55
  "isStatic": false,
184
56
  "isPublic": true
185
57
  },
186
- "getFields": {
187
- "name": "getFields",
58
+ "findByType": {
59
+ "name": "findByType",
188
60
  "async": true,
189
- "parameters": [],
190
- "returnType": "Promise<any>",
191
- "isStatic": false,
192
- "isPublic": true
193
- },
194
- "toJSON": {
195
- "name": "toJSON",
196
- "async": false,
197
- "parameters": [],
198
- "returnType": "any",
199
- "isStatic": false,
200
- "isPublic": true
201
- },
202
- "toPlainObject": {
203
- "name": "toPlainObject",
204
- "async": false,
205
- "parameters": [],
206
- "returnType": "Record<string>",
207
- "isStatic": false,
208
- "isPublic": true
209
- },
210
- "toPublicJSON": {
211
- "name": "toPublicJSON",
212
- "async": false,
213
61
  "parameters": [
214
62
  {
215
- "name": "options",
216
- "type": "PublicJsonOptions",
217
- "optional": true
63
+ "name": "streamType",
64
+ "type": "DataStreamType",
65
+ "optional": false
218
66
  }
219
67
  ],
220
- "returnType": "Record<string>",
68
+ "returnType": "Promise<AnalyticsDataStream[]>",
221
69
  "isStatic": false,
222
70
  "isPublic": true
223
71
  },
224
- "getId": {
225
- "name": "getId",
72
+ "findWebStreams": {
73
+ "name": "findWebStreams",
226
74
  "async": true,
227
75
  "parameters": [],
228
- "returnType": "any",
76
+ "returnType": "Promise<AnalyticsDataStream[]>",
229
77
  "isStatic": false,
230
78
  "isPublic": true
231
79
  },
232
- "getSlug": {
233
- "name": "getSlug",
80
+ "findIOSStreams": {
81
+ "name": "findIOSStreams",
234
82
  "async": true,
235
83
  "parameters": [],
236
- "returnType": "any",
84
+ "returnType": "Promise<AnalyticsDataStream[]>",
237
85
  "isStatic": false,
238
86
  "isPublic": true
239
87
  },
240
- "getSavedId": {
241
- "name": "getSavedId",
88
+ "findAndroidStreams": {
89
+ "name": "findAndroidStreams",
242
90
  "async": true,
243
91
  "parameters": [],
244
- "returnType": "any",
92
+ "returnType": "Promise<AnalyticsDataStream[]>",
245
93
  "isStatic": false,
246
94
  "isPublic": true
247
95
  },
248
- "isSaved": {
249
- "name": "isSaved",
96
+ "findMobileStreams": {
97
+ "name": "findMobileStreams",
250
98
  "async": true,
251
99
  "parameters": [],
252
- "returnType": "any",
100
+ "returnType": "Promise<AnalyticsDataStream[]>",
253
101
  "isStatic": false,
254
102
  "isPublic": true
255
103
  },
256
- "save": {
257
- "name": "save",
104
+ "findByStatus": {
105
+ "name": "findByStatus",
258
106
  "async": true,
259
- "parameters": [],
260
- "returnType": "any",
261
- "isStatic": false,
262
- "isPublic": true
263
- },
264
- "classifyConstraintError": {
265
- "name": "classifyConstraintError",
266
- "async": false,
267
107
  "parameters": [
268
108
  {
269
- "name": "message",
270
- "type": "string",
109
+ "name": "status",
110
+ "type": "DataStreamStatus",
271
111
  "optional": false
272
112
  }
273
113
  ],
274
- "returnType": "'unique' | 'not_null' | null",
275
- "isStatic": true,
114
+ "returnType": "Promise<AnalyticsDataStream[]>",
115
+ "isStatic": false,
276
116
  "isPublic": true
277
117
  },
278
- "loadFromId": {
279
- "name": "loadFromId",
280
- "async": true,
281
- "parameters": [],
282
- "returnType": "any",
283
- "isStatic": false,
284
- "isPublic": true
285
- },
286
- "loadFromSlug": {
287
- "name": "loadFromSlug",
118
+ "findActive": {
119
+ "name": "findActive",
288
120
  "async": true,
289
121
  "parameters": [],
290
- "returnType": "any",
122
+ "returnType": "Promise<AnalyticsDataStream[]>",
291
123
  "isStatic": false,
292
124
  "isPublic": true
293
125
  },
294
- "is": {
295
- "name": "is",
126
+ "findActiveByProperty": {
127
+ "name": "findActiveByProperty",
296
128
  "async": true,
297
129
  "parameters": [
298
130
  {
299
- "name": "criteria",
131
+ "name": "propertyId",
300
132
  "type": "string",
301
133
  "optional": false
302
- },
303
- {
304
- "name": "options",
305
- "type": "AiOperationOptions",
306
- "optional": true
307
134
  }
308
135
  ],
309
- "returnType": "any",
136
+ "returnType": "Promise<AnalyticsDataStream[]>",
310
137
  "isStatic": false,
311
138
  "isPublic": true
139
+ }
140
+ },
141
+ "decoratorConfig": {},
142
+ "extends": "SmrtCollection",
143
+ "extendsTypeArg": "AnalyticsDataStream",
144
+ "exportName": "AnalyticsDataStreamCollection",
145
+ "collectionExportName": "AnalyticsDataStreamCollectionCollection",
146
+ "schema": {
147
+ "tableName": "analytics_data_stream_collections",
148
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_data_stream_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
149
+ "columns": {
150
+ "id": {
151
+ "type": "UUID",
152
+ "primaryKey": true,
153
+ "referenceKind": "id",
154
+ "notNull": true
155
+ },
156
+ "slug": {
157
+ "type": "TEXT",
158
+ "notNull": true
159
+ },
160
+ "context": {
161
+ "type": "TEXT",
162
+ "notNull": true,
163
+ "default": ""
164
+ },
165
+ "created_at": {
166
+ "type": "TIMESTAMP",
167
+ "notNull": true,
168
+ "default": "current_timestamp"
169
+ },
170
+ "updated_at": {
171
+ "type": "TIMESTAMP",
172
+ "notNull": true,
173
+ "default": "current_timestamp"
174
+ }
312
175
  },
313
- "do": {
314
- "name": "do",
176
+ "indexes": [
177
+ {
178
+ "name": "analytics_data_stream_collections_slug_context_idx",
179
+ "columns": [
180
+ "slug",
181
+ "context"
182
+ ],
183
+ "unique": true
184
+ },
185
+ {
186
+ "name": "analytics_data_stream_collections_created_at_idx",
187
+ "columns": [
188
+ "created_at"
189
+ ]
190
+ }
191
+ ],
192
+ "version": "12ef5a9a"
193
+ }
194
+ },
195
+ "@happyvertical/smrt-analytics:AnalyticsEventCollection": {
196
+ "name": "analyticseventcollection",
197
+ "className": "AnalyticsEventCollection",
198
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsEventCollection",
199
+ "collection": "analyticsevents",
200
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts",
201
+ "packageName": "@happyvertical/smrt-analytics",
202
+ "fields": {},
203
+ "methods": {
204
+ "findByProperty": {
205
+ "name": "findByProperty",
315
206
  "async": true,
316
207
  "parameters": [
317
208
  {
318
- "name": "instructions",
209
+ "name": "propertyId",
319
210
  "type": "string",
320
211
  "optional": false
321
- },
322
- {
323
- "name": "options",
324
- "type": "AiOperationOptions",
325
- "optional": true
326
212
  }
327
213
  ],
328
- "returnType": "any",
214
+ "returnType": "Promise<AnalyticsEvent[]>",
329
215
  "isStatic": false,
330
216
  "isPublic": true
331
217
  },
332
- "describe": {
333
- "name": "describe",
218
+ "findByEventName": {
219
+ "name": "findByEventName",
334
220
  "async": true,
335
221
  "parameters": [
336
222
  {
337
- "name": "options",
338
- "type": "AiOperationOptions",
339
- "optional": true
223
+ "name": "eventName",
224
+ "type": "string",
225
+ "optional": false
340
226
  }
341
227
  ],
342
- "returnType": "any",
228
+ "returnType": "Promise<AnalyticsEvent[]>",
343
229
  "isStatic": false,
344
230
  "isPublic": true
345
231
  },
346
- "delete": {
347
- "name": "delete",
232
+ "findByClientId": {
233
+ "name": "findByClientId",
348
234
  "async": true,
349
- "parameters": [],
350
- "returnType": "Promise<void>",
351
- "isStatic": false,
352
- "isPublic": true
353
- },
354
- "isRelatedLoaded": {
355
- "name": "isRelatedLoaded",
356
- "async": false,
357
235
  "parameters": [
358
236
  {
359
- "name": "fieldName",
237
+ "name": "clientId",
360
238
  "type": "string",
361
239
  "optional": false
362
240
  }
363
241
  ],
364
- "returnType": "boolean",
242
+ "returnType": "Promise<AnalyticsEvent[]>",
365
243
  "isStatic": false,
366
244
  "isPublic": true
367
245
  },
368
- "_setLoadedRelationship": {
369
- "name": "_setLoadedRelationship",
370
- "async": false,
246
+ "findByUserId": {
247
+ "name": "findByUserId",
248
+ "async": true,
371
249
  "parameters": [
372
250
  {
373
- "name": "fieldName",
251
+ "name": "userId",
374
252
  "type": "string",
375
253
  "optional": false
376
- },
377
- {
378
- "name": "value",
379
- "type": "any",
380
- "optional": false
381
254
  }
382
255
  ],
383
- "returnType": "void",
256
+ "returnType": "Promise<AnalyticsEvent[]>",
384
257
  "isStatic": false,
385
258
  "isPublic": true
386
259
  },
387
- "loadRelated": {
388
- "name": "loadRelated",
260
+ "findByStatus": {
261
+ "name": "findByStatus",
389
262
  "async": true,
390
263
  "parameters": [
391
264
  {
392
- "name": "fieldName",
393
- "type": "string",
265
+ "name": "status",
266
+ "type": "TrackingEventStatus",
394
267
  "optional": false
395
- },
396
- {
397
- "name": "opts",
398
- "type": "LoadRelatedOptions",
399
- "optional": true
400
268
  }
401
269
  ],
402
- "returnType": "Promise<any>",
270
+ "returnType": "Promise<AnalyticsEvent[]>",
403
271
  "isStatic": false,
404
272
  "isPublic": true
405
273
  },
406
- "loadRelatedMany": {
407
- "name": "loadRelatedMany",
274
+ "findPending": {
275
+ "name": "findPending",
408
276
  "async": true,
409
- "parameters": [
410
- {
411
- "name": "fieldName",
412
- "type": "string",
413
- "optional": false
414
- },
415
- {
416
- "name": "opts",
417
- "type": "LoadRelatedOptions",
418
- "optional": true
419
- }
420
- ],
421
- "returnType": "Promise<any[]>",
277
+ "parameters": [],
278
+ "returnType": "Promise<AnalyticsEvent[]>",
422
279
  "isStatic": false,
423
280
  "isPublic": true
424
281
  },
425
- "getRelated": {
426
- "name": "getRelated",
282
+ "findSent": {
283
+ "name": "findSent",
427
284
  "async": true,
428
- "parameters": [
429
- {
430
- "name": "fieldName",
431
- "type": "string",
432
- "optional": false
433
- },
434
- {
435
- "name": "opts",
436
- "type": "LoadRelatedOptions",
437
- "optional": true
438
- }
439
- ],
440
- "returnType": "Promise<any>",
285
+ "parameters": [],
286
+ "returnType": "Promise<AnalyticsEvent[]>",
441
287
  "isStatic": false,
442
288
  "isPublic": true
443
289
  },
444
- "getAvailableTools": {
445
- "name": "getAvailableTools",
446
- "async": false,
290
+ "findFailed": {
291
+ "name": "findFailed",
292
+ "async": true,
447
293
  "parameters": [],
448
- "returnType": "AITool[]",
294
+ "returnType": "Promise<AnalyticsEvent[]>",
449
295
  "isStatic": false,
450
296
  "isPublic": true
451
297
  },
452
- "executeToolCall": {
453
- "name": "executeToolCall",
298
+ "findForRetry": {
299
+ "name": "findForRetry",
454
300
  "async": true,
455
301
  "parameters": [
456
302
  {
457
- "name": "toolCall",
458
- "type": "ToolCall",
459
- "optional": false
303
+ "name": "maxRetries",
304
+ "type": "number",
305
+ "optional": true
460
306
  }
461
307
  ],
462
- "returnType": "Promise<ToolCallResult>",
308
+ "returnType": "Promise<AnalyticsEvent[]>",
463
309
  "isStatic": false,
464
310
  "isPublic": true
465
311
  },
466
- "remember": {
467
- "name": "remember",
312
+ "findPendingByProperty": {
313
+ "name": "findPendingByProperty",
468
314
  "async": true,
469
315
  "parameters": [
470
316
  {
471
- "name": "options",
472
- "type": "object",
317
+ "name": "propertyId",
318
+ "type": "string",
473
319
  "optional": false
474
320
  }
475
321
  ],
476
- "returnType": "Promise<void>",
322
+ "returnType": "Promise<AnalyticsEvent[]>",
477
323
  "isStatic": false,
478
324
  "isPublic": true
479
325
  },
480
- "recall": {
481
- "name": "recall",
326
+ "findByDateRange": {
327
+ "name": "findByDateRange",
482
328
  "async": true,
483
329
  "parameters": [
484
330
  {
485
- "name": "options",
486
- "type": "object",
331
+ "name": "startDate",
332
+ "type": "Date",
333
+ "optional": false
334
+ },
335
+ {
336
+ "name": "endDate",
337
+ "type": "Date",
487
338
  "optional": false
488
339
  }
489
340
  ],
490
- "returnType": "Promise",
341
+ "returnType": "Promise<AnalyticsEvent[]>",
491
342
  "isStatic": false,
492
343
  "isPublic": true
493
344
  },
494
- "recallAll": {
495
- "name": "recallAll",
345
+ "findConversions": {
346
+ "name": "findConversions",
496
347
  "async": true,
497
348
  "parameters": [
498
349
  {
499
- "name": "options",
500
- "type": "object",
350
+ "name": "propertyId",
351
+ "type": "string",
501
352
  "optional": true
502
353
  }
503
354
  ],
504
- "returnType": "Promise<Map<string>>",
355
+ "returnType": "Promise<AnalyticsEvent[]>",
505
356
  "isStatic": false,
506
357
  "isPublic": true
507
358
  },
508
- "forget": {
509
- "name": "forget",
510
- "async": true,
359
+ "findPageviews": {
360
+ "name": "findPageviews",
361
+ "async": true,
511
362
  "parameters": [
512
363
  {
513
- "name": "options",
514
- "type": "object",
515
- "optional": false
364
+ "name": "propertyId",
365
+ "type": "string",
366
+ "optional": true
516
367
  }
517
368
  ],
518
- "returnType": "Promise<void>",
369
+ "returnType": "Promise<AnalyticsEvent[]>",
519
370
  "isStatic": false,
520
371
  "isPublic": true
521
372
  },
522
- "forgetScope": {
523
- "name": "forgetScope",
373
+ "countByEventName": {
374
+ "name": "countByEventName",
524
375
  "async": true,
525
376
  "parameters": [
526
377
  {
527
- "name": "options",
528
- "type": "object",
378
+ "name": "propertyId",
379
+ "type": "string",
529
380
  "optional": false
530
381
  }
531
382
  ],
532
- "returnType": "Promise<number>",
383
+ "returnType": "Promise<Map<string, number>>",
533
384
  "isStatic": false,
534
385
  "isPublic": true
535
386
  },
536
- "generateEmbeddings": {
537
- "name": "generateEmbeddings",
387
+ "getPropertyStats": {
388
+ "name": "getPropertyStats",
538
389
  "async": true,
539
390
  "parameters": [
540
391
  {
541
- "name": "options",
542
- "type": "GenerateEmbeddingsOptions",
543
- "optional": true
392
+ "name": "propertyId",
393
+ "type": "string",
394
+ "optional": false
544
395
  }
545
396
  ],
546
- "returnType": "Promise<void>",
397
+ "returnType": "Promise<object>",
547
398
  "isStatic": false,
548
399
  "isPublic": true
549
400
  },
550
- "getEmbedding": {
551
- "name": "getEmbedding",
401
+ "getPropertyStatsWithTrend": {
402
+ "name": "getPropertyStatsWithTrend",
552
403
  "async": true,
553
404
  "parameters": [
554
405
  {
555
- "name": "fieldName",
406
+ "name": "propertyId",
556
407
  "type": "string",
557
408
  "optional": false
558
409
  },
559
410
  {
560
- "name": "model",
561
- "type": "string",
411
+ "name": "now",
412
+ "type": "Date",
562
413
  "optional": true
414
+ },
415
+ {
416
+ "name": "timeZone",
417
+ "type": "string",
418
+ "optional": true,
419
+ "default": "UTC"
563
420
  }
564
421
  ],
565
- "returnType": "Promise<number[] | null>",
566
- "isStatic": false,
567
- "isPublic": true
568
- },
569
- "hasStaleEmbeddings": {
570
- "name": "hasStaleEmbeddings",
571
- "async": true,
572
- "parameters": [],
573
- "returnType": "Promise<boolean>",
422
+ "returnType": "Promise<PropertyStatsWithTrend>",
574
423
  "isStatic": false,
575
424
  "isPublic": true
576
425
  },
577
- "clearEmbeddings": {
578
- "name": "clearEmbeddings",
426
+ "getBatchPropertyStats": {
427
+ "name": "getBatchPropertyStats",
579
428
  "async": true,
580
- "parameters": [],
581
- "returnType": "Promise<void>",
582
- "isStatic": false,
583
- "isPublic": true
584
- },
585
- "isWeb": {
586
- "name": "isWeb",
587
- "async": false,
588
- "parameters": [],
589
- "returnType": "boolean",
590
- "isStatic": false,
591
- "isPublic": true
592
- },
593
- "isIOS": {
594
- "name": "isIOS",
595
- "async": false,
596
- "parameters": [],
597
- "returnType": "boolean",
598
- "isStatic": false,
599
- "isPublic": true
600
- },
601
- "isAndroid": {
602
- "name": "isAndroid",
603
- "async": false,
604
- "parameters": [],
605
- "returnType": "boolean",
606
- "isStatic": false,
607
- "isPublic": true
608
- },
609
- "isMobileApp": {
610
- "name": "isMobileApp",
611
- "async": false,
612
- "parameters": [],
613
- "returnType": "boolean",
614
- "isStatic": false,
615
- "isPublic": true
616
- },
617
- "getPlatformId": {
618
- "name": "getPlatformId",
619
- "async": false,
620
- "parameters": [],
621
- "returnType": "string",
429
+ "parameters": [
430
+ {
431
+ "name": "propertyIds",
432
+ "type": "string[]",
433
+ "optional": false
434
+ },
435
+ {
436
+ "name": "now",
437
+ "type": "Date",
438
+ "optional": true
439
+ },
440
+ {
441
+ "name": "timeZone",
442
+ "type": "string",
443
+ "optional": true,
444
+ "default": "UTC"
445
+ }
446
+ ],
447
+ "returnType": "Promise<Map<string, PropertyStatsWithTrend>>",
622
448
  "isStatic": false,
623
449
  "isPublic": true
624
450
  }
625
451
  },
626
- "decoratorConfig": {
627
- "tableStrategy": "sti",
628
- "api": {
629
- "include": [
630
- "list",
631
- "get",
632
- "create",
633
- "update"
634
- ]
635
- },
636
- "mcp": {
637
- "include": [
638
- "list",
639
- "get"
640
- ]
641
- },
642
- "cli": true,
643
- "tenantScoped": {
644
- "mode": "optional"
645
- },
646
- "conflictColumns": [
647
- "tenant_id",
648
- "slug",
649
- "context",
650
- "_meta_type"
651
- ]
652
- },
653
- "extends": "SmrtObject",
654
- "exportName": "AnalyticsDataStream",
655
- "collectionExportName": "AnalyticsDataStreamCollection",
452
+ "decoratorConfig": {},
453
+ "extends": "SmrtCollection",
454
+ "extendsTypeArg": "AnalyticsEvent",
455
+ "exportName": "AnalyticsEventCollection",
456
+ "collectionExportName": "AnalyticsEventCollectionCollection",
656
457
  "schema": {
657
- "tableName": "analytics_data_streams",
658
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_data_streams\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"display_name\" TEXT DEFAULT '',\n \"stream_type\" TEXT,\n \"external_id\" TEXT DEFAULT '',\n \"measurement_id\" TEXT DEFAULT '',\n \"firebase_app_id\" TEXT DEFAULT '',\n \"default_uri\" TEXT DEFAULT '',\n \"bundle_id\" TEXT DEFAULT '',\n \"package_name\" TEXT DEFAULT '',\n \"status\" TEXT,\n \"enhanced_measurement\" BOOLEAN DEFAULT TRUE\n);",
458
+ "tableName": "analytics_event_collections",
459
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_event_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
659
460
  "columns": {
660
461
  "id": {
661
462
  "type": "UUID",
@@ -672,14 +473,6 @@
672
473
  "notNull": true,
673
474
  "default": ""
674
475
  },
675
- "_meta_type": {
676
- "type": "TEXT",
677
- "notNull": true
678
- },
679
- "_meta_data": {
680
- "type": "JSON",
681
- "notNull": false
682
- },
683
476
  "created_at": {
684
477
  "type": "TIMESTAMP",
685
478
  "notNull": true,
@@ -689,106 +482,405 @@
689
482
  "type": "TIMESTAMP",
690
483
  "notNull": true,
691
484
  "default": "current_timestamp"
692
- },
693
- "tenant_id": {
694
- "type": "UUID",
695
- "referenceKind": "tenantId",
696
- "notNull": false
697
- },
698
- "property_id": {
699
- "type": "UUID",
700
- "referenceKind": "foreignKey",
701
- "notNull": false
702
- },
703
- "display_name": {
704
- "type": "TEXT",
705
- "notNull": false,
706
- "default": ""
707
- },
708
- "stream_type": {
709
- "type": "TEXT",
710
- "notNull": false
711
- },
712
- "external_id": {
713
- "type": "TEXT",
714
- "notNull": false,
715
- "default": ""
716
- },
717
- "measurement_id": {
718
- "type": "TEXT",
719
- "notNull": false,
720
- "default": ""
721
- },
722
- "firebase_app_id": {
723
- "type": "TEXT",
724
- "notNull": false,
725
- "default": ""
726
- },
727
- "default_uri": {
728
- "type": "TEXT",
729
- "notNull": false,
730
- "default": ""
731
- },
732
- "bundle_id": {
733
- "type": "TEXT",
734
- "notNull": false,
735
- "default": ""
736
- },
737
- "package_name": {
738
- "type": "TEXT",
739
- "notNull": false,
740
- "default": ""
741
- },
742
- "status": {
743
- "type": "TEXT",
744
- "notNull": false
745
- },
746
- "enhanced_measurement": {
747
- "type": "BOOLEAN",
748
- "notNull": false,
749
- "default": true
750
485
  }
751
486
  },
752
487
  "indexes": [
753
488
  {
754
- "name": "analytics_data_streams_slug_context_meta_type_idx",
489
+ "name": "analytics_event_collections_slug_context_idx",
755
490
  "columns": [
756
- "tenant_id",
757
491
  "slug",
758
- "context",
759
- "_meta_type"
492
+ "context"
760
493
  ],
761
494
  "unique": true
762
495
  },
763
496
  {
764
- "name": "analytics_data_streams_meta_type_idx",
765
- "columns": [
766
- "_meta_type"
767
- ]
768
- },
769
- {
770
- "name": "analytics_data_streams_tenant_id_created_at_idx",
497
+ "name": "analytics_event_collections_created_at_idx",
771
498
  "columns": [
772
- "tenant_id",
773
499
  "created_at"
774
500
  ]
775
- },
776
- {
777
- "name": "analytics_data_streams_property_id_idx",
778
- "columns": [
779
- "property_id"
780
- ]
781
501
  }
782
502
  ],
783
- "version": "e1ae416d"
503
+ "version": "13d03b2a"
784
504
  }
785
505
  },
786
- "@happyvertical/smrt-analytics:AnalyticsEvent": {
787
- "name": "analyticsevent",
788
- "className": "AnalyticsEvent",
789
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsEvent",
790
- "collection": "analyticsevents",
791
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts",
506
+ "@happyvertical/smrt-analytics:AnalyticsPropertyCollection": {
507
+ "name": "analyticspropertycollection",
508
+ "className": "AnalyticsPropertyCollection",
509
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsPropertyCollection",
510
+ "collection": "analyticsproperties",
511
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts",
512
+ "packageName": "@happyvertical/smrt-analytics",
513
+ "fields": {},
514
+ "methods": {
515
+ "findByExternalId": {
516
+ "name": "findByExternalId",
517
+ "async": true,
518
+ "parameters": [
519
+ {
520
+ "name": "externalId",
521
+ "type": "string",
522
+ "optional": false
523
+ }
524
+ ],
525
+ "returnType": "Promise<AnalyticsProperty | null>",
526
+ "isStatic": false,
527
+ "isPublic": true
528
+ },
529
+ "findByMeasurementId": {
530
+ "name": "findByMeasurementId",
531
+ "async": true,
532
+ "parameters": [
533
+ {
534
+ "name": "measurementId",
535
+ "type": "string",
536
+ "optional": false
537
+ }
538
+ ],
539
+ "returnType": "Promise<AnalyticsProperty | null>",
540
+ "isStatic": false,
541
+ "isPublic": true
542
+ },
543
+ "findBySiteDomain": {
544
+ "name": "findBySiteDomain",
545
+ "async": true,
546
+ "parameters": [
547
+ {
548
+ "name": "siteDomain",
549
+ "type": "string",
550
+ "optional": false
551
+ },
552
+ {
553
+ "name": "provider",
554
+ "type": "AnalyticsProvider",
555
+ "optional": true
556
+ }
557
+ ],
558
+ "returnType": "Promise<AnalyticsProperty | null>",
559
+ "isStatic": false,
560
+ "isPublic": true
561
+ },
562
+ "findByProvider": {
563
+ "name": "findByProvider",
564
+ "async": true,
565
+ "parameters": [
566
+ {
567
+ "name": "provider",
568
+ "type": "AnalyticsProvider",
569
+ "optional": false
570
+ }
571
+ ],
572
+ "returnType": "Promise<AnalyticsProperty[]>",
573
+ "isStatic": false,
574
+ "isPublic": true
575
+ },
576
+ "findGA4Properties": {
577
+ "name": "findGA4Properties",
578
+ "async": true,
579
+ "parameters": [],
580
+ "returnType": "Promise<AnalyticsProperty[]>",
581
+ "isStatic": false,
582
+ "isPublic": true
583
+ },
584
+ "findPlausibleSites": {
585
+ "name": "findPlausibleSites",
586
+ "async": true,
587
+ "parameters": [],
588
+ "returnType": "Promise<AnalyticsProperty[]>",
589
+ "isStatic": false,
590
+ "isPublic": true
591
+ },
592
+ "findMatomoSites": {
593
+ "name": "findMatomoSites",
594
+ "async": true,
595
+ "parameters": [],
596
+ "returnType": "Promise<AnalyticsProperty[]>",
597
+ "isStatic": false,
598
+ "isPublic": true
599
+ },
600
+ "findByStatus": {
601
+ "name": "findByStatus",
602
+ "async": true,
603
+ "parameters": [
604
+ {
605
+ "name": "status",
606
+ "type": "AnalyticsPropertyStatus",
607
+ "optional": false
608
+ }
609
+ ],
610
+ "returnType": "Promise<AnalyticsProperty[]>",
611
+ "isStatic": false,
612
+ "isPublic": true
613
+ },
614
+ "findActive": {
615
+ "name": "findActive",
616
+ "async": true,
617
+ "parameters": [],
618
+ "returnType": "Promise<AnalyticsProperty[]>",
619
+ "isStatic": false,
620
+ "isPublic": true
621
+ },
622
+ "findNeedingSync": {
623
+ "name": "findNeedingSync",
624
+ "async": true,
625
+ "parameters": [
626
+ {
627
+ "name": "hoursAgo",
628
+ "type": "number",
629
+ "optional": true
630
+ }
631
+ ],
632
+ "returnType": "Promise<AnalyticsProperty[]>",
633
+ "isStatic": false,
634
+ "isPublic": true
635
+ }
636
+ },
637
+ "decoratorConfig": {},
638
+ "extends": "SmrtCollection",
639
+ "extendsTypeArg": "AnalyticsProperty",
640
+ "exportName": "AnalyticsPropertyCollection",
641
+ "collectionExportName": "AnalyticsPropertyCollectionCollection",
642
+ "schema": {
643
+ "tableName": "analytics_property_collections",
644
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_property_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
645
+ "columns": {
646
+ "id": {
647
+ "type": "UUID",
648
+ "primaryKey": true,
649
+ "referenceKind": "id",
650
+ "notNull": true
651
+ },
652
+ "slug": {
653
+ "type": "TEXT",
654
+ "notNull": true
655
+ },
656
+ "context": {
657
+ "type": "TEXT",
658
+ "notNull": true,
659
+ "default": ""
660
+ },
661
+ "created_at": {
662
+ "type": "TIMESTAMP",
663
+ "notNull": true,
664
+ "default": "current_timestamp"
665
+ },
666
+ "updated_at": {
667
+ "type": "TIMESTAMP",
668
+ "notNull": true,
669
+ "default": "current_timestamp"
670
+ }
671
+ },
672
+ "indexes": [
673
+ {
674
+ "name": "analytics_property_collections_slug_context_idx",
675
+ "columns": [
676
+ "slug",
677
+ "context"
678
+ ],
679
+ "unique": true
680
+ },
681
+ {
682
+ "name": "analytics_property_collections_created_at_idx",
683
+ "columns": [
684
+ "created_at"
685
+ ]
686
+ }
687
+ ],
688
+ "version": "a1c264b1"
689
+ }
690
+ },
691
+ "@happyvertical/smrt-analytics:AnalyticsReportCollection": {
692
+ "name": "analyticsreportcollection",
693
+ "className": "AnalyticsReportCollection",
694
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsReportCollection",
695
+ "collection": "analyticsreports",
696
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts",
697
+ "packageName": "@happyvertical/smrt-analytics",
698
+ "fields": {},
699
+ "methods": {
700
+ "findByProperty": {
701
+ "name": "findByProperty",
702
+ "async": true,
703
+ "parameters": [
704
+ {
705
+ "name": "propertyId",
706
+ "type": "string",
707
+ "optional": false
708
+ }
709
+ ],
710
+ "returnType": "Promise<AnalyticsReport[]>",
711
+ "isStatic": false,
712
+ "isPublic": true
713
+ },
714
+ "findByStatus": {
715
+ "name": "findByStatus",
716
+ "async": true,
717
+ "parameters": [
718
+ {
719
+ "name": "status",
720
+ "type": "ReportStatus",
721
+ "optional": false
722
+ }
723
+ ],
724
+ "returnType": "Promise<AnalyticsReport[]>",
725
+ "isStatic": false,
726
+ "isPublic": true
727
+ },
728
+ "findDrafts": {
729
+ "name": "findDrafts",
730
+ "async": true,
731
+ "parameters": [],
732
+ "returnType": "Promise<AnalyticsReport[]>",
733
+ "isStatic": false,
734
+ "isPublic": true
735
+ },
736
+ "findScheduled": {
737
+ "name": "findScheduled",
738
+ "async": true,
739
+ "parameters": [],
740
+ "returnType": "Promise<AnalyticsReport[]>",
741
+ "isStatic": false,
742
+ "isPublic": true
743
+ },
744
+ "findCompleted": {
745
+ "name": "findCompleted",
746
+ "async": true,
747
+ "parameters": [],
748
+ "returnType": "Promise<AnalyticsReport[]>",
749
+ "isStatic": false,
750
+ "isPublic": true
751
+ },
752
+ "findFailed": {
753
+ "name": "findFailed",
754
+ "async": true,
755
+ "parameters": [],
756
+ "returnType": "Promise<AnalyticsReport[]>",
757
+ "isStatic": false,
758
+ "isPublic": true
759
+ },
760
+ "findByFrequency": {
761
+ "name": "findByFrequency",
762
+ "async": true,
763
+ "parameters": [
764
+ {
765
+ "name": "frequency",
766
+ "type": "ReportFrequency",
767
+ "optional": false
768
+ }
769
+ ],
770
+ "returnType": "Promise<AnalyticsReport[]>",
771
+ "isStatic": false,
772
+ "isPublic": true
773
+ },
774
+ "findRecurring": {
775
+ "name": "findRecurring",
776
+ "async": true,
777
+ "parameters": [],
778
+ "returnType": "Promise<AnalyticsReport[]>",
779
+ "isStatic": false,
780
+ "isPublic": true
781
+ },
782
+ "findDue": {
783
+ "name": "findDue",
784
+ "async": true,
785
+ "parameters": [],
786
+ "returnType": "Promise<AnalyticsReport[]>",
787
+ "isStatic": false,
788
+ "isPublic": true
789
+ },
790
+ "findByPropertyAndStatus": {
791
+ "name": "findByPropertyAndStatus",
792
+ "async": true,
793
+ "parameters": [
794
+ {
795
+ "name": "propertyId",
796
+ "type": "string",
797
+ "optional": false
798
+ },
799
+ {
800
+ "name": "status",
801
+ "type": "ReportStatus",
802
+ "optional": false
803
+ }
804
+ ],
805
+ "returnType": "Promise<AnalyticsReport[]>",
806
+ "isStatic": false,
807
+ "isPublic": true
808
+ },
809
+ "findRecentlyRun": {
810
+ "name": "findRecentlyRun",
811
+ "async": true,
812
+ "parameters": [
813
+ {
814
+ "name": "hoursAgo",
815
+ "type": "number",
816
+ "optional": true
817
+ }
818
+ ],
819
+ "returnType": "Promise<AnalyticsReport[]>",
820
+ "isStatic": false,
821
+ "isPublic": true
822
+ }
823
+ },
824
+ "decoratorConfig": {},
825
+ "extends": "SmrtCollection",
826
+ "extendsTypeArg": "AnalyticsReport",
827
+ "exportName": "AnalyticsReportCollection",
828
+ "collectionExportName": "AnalyticsReportCollectionCollection",
829
+ "schema": {
830
+ "tableName": "analytics_report_collections",
831
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_report_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
832
+ "columns": {
833
+ "id": {
834
+ "type": "UUID",
835
+ "primaryKey": true,
836
+ "referenceKind": "id",
837
+ "notNull": true
838
+ },
839
+ "slug": {
840
+ "type": "TEXT",
841
+ "notNull": true
842
+ },
843
+ "context": {
844
+ "type": "TEXT",
845
+ "notNull": true,
846
+ "default": ""
847
+ },
848
+ "created_at": {
849
+ "type": "TIMESTAMP",
850
+ "notNull": true,
851
+ "default": "current_timestamp"
852
+ },
853
+ "updated_at": {
854
+ "type": "TIMESTAMP",
855
+ "notNull": true,
856
+ "default": "current_timestamp"
857
+ }
858
+ },
859
+ "indexes": [
860
+ {
861
+ "name": "analytics_report_collections_slug_context_idx",
862
+ "columns": [
863
+ "slug",
864
+ "context"
865
+ ],
866
+ "unique": true
867
+ },
868
+ {
869
+ "name": "analytics_report_collections_created_at_idx",
870
+ "columns": [
871
+ "created_at"
872
+ ]
873
+ }
874
+ ],
875
+ "version": "74445ee1"
876
+ }
877
+ },
878
+ "@happyvertical/smrt-analytics:AnalyticsDataStream": {
879
+ "name": "analyticsdatastream",
880
+ "className": "AnalyticsDataStream",
881
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsDataStream",
882
+ "collection": "analyticsdatastreams",
883
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts",
792
884
  "packageName": "@happyvertical/smrt-analytics",
793
885
  "fields": {
794
886
  "created_at": {
@@ -822,77 +914,53 @@
822
914
  "required": false,
823
915
  "related": "AnalyticsProperty"
824
916
  },
825
- "eventName": {
917
+ "displayName": {
826
918
  "type": "text",
827
919
  "required": false,
828
920
  "default": ""
829
921
  },
830
- "clientId": {
922
+ "streamType": {
831
923
  "type": "text",
832
- "required": false,
833
- "default": ""
924
+ "required": false
834
925
  },
835
- "userId": {
926
+ "externalId": {
836
927
  "type": "text",
837
928
  "required": false,
838
929
  "default": ""
839
930
  },
840
- "params": {
841
- "type": "text",
842
- "required": false,
843
- "default": "{}"
844
- },
845
- "eventTimestamp": {
846
- "type": "datetime",
847
- "required": false
848
- },
849
- "status": {
850
- "type": "text",
851
- "required": false
852
- },
853
- "sentAt": {
854
- "type": "datetime",
855
- "required": false
856
- },
857
- "errorMessage": {
931
+ "measurementId": {
858
932
  "type": "text",
859
933
  "required": false,
860
934
  "default": ""
861
935
  },
862
- "retryCount": {
863
- "type": "integer",
864
- "required": false,
865
- "default": 0
866
- },
867
- "nonPersonalizedAds": {
868
- "type": "boolean",
869
- "required": false,
870
- "default": false
871
- },
872
- "sessionId": {
936
+ "firebaseAppId": {
873
937
  "type": "text",
874
938
  "required": false,
875
939
  "default": ""
876
940
  },
877
- "pagePath": {
941
+ "defaultUri": {
878
942
  "type": "text",
879
943
  "required": false,
880
944
  "default": ""
881
945
  },
882
- "pageTitle": {
946
+ "bundleId": {
883
947
  "type": "text",
884
948
  "required": false,
885
949
  "default": ""
886
950
  },
887
- "userAgent": {
951
+ "packageName": {
888
952
  "type": "text",
889
953
  "required": false,
890
954
  "default": ""
891
955
  },
892
- "ipAddress": {
956
+ "status": {
893
957
  "type": "text",
958
+ "required": false
959
+ },
960
+ "enhancedMeasurement": {
961
+ "type": "boolean",
894
962
  "required": false,
895
- "default": ""
963
+ "default": true
896
964
  }
897
965
  },
898
966
  "methods": {
@@ -1385,112 +1453,43 @@
1385
1453
  "isStatic": false,
1386
1454
  "isPublic": true
1387
1455
  },
1388
- "getParams": {
1389
- "name": "getParams",
1390
- "async": false,
1391
- "parameters": [],
1392
- "returnType": "Record<string, string | number | boolean>",
1393
- "isStatic": false,
1394
- "isPublic": true
1395
- },
1396
- "setParams": {
1397
- "name": "setParams",
1398
- "async": false,
1399
- "parameters": [
1400
- {
1401
- "name": "params",
1402
- "type": "Record<string, string | number | boolean>",
1403
- "optional": false
1404
- }
1405
- ],
1406
- "returnType": "void",
1407
- "isStatic": false,
1408
- "isPublic": true
1409
- },
1410
- "addParam": {
1411
- "name": "addParam",
1412
- "async": false,
1413
- "parameters": [
1414
- {
1415
- "name": "key",
1416
- "type": "string",
1417
- "optional": false
1418
- },
1419
- {
1420
- "name": "value",
1421
- "type": "string | number | boolean",
1422
- "optional": false
1423
- }
1424
- ],
1425
- "returnType": "void",
1426
- "isStatic": false,
1427
- "isPublic": true
1428
- },
1429
- "isPageview": {
1430
- "name": "isPageview",
1456
+ "isWeb": {
1457
+ "name": "isWeb",
1431
1458
  "async": false,
1432
1459
  "parameters": [],
1433
1460
  "returnType": "boolean",
1434
1461
  "isStatic": false,
1435
1462
  "isPublic": true
1436
1463
  },
1437
- "isConversion": {
1438
- "name": "isConversion",
1464
+ "isIOS": {
1465
+ "name": "isIOS",
1439
1466
  "async": false,
1440
1467
  "parameters": [],
1441
1468
  "returnType": "boolean",
1442
1469
  "isStatic": false,
1443
1470
  "isPublic": true
1444
1471
  },
1445
- "markSent": {
1446
- "name": "markSent",
1472
+ "isAndroid": {
1473
+ "name": "isAndroid",
1447
1474
  "async": false,
1448
1475
  "parameters": [],
1449
- "returnType": "void",
1450
- "isStatic": false,
1451
- "isPublic": true
1452
- },
1453
- "markFailed": {
1454
- "name": "markFailed",
1455
- "async": false,
1456
- "parameters": [
1457
- {
1458
- "name": "error",
1459
- "type": "string",
1460
- "optional": false
1461
- }
1462
- ],
1463
- "returnType": "void",
1476
+ "returnType": "boolean",
1464
1477
  "isStatic": false,
1465
1478
  "isPublic": true
1466
1479
  },
1467
- "resetForRetry": {
1468
- "name": "resetForRetry",
1480
+ "isMobileApp": {
1481
+ "name": "isMobileApp",
1469
1482
  "async": false,
1470
1483
  "parameters": [],
1471
- "returnType": "void",
1472
- "isStatic": false,
1473
- "isPublic": true
1474
- },
1475
- "shouldRetry": {
1476
- "name": "shouldRetry",
1477
- "async": false,
1478
- "parameters": [
1479
- {
1480
- "name": "maxRetries",
1481
- "type": "number",
1482
- "optional": true
1483
- }
1484
- ],
1485
1484
  "returnType": "boolean",
1486
1485
  "isStatic": false,
1487
1486
  "isPublic": true
1488
1487
  },
1489
- "toTrackEvent": {
1490
- "name": "toTrackEvent",
1488
+ "getPlatformId": {
1489
+ "name": "getPlatformId",
1491
1490
  "async": false,
1492
1491
  "parameters": [],
1493
- "returnType": "object",
1492
+ "returnType": "string",
1494
1493
  "isStatic": false,
1495
1494
  "isPublic": true
1496
1495
  }
@@ -1501,14 +1500,14 @@
1501
1500
  "include": [
1502
1501
  "list",
1503
1502
  "get",
1504
- "create"
1503
+ "create",
1504
+ "update"
1505
1505
  ]
1506
1506
  },
1507
1507
  "mcp": {
1508
1508
  "include": [
1509
1509
  "list",
1510
- "get",
1511
- "track"
1510
+ "get"
1512
1511
  ]
1513
1512
  },
1514
1513
  "cli": true,
@@ -1523,11 +1522,11 @@
1523
1522
  ]
1524
1523
  },
1525
1524
  "extends": "SmrtObject",
1526
- "exportName": "AnalyticsEvent",
1527
- "collectionExportName": "AnalyticsEventCollection",
1525
+ "exportName": "AnalyticsDataStream",
1526
+ "collectionExportName": "AnalyticsDataStreamCollection",
1528
1527
  "schema": {
1529
- "tableName": "analytics_events",
1530
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_events\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"event_name\" TEXT DEFAULT '',\n \"client_id\" TEXT DEFAULT '',\n \"user_id\" TEXT DEFAULT '',\n \"params\" TEXT DEFAULT '{}',\n \"event_timestamp\" TIMESTAMP,\n \"status\" TEXT,\n \"sent_at\" TIMESTAMP,\n \"error_message\" TEXT DEFAULT '',\n \"retry_count\" INTEGER DEFAULT 0,\n \"non_personalized_ads\" BOOLEAN DEFAULT FALSE,\n \"session_id\" TEXT DEFAULT '',\n \"page_path\" TEXT DEFAULT '',\n \"page_title\" TEXT DEFAULT '',\n \"user_agent\" TEXT DEFAULT '',\n \"ip_address\" TEXT DEFAULT ''\n);",
1528
+ "tableName": "analytics_data_streams",
1529
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_data_streams\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"display_name\" TEXT DEFAULT '',\n \"stream_type\" TEXT,\n \"external_id\" TEXT DEFAULT '',\n \"measurement_id\" TEXT DEFAULT '',\n \"firebase_app_id\" TEXT DEFAULT '',\n \"default_uri\" TEXT DEFAULT '',\n \"bundle_id\" TEXT DEFAULT '',\n \"package_name\" TEXT DEFAULT '',\n \"status\" TEXT,\n \"enhanced_measurement\" BOOLEAN DEFAULT TRUE\n);",
1531
1530
  "columns": {
1532
1531
  "id": {
1533
1532
  "type": "UUID",
@@ -1572,82 +1571,58 @@
1572
1571
  "referenceKind": "foreignKey",
1573
1572
  "notNull": false
1574
1573
  },
1575
- "event_name": {
1574
+ "display_name": {
1576
1575
  "type": "TEXT",
1577
1576
  "notNull": false,
1578
1577
  "default": ""
1579
1578
  },
1580
- "client_id": {
1579
+ "stream_type": {
1581
1580
  "type": "TEXT",
1582
- "notNull": false,
1583
- "default": ""
1581
+ "notNull": false
1584
1582
  },
1585
- "user_id": {
1583
+ "external_id": {
1586
1584
  "type": "TEXT",
1587
1585
  "notNull": false,
1588
1586
  "default": ""
1589
1587
  },
1590
- "params": {
1591
- "type": "TEXT",
1592
- "notNull": false,
1593
- "default": "{}"
1594
- },
1595
- "event_timestamp": {
1596
- "type": "TIMESTAMP",
1597
- "notNull": false
1598
- },
1599
- "status": {
1600
- "type": "TEXT",
1601
- "notNull": false
1602
- },
1603
- "sent_at": {
1604
- "type": "TIMESTAMP",
1605
- "notNull": false
1606
- },
1607
- "error_message": {
1588
+ "measurement_id": {
1608
1589
  "type": "TEXT",
1609
1590
  "notNull": false,
1610
1591
  "default": ""
1611
1592
  },
1612
- "retry_count": {
1613
- "type": "INTEGER",
1614
- "notNull": false,
1615
- "default": 0
1616
- },
1617
- "non_personalized_ads": {
1618
- "type": "BOOLEAN",
1619
- "notNull": false,
1620
- "default": false
1621
- },
1622
- "session_id": {
1593
+ "firebase_app_id": {
1623
1594
  "type": "TEXT",
1624
1595
  "notNull": false,
1625
1596
  "default": ""
1626
1597
  },
1627
- "page_path": {
1598
+ "default_uri": {
1628
1599
  "type": "TEXT",
1629
1600
  "notNull": false,
1630
1601
  "default": ""
1631
1602
  },
1632
- "page_title": {
1603
+ "bundle_id": {
1633
1604
  "type": "TEXT",
1634
1605
  "notNull": false,
1635
1606
  "default": ""
1636
1607
  },
1637
- "user_agent": {
1608
+ "package_name": {
1638
1609
  "type": "TEXT",
1639
1610
  "notNull": false,
1640
1611
  "default": ""
1641
1612
  },
1642
- "ip_address": {
1613
+ "status": {
1643
1614
  "type": "TEXT",
1615
+ "notNull": false
1616
+ },
1617
+ "enhanced_measurement": {
1618
+ "type": "BOOLEAN",
1644
1619
  "notNull": false,
1645
- "default": ""
1620
+ "default": true
1646
1621
  }
1647
1622
  },
1648
1623
  "indexes": [
1649
1624
  {
1650
- "name": "analytics_events_slug_context_meta_type_idx",
1625
+ "name": "analytics_data_streams_slug_context_meta_type_idx",
1651
1626
  "columns": [
1652
1627
  "tenant_id",
1653
1628
  "slug",
@@ -1657,34 +1632,34 @@
1657
1632
  "unique": true
1658
1633
  },
1659
1634
  {
1660
- "name": "analytics_events_meta_type_idx",
1635
+ "name": "analytics_data_streams_meta_type_idx",
1661
1636
  "columns": [
1662
1637
  "_meta_type"
1663
1638
  ]
1664
1639
  },
1665
1640
  {
1666
- "name": "analytics_events_tenant_id_created_at_idx",
1641
+ "name": "analytics_data_streams_tenant_id_created_at_idx",
1667
1642
  "columns": [
1668
1643
  "tenant_id",
1669
1644
  "created_at"
1670
1645
  ]
1671
1646
  },
1672
1647
  {
1673
- "name": "analytics_events_property_id_idx",
1648
+ "name": "analytics_data_streams_property_id_idx",
1674
1649
  "columns": [
1675
1650
  "property_id"
1676
1651
  ]
1677
1652
  }
1678
1653
  ],
1679
- "version": "8c2447ff"
1654
+ "version": "e1ae416d"
1680
1655
  }
1681
1656
  },
1682
- "@happyvertical/smrt-analytics:AnalyticsProperty": {
1683
- "name": "analyticsproperty",
1684
- "className": "AnalyticsProperty",
1685
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsProperty",
1686
- "collection": "analyticsproperties",
1687
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts",
1657
+ "@happyvertical/smrt-analytics:AnalyticsEvent": {
1658
+ "name": "analyticsevent",
1659
+ "className": "AnalyticsEvent",
1660
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsEvent",
1661
+ "collection": "analyticsevents",
1662
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts",
1688
1663
  "packageName": "@happyvertical/smrt-analytics",
1689
1664
  "fields": {
1690
1665
  "created_at": {
@@ -1713,80 +1688,82 @@
1713
1688
  }
1714
1689
  }
1715
1690
  },
1716
- "name": {
1717
- "type": "text",
1691
+ "propertyId": {
1692
+ "type": "foreignKey",
1718
1693
  "required": false,
1719
- "default": ""
1694
+ "related": "AnalyticsProperty"
1720
1695
  },
1721
- "displayName": {
1696
+ "eventName": {
1722
1697
  "type": "text",
1723
1698
  "required": false,
1724
1699
  "default": ""
1725
1700
  },
1726
- "provider": {
1727
- "type": "text",
1728
- "required": false
1729
- },
1730
- "externalId": {
1701
+ "clientId": {
1731
1702
  "type": "text",
1732
1703
  "required": false,
1733
1704
  "default": ""
1734
1705
  },
1735
- "measurementId": {
1706
+ "userId": {
1736
1707
  "type": "text",
1737
1708
  "required": false,
1738
1709
  "default": ""
1739
1710
  },
1740
- "apiSecret": {
1711
+ "params": {
1741
1712
  "type": "text",
1742
1713
  "required": false,
1743
- "default": "",
1744
- "_meta": {
1745
- "sensitive": true
1746
- },
1747
- "sensitive": true
1714
+ "default": "{}"
1748
1715
  },
1749
- "siteDomain": {
1716
+ "eventTimestamp": {
1717
+ "type": "datetime",
1718
+ "required": false
1719
+ },
1720
+ "status": {
1721
+ "type": "text",
1722
+ "required": false
1723
+ },
1724
+ "sentAt": {
1725
+ "type": "datetime",
1726
+ "required": false
1727
+ },
1728
+ "errorMessage": {
1750
1729
  "type": "text",
1751
1730
  "required": false,
1752
1731
  "default": ""
1753
1732
  },
1754
- "timeZone": {
1755
- "type": "text",
1733
+ "retryCount": {
1734
+ "type": "integer",
1756
1735
  "required": false,
1757
- "default": "America/Los_Angeles"
1736
+ "default": 0
1758
1737
  },
1759
- "currencyCode": {
1760
- "type": "text",
1738
+ "nonPersonalizedAds": {
1739
+ "type": "boolean",
1761
1740
  "required": false,
1762
- "default": "USD"
1741
+ "default": false
1763
1742
  },
1764
- "industryCategory": {
1743
+ "sessionId": {
1765
1744
  "type": "text",
1766
1745
  "required": false,
1767
1746
  "default": ""
1768
1747
  },
1769
- "serviceLevel": {
1748
+ "pagePath": {
1770
1749
  "type": "text",
1771
1750
  "required": false,
1772
- "default": "STANDARD"
1751
+ "default": ""
1773
1752
  },
1774
- "status": {
1753
+ "pageTitle": {
1775
1754
  "type": "text",
1776
- "required": false
1755
+ "required": false,
1756
+ "default": ""
1777
1757
  },
1778
- "lastSyncAt": {
1779
- "type": "datetime",
1780
- "required": false
1758
+ "userAgent": {
1759
+ "type": "text",
1760
+ "required": false,
1761
+ "default": ""
1781
1762
  },
1782
- "providerMetadata": {
1763
+ "ipAddress": {
1783
1764
  "type": "text",
1784
1765
  "required": false,
1785
- "default": "{}",
1786
- "_meta": {
1787
- "sensitive": true
1788
- },
1789
- "sensitive": true
1766
+ "default": ""
1790
1767
  }
1791
1768
  },
1792
1769
  "methods": {
@@ -2279,45 +2256,78 @@
2279
2256
  "isStatic": false,
2280
2257
  "isPublic": true
2281
2258
  },
2282
- "isGA4": {
2283
- "name": "isGA4",
2259
+ "getParams": {
2260
+ "name": "getParams",
2284
2261
  "async": false,
2285
2262
  "parameters": [],
2286
- "returnType": "boolean",
2263
+ "returnType": "Record<string, string | number | boolean>",
2287
2264
  "isStatic": false,
2288
2265
  "isPublic": true
2289
2266
  },
2290
- "isPlausible": {
2291
- "name": "isPlausible",
2267
+ "setParams": {
2268
+ "name": "setParams",
2269
+ "async": false,
2270
+ "parameters": [
2271
+ {
2272
+ "name": "params",
2273
+ "type": "Record<string, string | number | boolean>",
2274
+ "optional": false
2275
+ }
2276
+ ],
2277
+ "returnType": "void",
2278
+ "isStatic": false,
2279
+ "isPublic": true
2280
+ },
2281
+ "addParam": {
2282
+ "name": "addParam",
2283
+ "async": false,
2284
+ "parameters": [
2285
+ {
2286
+ "name": "key",
2287
+ "type": "string",
2288
+ "optional": false
2289
+ },
2290
+ {
2291
+ "name": "value",
2292
+ "type": "string | number | boolean",
2293
+ "optional": false
2294
+ }
2295
+ ],
2296
+ "returnType": "void",
2297
+ "isStatic": false,
2298
+ "isPublic": true
2299
+ },
2300
+ "isPageview": {
2301
+ "name": "isPageview",
2292
2302
  "async": false,
2293
2303
  "parameters": [],
2294
2304
  "returnType": "boolean",
2295
2305
  "isStatic": false,
2296
2306
  "isPublic": true
2297
2307
  },
2298
- "isMatomo": {
2299
- "name": "isMatomo",
2308
+ "isConversion": {
2309
+ "name": "isConversion",
2300
2310
  "async": false,
2301
2311
  "parameters": [],
2302
2312
  "returnType": "boolean",
2303
2313
  "isStatic": false,
2304
2314
  "isPublic": true
2305
2315
  },
2306
- "getProviderMetadata": {
2307
- "name": "getProviderMetadata",
2316
+ "markSent": {
2317
+ "name": "markSent",
2308
2318
  "async": false,
2309
2319
  "parameters": [],
2310
- "returnType": "Record<string>",
2320
+ "returnType": "void",
2311
2321
  "isStatic": false,
2312
2322
  "isPublic": true
2313
2323
  },
2314
- "setProviderMetadata": {
2315
- "name": "setProviderMetadata",
2324
+ "markFailed": {
2325
+ "name": "markFailed",
2316
2326
  "async": false,
2317
2327
  "parameters": [
2318
2328
  {
2319
- "name": "metadata",
2320
- "type": "Record<string>",
2329
+ "name": "error",
2330
+ "type": "string",
2321
2331
  "optional": false
2322
2332
  }
2323
2333
  ],
@@ -2325,33 +2335,33 @@
2325
2335
  "isStatic": false,
2326
2336
  "isPublic": true
2327
2337
  },
2328
- "markSynced": {
2329
- "name": "markSynced",
2338
+ "resetForRetry": {
2339
+ "name": "resetForRetry",
2330
2340
  "async": false,
2331
2341
  "parameters": [],
2332
2342
  "returnType": "void",
2333
2343
  "isStatic": false,
2334
2344
  "isPublic": true
2335
2345
  },
2336
- "analyzePerformance": {
2337
- "name": "analyzePerformance",
2338
- "async": true,
2346
+ "shouldRetry": {
2347
+ "name": "shouldRetry",
2348
+ "async": false,
2339
2349
  "parameters": [
2340
2350
  {
2341
- "name": "options",
2342
- "type": "object",
2351
+ "name": "maxRetries",
2352
+ "type": "number",
2343
2353
  "optional": true
2344
2354
  }
2345
2355
  ],
2346
- "returnType": "Promise<object>",
2356
+ "returnType": "boolean",
2347
2357
  "isStatic": false,
2348
2358
  "isPublic": true
2349
2359
  },
2350
- "isPerformingWell": {
2351
- "name": "isPerformingWell",
2352
- "async": true,
2360
+ "toTrackEvent": {
2361
+ "name": "toTrackEvent",
2362
+ "async": false,
2353
2363
  "parameters": [],
2354
- "returnType": "Promise<boolean>",
2364
+ "returnType": "object",
2355
2365
  "isStatic": false,
2356
2366
  "isPublic": true
2357
2367
  }
@@ -2362,16 +2372,14 @@
2362
2372
  "include": [
2363
2373
  "list",
2364
2374
  "get",
2365
- "create",
2366
- "update"
2375
+ "create"
2367
2376
  ]
2368
2377
  },
2369
2378
  "mcp": {
2370
2379
  "include": [
2371
2380
  "list",
2372
2381
  "get",
2373
- "sync",
2374
- "runReport"
2382
+ "track"
2375
2383
  ]
2376
2384
  },
2377
2385
  "cli": true,
@@ -2386,11 +2394,11 @@
2386
2394
  ]
2387
2395
  },
2388
2396
  "extends": "SmrtObject",
2389
- "exportName": "AnalyticsProperty",
2390
- "collectionExportName": "AnalyticsPropertyCollection",
2397
+ "exportName": "AnalyticsEvent",
2398
+ "collectionExportName": "AnalyticsEventCollection",
2391
2399
  "schema": {
2392
- "tableName": "analytics_properties",
2393
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_properties\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"display_name\" TEXT DEFAULT '',\n \"provider\" TEXT,\n \"external_id\" TEXT DEFAULT '',\n \"measurement_id\" TEXT DEFAULT '',\n \"api_secret\" TEXT DEFAULT '',\n \"site_domain\" TEXT DEFAULT '',\n \"time_zone\" TEXT DEFAULT 'America/Los_Angeles',\n \"currency_code\" TEXT DEFAULT 'USD',\n \"industry_category\" TEXT DEFAULT '',\n \"service_level\" TEXT DEFAULT 'STANDARD',\n \"status\" TEXT,\n \"last_sync_at\" TIMESTAMP,\n \"provider_metadata\" TEXT DEFAULT '{}'\n);",
2400
+ "tableName": "analytics_events",
2401
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_events\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"event_name\" TEXT DEFAULT '',\n \"client_id\" TEXT DEFAULT '',\n \"user_id\" TEXT DEFAULT '',\n \"params\" TEXT DEFAULT '{}',\n \"event_timestamp\" TIMESTAMP,\n \"status\" TEXT,\n \"sent_at\" TIMESTAMP,\n \"error_message\" TEXT DEFAULT '',\n \"retry_count\" INTEGER DEFAULT 0,\n \"non_personalized_ads\" BOOLEAN DEFAULT FALSE,\n \"session_id\" TEXT DEFAULT '',\n \"page_path\" TEXT DEFAULT '',\n \"page_title\" TEXT DEFAULT '',\n \"user_agent\" TEXT DEFAULT '',\n \"ip_address\" TEXT DEFAULT ''\n);",
2394
2402
  "columns": {
2395
2403
  "id": {
2396
2404
  "type": "UUID",
@@ -2430,77 +2438,87 @@
2430
2438
  "referenceKind": "tenantId",
2431
2439
  "notNull": false
2432
2440
  },
2433
- "name": {
2441
+ "property_id": {
2442
+ "type": "UUID",
2443
+ "referenceKind": "foreignKey",
2444
+ "notNull": false
2445
+ },
2446
+ "event_name": {
2434
2447
  "type": "TEXT",
2435
2448
  "notNull": false,
2436
2449
  "default": ""
2437
2450
  },
2438
- "display_name": {
2451
+ "client_id": {
2439
2452
  "type": "TEXT",
2440
2453
  "notNull": false,
2441
2454
  "default": ""
2442
2455
  },
2443
- "provider": {
2444
- "type": "TEXT",
2445
- "notNull": false
2446
- },
2447
- "external_id": {
2456
+ "user_id": {
2448
2457
  "type": "TEXT",
2449
2458
  "notNull": false,
2450
2459
  "default": ""
2451
2460
  },
2452
- "measurement_id": {
2461
+ "params": {
2453
2462
  "type": "TEXT",
2454
2463
  "notNull": false,
2455
- "default": ""
2464
+ "default": "{}"
2456
2465
  },
2457
- "api_secret": {
2466
+ "event_timestamp": {
2467
+ "type": "TIMESTAMP",
2468
+ "notNull": false
2469
+ },
2470
+ "status": {
2458
2471
  "type": "TEXT",
2459
- "notNull": false,
2460
- "default": ""
2472
+ "notNull": false
2461
2473
  },
2462
- "site_domain": {
2474
+ "sent_at": {
2475
+ "type": "TIMESTAMP",
2476
+ "notNull": false
2477
+ },
2478
+ "error_message": {
2463
2479
  "type": "TEXT",
2464
2480
  "notNull": false,
2465
2481
  "default": ""
2466
2482
  },
2467
- "time_zone": {
2468
- "type": "TEXT",
2483
+ "retry_count": {
2484
+ "type": "INTEGER",
2469
2485
  "notNull": false,
2470
- "default": "America/Los_Angeles"
2486
+ "default": 0
2471
2487
  },
2472
- "currency_code": {
2473
- "type": "TEXT",
2488
+ "non_personalized_ads": {
2489
+ "type": "BOOLEAN",
2474
2490
  "notNull": false,
2475
- "default": "USD"
2491
+ "default": false
2476
2492
  },
2477
- "industry_category": {
2493
+ "session_id": {
2478
2494
  "type": "TEXT",
2479
2495
  "notNull": false,
2480
2496
  "default": ""
2481
2497
  },
2482
- "service_level": {
2498
+ "page_path": {
2483
2499
  "type": "TEXT",
2484
2500
  "notNull": false,
2485
- "default": "STANDARD"
2501
+ "default": ""
2486
2502
  },
2487
- "status": {
2503
+ "page_title": {
2488
2504
  "type": "TEXT",
2489
- "notNull": false
2505
+ "notNull": false,
2506
+ "default": ""
2490
2507
  },
2491
- "last_sync_at": {
2492
- "type": "TIMESTAMP",
2493
- "notNull": false
2508
+ "user_agent": {
2509
+ "type": "TEXT",
2510
+ "notNull": false,
2511
+ "default": ""
2494
2512
  },
2495
- "provider_metadata": {
2513
+ "ip_address": {
2496
2514
  "type": "TEXT",
2497
2515
  "notNull": false,
2498
- "default": "{}"
2516
+ "default": ""
2499
2517
  }
2500
2518
  },
2501
2519
  "indexes": [
2502
2520
  {
2503
- "name": "analytics_properties_slug_context_meta_type_idx",
2521
+ "name": "analytics_events_slug_context_meta_type_idx",
2504
2522
  "columns": [
2505
2523
  "tenant_id",
2506
2524
  "slug",
@@ -2510,28 +2528,34 @@
2510
2528
  "unique": true
2511
2529
  },
2512
2530
  {
2513
- "name": "analytics_properties_meta_type_idx",
2531
+ "name": "analytics_events_meta_type_idx",
2514
2532
  "columns": [
2515
2533
  "_meta_type"
2516
2534
  ]
2517
2535
  },
2518
2536
  {
2519
- "name": "analytics_properties_tenant_id_created_at_idx",
2537
+ "name": "analytics_events_tenant_id_created_at_idx",
2520
2538
  "columns": [
2521
2539
  "tenant_id",
2522
2540
  "created_at"
2523
2541
  ]
2542
+ },
2543
+ {
2544
+ "name": "analytics_events_property_id_idx",
2545
+ "columns": [
2546
+ "property_id"
2547
+ ]
2524
2548
  }
2525
2549
  ],
2526
- "version": "f38a20b9"
2550
+ "version": "8c2447ff"
2527
2551
  }
2528
2552
  },
2529
- "@happyvertical/smrt-analytics:AnalyticsReport": {
2530
- "name": "analyticsreport",
2531
- "className": "AnalyticsReport",
2532
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsReport",
2533
- "collection": "analyticsreports",
2534
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts",
2553
+ "@happyvertical/smrt-analytics:AnalyticsProperty": {
2554
+ "name": "analyticsproperty",
2555
+ "className": "AnalyticsProperty",
2556
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsProperty",
2557
+ "collection": "analyticsproperties",
2558
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts",
2535
2559
  "packageName": "@happyvertical/smrt-analytics",
2536
2560
  "fields": {
2537
2561
  "created_at": {
@@ -2560,91 +2584,80 @@
2560
2584
  }
2561
2585
  }
2562
2586
  },
2563
- "propertyId": {
2564
- "type": "foreignKey",
2565
- "required": false,
2566
- "related": "AnalyticsProperty"
2567
- },
2568
2587
  "name": {
2569
2588
  "type": "text",
2570
2589
  "required": false,
2571
2590
  "default": ""
2572
2591
  },
2573
- "description": {
2592
+ "displayName": {
2574
2593
  "type": "text",
2575
2594
  "required": false,
2576
2595
  "default": ""
2577
2596
  },
2578
- "dimensions": {
2597
+ "provider": {
2579
2598
  "type": "text",
2580
- "required": false,
2581
- "default": "[]"
2599
+ "required": false
2582
2600
  },
2583
- "metrics": {
2601
+ "externalId": {
2584
2602
  "type": "text",
2585
2603
  "required": false,
2586
- "default": "[]"
2604
+ "default": ""
2587
2605
  },
2588
- "dateRangeStart": {
2606
+ "measurementId": {
2589
2607
  "type": "text",
2590
2608
  "required": false,
2591
- "default": "7daysAgo"
2609
+ "default": ""
2592
2610
  },
2593
- "dateRangeEnd": {
2611
+ "apiSecret": {
2594
2612
  "type": "text",
2595
2613
  "required": false,
2596
- "default": "today"
2614
+ "default": "",
2615
+ "_meta": {
2616
+ "sensitive": true
2617
+ },
2618
+ "sensitive": true
2597
2619
  },
2598
- "dimensionFilter": {
2620
+ "siteDomain": {
2599
2621
  "type": "text",
2600
2622
  "required": false,
2601
2623
  "default": ""
2602
2624
  },
2603
- "metricFilter": {
2625
+ "timeZone": {
2604
2626
  "type": "text",
2605
2627
  "required": false,
2606
- "default": ""
2628
+ "default": "America/Los_Angeles"
2607
2629
  },
2608
- "orderBy": {
2630
+ "currencyCode": {
2609
2631
  "type": "text",
2610
2632
  "required": false,
2611
- "default": "[]"
2633
+ "default": "USD"
2612
2634
  },
2613
- "maxResults": {
2614
- "type": "integer",
2635
+ "industryCategory": {
2636
+ "type": "text",
2615
2637
  "required": false,
2616
- "default": 0
2638
+ "default": ""
2617
2639
  },
2618
- "status": {
2640
+ "serviceLevel": {
2619
2641
  "type": "text",
2620
- "required": false
2642
+ "required": false,
2643
+ "default": "STANDARD"
2621
2644
  },
2622
- "frequency": {
2645
+ "status": {
2623
2646
  "type": "text",
2624
2647
  "required": false
2625
2648
  },
2626
- "lastRunAt": {
2627
- "type": "datetime",
2628
- "required": false
2629
- },
2630
- "nextRunAt": {
2649
+ "lastSyncAt": {
2631
2650
  "type": "datetime",
2632
2651
  "required": false
2633
2652
  },
2634
- "resultData": {
2635
- "type": "text",
2636
- "required": false,
2637
- "default": ""
2638
- },
2639
- "rowCount": {
2640
- "type": "integer",
2641
- "required": false,
2642
- "default": 0
2643
- },
2644
- "lastError": {
2653
+ "providerMetadata": {
2645
2654
  "type": "text",
2646
2655
  "required": false,
2647
- "default": ""
2656
+ "default": "{}",
2657
+ "_meta": {
2658
+ "sensitive": true
2659
+ },
2660
+ "sensitive": true
2648
2661
  }
2649
2662
  },
2650
2663
  "methods": {
@@ -3137,101 +3150,45 @@
3137
3150
  "isStatic": false,
3138
3151
  "isPublic": true
3139
3152
  },
3140
- "getDimensions": {
3141
- "name": "getDimensions",
3142
- "async": false,
3143
- "parameters": [],
3144
- "returnType": "Array<object>",
3145
- "isStatic": false,
3146
- "isPublic": true
3147
- },
3148
- "setDimensions": {
3149
- "name": "setDimensions",
3150
- "async": false,
3151
- "parameters": [
3152
- {
3153
- "name": "dimensions",
3154
- "type": "Array<object>",
3155
- "optional": false
3156
- }
3157
- ],
3158
- "returnType": "void",
3159
- "isStatic": false,
3160
- "isPublic": true
3161
- },
3162
- "getMetrics": {
3163
- "name": "getMetrics",
3153
+ "isGA4": {
3154
+ "name": "isGA4",
3164
3155
  "async": false,
3165
3156
  "parameters": [],
3166
- "returnType": "Array<object>",
3167
- "isStatic": false,
3168
- "isPublic": true
3169
- },
3170
- "setMetrics": {
3171
- "name": "setMetrics",
3172
- "async": false,
3173
- "parameters": [
3174
- {
3175
- "name": "metrics",
3176
- "type": "Array<object>",
3177
- "optional": false
3178
- }
3179
- ],
3180
- "returnType": "void",
3157
+ "returnType": "boolean",
3181
3158
  "isStatic": false,
3182
3159
  "isPublic": true
3183
3160
  },
3184
- "getResultData": {
3185
- "name": "getResultData",
3161
+ "isPlausible": {
3162
+ "name": "isPlausible",
3186
3163
  "async": false,
3187
3164
  "parameters": [],
3188
- "returnType": "Record<string> | null",
3189
- "isStatic": false,
3190
- "isPublic": true
3191
- },
3192
- "setResultData": {
3193
- "name": "setResultData",
3194
- "async": false,
3195
- "parameters": [
3196
- {
3197
- "name": "data",
3198
- "type": "Record<string>",
3199
- "optional": false
3200
- }
3201
- ],
3202
- "returnType": "void",
3165
+ "returnType": "boolean",
3203
3166
  "isStatic": false,
3204
3167
  "isPublic": true
3205
3168
  },
3206
- "markRunning": {
3207
- "name": "markRunning",
3169
+ "isMatomo": {
3170
+ "name": "isMatomo",
3208
3171
  "async": false,
3209
3172
  "parameters": [],
3210
- "returnType": "void",
3173
+ "returnType": "boolean",
3211
3174
  "isStatic": false,
3212
3175
  "isPublic": true
3213
3176
  },
3214
- "markCompleted": {
3215
- "name": "markCompleted",
3216
- "async": false,
3217
- "parameters": [
3218
- {
3219
- "name": "rowCount",
3220
- "type": "number",
3221
- "optional": false
3222
- }
3223
- ],
3224
- "returnType": "void",
3177
+ "getProviderMetadata": {
3178
+ "name": "getProviderMetadata",
3179
+ "async": false,
3180
+ "parameters": [],
3181
+ "returnType": "Record<string>",
3225
3182
  "isStatic": false,
3226
3183
  "isPublic": true
3227
3184
  },
3228
- "markFailed": {
3229
- "name": "markFailed",
3185
+ "setProviderMetadata": {
3186
+ "name": "setProviderMetadata",
3230
3187
  "async": false,
3231
3188
  "parameters": [
3232
3189
  {
3233
- "name": "error",
3234
- "type": "string",
3190
+ "name": "metadata",
3191
+ "type": "Record<string>",
3235
3192
  "optional": false
3236
3193
  }
3237
3194
  ],
@@ -3239,29 +3196,21 @@
3239
3196
  "isStatic": false,
3240
3197
  "isPublic": true
3241
3198
  },
3242
- "calculateNextRun": {
3243
- "name": "calculateNextRun",
3199
+ "markSynced": {
3200
+ "name": "markSynced",
3244
3201
  "async": false,
3245
3202
  "parameters": [],
3246
3203
  "returnType": "void",
3247
3204
  "isStatic": false,
3248
3205
  "isPublic": true
3249
3206
  },
3250
- "isDue": {
3251
- "name": "isDue",
3252
- "async": false,
3253
- "parameters": [],
3254
- "returnType": "boolean",
3255
- "isStatic": false,
3256
- "isPublic": true
3257
- },
3258
- "analyzeResults": {
3259
- "name": "analyzeResults",
3207
+ "analyzePerformance": {
3208
+ "name": "analyzePerformance",
3260
3209
  "async": true,
3261
3210
  "parameters": [
3262
3211
  {
3263
- "name": "_options",
3264
- "type": "Record<string>",
3212
+ "name": "options",
3213
+ "type": "object",
3265
3214
  "optional": true
3266
3215
  }
3267
3216
  ],
@@ -3269,8 +3218,8 @@
3269
3218
  "isStatic": false,
3270
3219
  "isPublic": true
3271
3220
  },
3272
- "hasPositiveTrends": {
3273
- "name": "hasPositiveTrends",
3221
+ "isPerformingWell": {
3222
+ "name": "isPerformingWell",
3274
3223
  "async": true,
3275
3224
  "parameters": [],
3276
3225
  "returnType": "Promise<boolean>",
@@ -3285,16 +3234,15 @@
3285
3234
  "list",
3286
3235
  "get",
3287
3236
  "create",
3288
- "update",
3289
- "run"
3237
+ "update"
3290
3238
  ]
3291
3239
  },
3292
3240
  "mcp": {
3293
3241
  "include": [
3294
3242
  "list",
3295
3243
  "get",
3296
- "run",
3297
- "analyze"
3244
+ "sync",
3245
+ "runReport"
3298
3246
  ]
3299
3247
  },
3300
3248
  "cli": true,
@@ -3309,11 +3257,11 @@
3309
3257
  ]
3310
3258
  },
3311
3259
  "extends": "SmrtObject",
3312
- "exportName": "AnalyticsReport",
3313
- "collectionExportName": "AnalyticsReportCollection",
3260
+ "exportName": "AnalyticsProperty",
3261
+ "collectionExportName": "AnalyticsPropertyCollection",
3314
3262
  "schema": {
3315
- "tableName": "analytics_reports",
3316
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_reports\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"dimensions\" TEXT DEFAULT '[]',\n \"metrics\" TEXT DEFAULT '[]',\n \"date_range_start\" TEXT DEFAULT '7daysAgo',\n \"date_range_end\" TEXT DEFAULT 'today',\n \"dimension_filter\" TEXT DEFAULT '',\n \"metric_filter\" TEXT DEFAULT '',\n \"order_by\" TEXT DEFAULT '[]',\n \"max_results\" INTEGER DEFAULT 0,\n \"status\" TEXT,\n \"frequency\" TEXT,\n \"last_run_at\" TIMESTAMP,\n \"next_run_at\" TIMESTAMP,\n \"result_data\" TEXT DEFAULT '',\n \"row_count\" INTEGER DEFAULT 0,\n \"last_error\" TEXT DEFAULT ''\n);",
3263
+ "tableName": "analytics_properties",
3264
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_properties\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"display_name\" TEXT DEFAULT '',\n \"provider\" TEXT,\n \"external_id\" TEXT DEFAULT '',\n \"measurement_id\" TEXT DEFAULT '',\n \"api_secret\" TEXT DEFAULT '',\n \"site_domain\" TEXT DEFAULT '',\n \"time_zone\" TEXT DEFAULT 'America/Los_Angeles',\n \"currency_code\" TEXT DEFAULT 'USD',\n \"industry_category\" TEXT DEFAULT '',\n \"service_level\" TEXT DEFAULT 'STANDARD',\n \"status\" TEXT,\n \"last_sync_at\" TIMESTAMP,\n \"provider_metadata\" TEXT DEFAULT '{}'\n);",
3317
3265
  "columns": {
3318
3266
  "id": {
3319
3267
  "type": "UUID",
@@ -3353,96 +3301,77 @@
3353
3301
  "referenceKind": "tenantId",
3354
3302
  "notNull": false
3355
3303
  },
3356
- "property_id": {
3357
- "type": "UUID",
3358
- "referenceKind": "foreignKey",
3359
- "notNull": false
3360
- },
3361
3304
  "name": {
3362
3305
  "type": "TEXT",
3363
3306
  "notNull": false,
3364
3307
  "default": ""
3365
3308
  },
3366
- "description": {
3309
+ "display_name": {
3367
3310
  "type": "TEXT",
3368
3311
  "notNull": false,
3369
3312
  "default": ""
3370
3313
  },
3371
- "dimensions": {
3314
+ "provider": {
3372
3315
  "type": "TEXT",
3373
- "notNull": false,
3374
- "default": "[]"
3316
+ "notNull": false
3375
3317
  },
3376
- "metrics": {
3318
+ "external_id": {
3377
3319
  "type": "TEXT",
3378
3320
  "notNull": false,
3379
- "default": "[]"
3321
+ "default": ""
3380
3322
  },
3381
- "date_range_start": {
3323
+ "measurement_id": {
3382
3324
  "type": "TEXT",
3383
3325
  "notNull": false,
3384
- "default": "7daysAgo"
3326
+ "default": ""
3385
3327
  },
3386
- "date_range_end": {
3328
+ "api_secret": {
3387
3329
  "type": "TEXT",
3388
3330
  "notNull": false,
3389
- "default": "today"
3331
+ "default": ""
3390
3332
  },
3391
- "dimension_filter": {
3333
+ "site_domain": {
3392
3334
  "type": "TEXT",
3393
3335
  "notNull": false,
3394
3336
  "default": ""
3395
3337
  },
3396
- "metric_filter": {
3338
+ "time_zone": {
3397
3339
  "type": "TEXT",
3398
3340
  "notNull": false,
3399
- "default": ""
3341
+ "default": "America/Los_Angeles"
3400
3342
  },
3401
- "order_by": {
3343
+ "currency_code": {
3402
3344
  "type": "TEXT",
3403
3345
  "notNull": false,
3404
- "default": "[]"
3346
+ "default": "USD"
3405
3347
  },
3406
- "max_results": {
3407
- "type": "INTEGER",
3348
+ "industry_category": {
3349
+ "type": "TEXT",
3408
3350
  "notNull": false,
3409
- "default": 0
3351
+ "default": ""
3410
3352
  },
3411
- "status": {
3353
+ "service_level": {
3412
3354
  "type": "TEXT",
3413
- "notNull": false
3355
+ "notNull": false,
3356
+ "default": "STANDARD"
3414
3357
  },
3415
- "frequency": {
3358
+ "status": {
3416
3359
  "type": "TEXT",
3417
3360
  "notNull": false
3418
3361
  },
3419
- "last_run_at": {
3420
- "type": "TIMESTAMP",
3421
- "notNull": false
3422
- },
3423
- "next_run_at": {
3362
+ "last_sync_at": {
3424
3363
  "type": "TIMESTAMP",
3425
3364
  "notNull": false
3426
3365
  },
3427
- "result_data": {
3428
- "type": "TEXT",
3429
- "notNull": false,
3430
- "default": ""
3431
- },
3432
- "row_count": {
3433
- "type": "INTEGER",
3434
- "notNull": false,
3435
- "default": 0
3436
- },
3437
- "last_error": {
3366
+ "provider_metadata": {
3438
3367
  "type": "TEXT",
3439
3368
  "notNull": false,
3440
- "default": ""
3369
+ "default": "{}"
3441
3370
  }
3442
3371
  },
3443
3372
  "indexes": [
3444
3373
  {
3445
- "name": "analytics_reports_slug_context_meta_type_idx",
3374
+ "name": "analytics_properties_slug_context_meta_type_idx",
3446
3375
  "columns": [
3447
3376
  "tenant_id",
3448
3377
  "slug",
@@ -3452,853 +3381,810 @@
3452
3381
  "unique": true
3453
3382
  },
3454
3383
  {
3455
- "name": "analytics_reports_meta_type_idx",
3384
+ "name": "analytics_properties_meta_type_idx",
3456
3385
  "columns": [
3457
3386
  "_meta_type"
3458
3387
  ]
3459
3388
  },
3460
3389
  {
3461
- "name": "analytics_reports_tenant_id_created_at_idx",
3390
+ "name": "analytics_properties_tenant_id_created_at_idx",
3462
3391
  "columns": [
3463
3392
  "tenant_id",
3464
3393
  "created_at"
3465
3394
  ]
3466
- },
3467
- {
3468
- "name": "analytics_reports_property_id_idx",
3469
- "columns": [
3470
- "property_id"
3471
- ]
3472
3395
  }
3473
3396
  ],
3474
- "version": "cecde8c6"
3397
+ "version": "f38a20b9"
3475
3398
  }
3476
3399
  },
3477
- "@happyvertical/smrt-analytics:AnalyticsDataStreamCollection": {
3478
- "name": "analyticsdatastreamcollection",
3479
- "className": "AnalyticsDataStreamCollection",
3480
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsDataStreamCollection",
3481
- "collection": "analyticsdatastreams",
3482
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts",
3400
+ "@happyvertical/smrt-analytics:AnalyticsReport": {
3401
+ "name": "analyticsreport",
3402
+ "className": "AnalyticsReport",
3403
+ "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsReport",
3404
+ "collection": "analyticsreports",
3405
+ "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts",
3483
3406
  "packageName": "@happyvertical/smrt-analytics",
3484
- "fields": {},
3407
+ "fields": {
3408
+ "created_at": {
3409
+ "type": "datetime",
3410
+ "required": false
3411
+ },
3412
+ "updated_at": {
3413
+ "type": "datetime",
3414
+ "required": false
3415
+ },
3416
+ "tenantId": {
3417
+ "type": "text",
3418
+ "required": false,
3419
+ "_meta": {
3420
+ "sqlType": "UUID",
3421
+ "nullable": true,
3422
+ "__tenancy": {
3423
+ "isTenantIdField": true,
3424
+ "autoFilter": true,
3425
+ "required": false,
3426
+ "autoPopulate": true,
3427
+ "nullable": true,
3428
+ "mode": "optional",
3429
+ "field": "tenantId",
3430
+ "allowSuperAdminBypass": false
3431
+ }
3432
+ }
3433
+ },
3434
+ "propertyId": {
3435
+ "type": "foreignKey",
3436
+ "required": false,
3437
+ "related": "AnalyticsProperty"
3438
+ },
3439
+ "name": {
3440
+ "type": "text",
3441
+ "required": false,
3442
+ "default": ""
3443
+ },
3444
+ "description": {
3445
+ "type": "text",
3446
+ "required": false,
3447
+ "default": ""
3448
+ },
3449
+ "dimensions": {
3450
+ "type": "text",
3451
+ "required": false,
3452
+ "default": "[]"
3453
+ },
3454
+ "metrics": {
3455
+ "type": "text",
3456
+ "required": false,
3457
+ "default": "[]"
3458
+ },
3459
+ "dateRangeStart": {
3460
+ "type": "text",
3461
+ "required": false,
3462
+ "default": "7daysAgo"
3463
+ },
3464
+ "dateRangeEnd": {
3465
+ "type": "text",
3466
+ "required": false,
3467
+ "default": "today"
3468
+ },
3469
+ "dimensionFilter": {
3470
+ "type": "text",
3471
+ "required": false,
3472
+ "default": ""
3473
+ },
3474
+ "metricFilter": {
3475
+ "type": "text",
3476
+ "required": false,
3477
+ "default": ""
3478
+ },
3479
+ "orderBy": {
3480
+ "type": "text",
3481
+ "required": false,
3482
+ "default": "[]"
3483
+ },
3484
+ "maxResults": {
3485
+ "type": "integer",
3486
+ "required": false,
3487
+ "default": 0
3488
+ },
3489
+ "status": {
3490
+ "type": "text",
3491
+ "required": false
3492
+ },
3493
+ "frequency": {
3494
+ "type": "text",
3495
+ "required": false
3496
+ },
3497
+ "lastRunAt": {
3498
+ "type": "datetime",
3499
+ "required": false
3500
+ },
3501
+ "nextRunAt": {
3502
+ "type": "datetime",
3503
+ "required": false
3504
+ },
3505
+ "resultData": {
3506
+ "type": "text",
3507
+ "required": false,
3508
+ "default": ""
3509
+ },
3510
+ "rowCount": {
3511
+ "type": "integer",
3512
+ "required": false,
3513
+ "default": 0
3514
+ },
3515
+ "lastError": {
3516
+ "type": "text",
3517
+ "required": false,
3518
+ "default": ""
3519
+ }
3520
+ },
3485
3521
  "methods": {
3486
- "findByProperty": {
3487
- "name": "findByProperty",
3488
- "async": true,
3489
- "parameters": [
3490
- {
3491
- "name": "propertyId",
3492
- "type": "string",
3493
- "optional": false
3494
- }
3495
- ],
3496
- "returnType": "Promise<AnalyticsDataStream[]>",
3522
+ "getAiUsageSnapshot": {
3523
+ "name": "getAiUsageSnapshot",
3524
+ "async": false,
3525
+ "parameters": [],
3526
+ "returnType": "AiUsageSnapshot | undefined",
3497
3527
  "isStatic": false,
3498
3528
  "isPublic": true
3499
3529
  },
3500
- "findByExternalId": {
3501
- "name": "findByExternalId",
3502
- "async": true,
3503
- "parameters": [
3504
- {
3505
- "name": "externalId",
3506
- "type": "string",
3507
- "optional": false
3508
- }
3509
- ],
3510
- "returnType": "Promise<AnalyticsDataStream | null>",
3530
+ "resetAiUsage": {
3531
+ "name": "resetAiUsage",
3532
+ "async": false,
3533
+ "parameters": [],
3534
+ "returnType": "void",
3511
3535
  "isStatic": false,
3512
3536
  "isPublic": true
3513
3537
  },
3514
- "findByMeasurementId": {
3515
- "name": "findByMeasurementId",
3538
+ "listAiUsage": {
3539
+ "name": "listAiUsage",
3516
3540
  "async": true,
3517
3541
  "parameters": [
3518
3542
  {
3519
- "name": "measurementId",
3520
- "type": "string",
3521
- "optional": false
3543
+ "name": "options",
3544
+ "type": "AiUsageListOptions",
3545
+ "optional": true
3522
3546
  }
3523
3547
  ],
3524
- "returnType": "Promise<AnalyticsDataStream | null>",
3548
+ "returnType": "Promise<SmrtAiUsageRecord[]>",
3525
3549
  "isStatic": false,
3526
3550
  "isPublic": true
3527
3551
  },
3528
- "findByType": {
3529
- "name": "findByType",
3552
+ "summarizeAiUsage": {
3553
+ "name": "summarizeAiUsage",
3530
3554
  "async": true,
3531
3555
  "parameters": [
3532
3556
  {
3533
- "name": "streamType",
3534
- "type": "DataStreamType",
3535
- "optional": false
3557
+ "name": "options",
3558
+ "type": "AiUsageSummaryOptions",
3559
+ "optional": true
3536
3560
  }
3537
3561
  ],
3538
- "returnType": "Promise<AnalyticsDataStream[]>",
3562
+ "returnType": "Promise<Record<string, AiUsageStats>>",
3539
3563
  "isStatic": false,
3540
3564
  "isPublic": true
3541
3565
  },
3542
- "findWebStreams": {
3543
- "name": "findWebStreams",
3544
- "async": true,
3566
+ "destroy": {
3567
+ "name": "destroy",
3568
+ "async": false,
3545
3569
  "parameters": [],
3546
- "returnType": "Promise<AnalyticsDataStream[]>",
3570
+ "returnType": "void",
3547
3571
  "isStatic": false,
3548
3572
  "isPublic": true
3549
3573
  },
3550
- "findIOSStreams": {
3551
- "name": "findIOSStreams",
3552
- "async": true,
3574
+ "markAsPersisted": {
3575
+ "name": "markAsPersisted",
3576
+ "async": false,
3553
3577
  "parameters": [],
3554
- "returnType": "Promise<AnalyticsDataStream[]>",
3578
+ "returnType": "void",
3555
3579
  "isStatic": false,
3556
3580
  "isPublic": true
3557
3581
  },
3558
- "findAndroidStreams": {
3559
- "name": "findAndroidStreams",
3560
- "async": true,
3582
+ "requireInsertOnSave": {
3583
+ "name": "requireInsertOnSave",
3584
+ "async": false,
3561
3585
  "parameters": [],
3562
- "returnType": "Promise<AnalyticsDataStream[]>",
3586
+ "returnType": "void",
3563
3587
  "isStatic": false,
3564
3588
  "isPublic": true
3565
3589
  },
3566
- "findMobileStreams": {
3567
- "name": "findMobileStreams",
3590
+ "initialize": {
3591
+ "name": "initialize",
3568
3592
  "async": true,
3569
3593
  "parameters": [],
3570
- "returnType": "Promise<AnalyticsDataStream[]>",
3594
+ "returnType": "Promise",
3571
3595
  "isStatic": false,
3572
3596
  "isPublic": true
3573
3597
  },
3574
- "findByStatus": {
3575
- "name": "findByStatus",
3598
+ "loadDataFromDb": {
3599
+ "name": "loadDataFromDb",
3576
3600
  "async": true,
3577
3601
  "parameters": [
3578
3602
  {
3579
- "name": "status",
3580
- "type": "DataStreamStatus",
3603
+ "name": "data",
3604
+ "type": "Record<string>",
3581
3605
  "optional": false
3582
3606
  }
3583
3607
  ],
3584
- "returnType": "Promise<AnalyticsDataStream[]>",
3608
+ "returnType": "any",
3585
3609
  "isStatic": false,
3586
3610
  "isPublic": true
3587
3611
  },
3588
- "findActive": {
3589
- "name": "findActive",
3612
+ "getFields": {
3613
+ "name": "getFields",
3590
3614
  "async": true,
3591
3615
  "parameters": [],
3592
- "returnType": "Promise<AnalyticsDataStream[]>",
3593
- "isStatic": false,
3594
- "isPublic": true
3595
- },
3596
- "findActiveByProperty": {
3597
- "name": "findActiveByProperty",
3598
- "async": true,
3599
- "parameters": [
3600
- {
3601
- "name": "propertyId",
3602
- "type": "string",
3603
- "optional": false
3604
- }
3605
- ],
3606
- "returnType": "Promise<AnalyticsDataStream[]>",
3607
- "isStatic": false,
3608
- "isPublic": true
3609
- }
3610
- },
3611
- "decoratorConfig": {},
3612
- "extends": "SmrtCollection",
3613
- "extendsTypeArg": "AnalyticsDataStream",
3614
- "exportName": "AnalyticsDataStreamCollection",
3615
- "collectionExportName": "AnalyticsDataStreamCollectionCollection",
3616
- "schema": {
3617
- "tableName": "analytics_data_stream_collections",
3618
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_data_stream_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
3619
- "columns": {
3620
- "id": {
3621
- "type": "UUID",
3622
- "primaryKey": true,
3623
- "referenceKind": "id",
3624
- "notNull": true
3625
- },
3626
- "slug": {
3627
- "type": "TEXT",
3628
- "notNull": true
3629
- },
3630
- "context": {
3631
- "type": "TEXT",
3632
- "notNull": true,
3633
- "default": ""
3634
- },
3635
- "created_at": {
3636
- "type": "TIMESTAMP",
3637
- "notNull": true,
3638
- "default": "current_timestamp"
3639
- },
3640
- "updated_at": {
3641
- "type": "TIMESTAMP",
3642
- "notNull": true,
3643
- "default": "current_timestamp"
3644
- }
3645
- },
3646
- "indexes": [
3647
- {
3648
- "name": "analytics_data_stream_collections_slug_context_idx",
3649
- "columns": [
3650
- "slug",
3651
- "context"
3652
- ],
3653
- "unique": true
3654
- },
3655
- {
3656
- "name": "analytics_data_stream_collections_created_at_idx",
3657
- "columns": [
3658
- "created_at"
3659
- ]
3660
- }
3661
- ],
3662
- "version": "12ef5a9a"
3663
- }
3664
- },
3665
- "@happyvertical/smrt-analytics:AnalyticsEventCollection": {
3666
- "name": "analyticseventcollection",
3667
- "className": "AnalyticsEventCollection",
3668
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsEventCollection",
3669
- "collection": "analyticsevents",
3670
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts",
3671
- "packageName": "@happyvertical/smrt-analytics",
3672
- "fields": {},
3673
- "methods": {
3674
- "findByProperty": {
3675
- "name": "findByProperty",
3676
- "async": true,
3677
- "parameters": [
3678
- {
3679
- "name": "propertyId",
3680
- "type": "string",
3681
- "optional": false
3682
- }
3683
- ],
3684
- "returnType": "Promise<AnalyticsEvent[]>",
3685
- "isStatic": false,
3686
- "isPublic": true
3687
- },
3688
- "findByEventName": {
3689
- "name": "findByEventName",
3690
- "async": true,
3691
- "parameters": [
3692
- {
3693
- "name": "eventName",
3694
- "type": "string",
3695
- "optional": false
3696
- }
3697
- ],
3698
- "returnType": "Promise<AnalyticsEvent[]>",
3616
+ "returnType": "Promise<any>",
3699
3617
  "isStatic": false,
3700
3618
  "isPublic": true
3701
3619
  },
3702
- "findByClientId": {
3703
- "name": "findByClientId",
3704
- "async": true,
3705
- "parameters": [
3706
- {
3707
- "name": "clientId",
3708
- "type": "string",
3709
- "optional": false
3710
- }
3711
- ],
3712
- "returnType": "Promise<AnalyticsEvent[]>",
3620
+ "toJSON": {
3621
+ "name": "toJSON",
3622
+ "async": false,
3623
+ "parameters": [],
3624
+ "returnType": "any",
3713
3625
  "isStatic": false,
3714
3626
  "isPublic": true
3715
3627
  },
3716
- "findByUserId": {
3717
- "name": "findByUserId",
3718
- "async": true,
3719
- "parameters": [
3720
- {
3721
- "name": "userId",
3722
- "type": "string",
3723
- "optional": false
3724
- }
3725
- ],
3726
- "returnType": "Promise<AnalyticsEvent[]>",
3628
+ "toPlainObject": {
3629
+ "name": "toPlainObject",
3630
+ "async": false,
3631
+ "parameters": [],
3632
+ "returnType": "Record<string>",
3727
3633
  "isStatic": false,
3728
3634
  "isPublic": true
3729
3635
  },
3730
- "findByStatus": {
3731
- "name": "findByStatus",
3732
- "async": true,
3636
+ "toPublicJSON": {
3637
+ "name": "toPublicJSON",
3638
+ "async": false,
3733
3639
  "parameters": [
3734
3640
  {
3735
- "name": "status",
3736
- "type": "TrackingEventStatus",
3737
- "optional": false
3641
+ "name": "options",
3642
+ "type": "PublicJsonOptions",
3643
+ "optional": true
3738
3644
  }
3739
3645
  ],
3740
- "returnType": "Promise<AnalyticsEvent[]>",
3646
+ "returnType": "Record<string>",
3741
3647
  "isStatic": false,
3742
3648
  "isPublic": true
3743
3649
  },
3744
- "findPending": {
3745
- "name": "findPending",
3650
+ "getId": {
3651
+ "name": "getId",
3746
3652
  "async": true,
3747
3653
  "parameters": [],
3748
- "returnType": "Promise<AnalyticsEvent[]>",
3654
+ "returnType": "any",
3749
3655
  "isStatic": false,
3750
3656
  "isPublic": true
3751
3657
  },
3752
- "findSent": {
3753
- "name": "findSent",
3658
+ "getSlug": {
3659
+ "name": "getSlug",
3754
3660
  "async": true,
3755
3661
  "parameters": [],
3756
- "returnType": "Promise<AnalyticsEvent[]>",
3662
+ "returnType": "any",
3757
3663
  "isStatic": false,
3758
3664
  "isPublic": true
3759
3665
  },
3760
- "findFailed": {
3761
- "name": "findFailed",
3666
+ "getSavedId": {
3667
+ "name": "getSavedId",
3762
3668
  "async": true,
3763
3669
  "parameters": [],
3764
- "returnType": "Promise<AnalyticsEvent[]>",
3670
+ "returnType": "any",
3765
3671
  "isStatic": false,
3766
3672
  "isPublic": true
3767
3673
  },
3768
- "findForRetry": {
3769
- "name": "findForRetry",
3674
+ "isSaved": {
3675
+ "name": "isSaved",
3770
3676
  "async": true,
3771
- "parameters": [
3772
- {
3773
- "name": "maxRetries",
3774
- "type": "number",
3775
- "optional": true
3776
- }
3777
- ],
3778
- "returnType": "Promise<AnalyticsEvent[]>",
3677
+ "parameters": [],
3678
+ "returnType": "any",
3779
3679
  "isStatic": false,
3780
3680
  "isPublic": true
3781
3681
  },
3782
- "findPendingByProperty": {
3783
- "name": "findPendingByProperty",
3682
+ "save": {
3683
+ "name": "save",
3784
3684
  "async": true,
3685
+ "parameters": [],
3686
+ "returnType": "any",
3687
+ "isStatic": false,
3688
+ "isPublic": true
3689
+ },
3690
+ "classifyConstraintError": {
3691
+ "name": "classifyConstraintError",
3692
+ "async": false,
3785
3693
  "parameters": [
3786
3694
  {
3787
- "name": "propertyId",
3695
+ "name": "message",
3788
3696
  "type": "string",
3789
3697
  "optional": false
3790
3698
  }
3791
3699
  ],
3792
- "returnType": "Promise<AnalyticsEvent[]>",
3700
+ "returnType": "'unique' | 'not_null' | null",
3701
+ "isStatic": true,
3702
+ "isPublic": true
3703
+ },
3704
+ "loadFromId": {
3705
+ "name": "loadFromId",
3706
+ "async": true,
3707
+ "parameters": [],
3708
+ "returnType": "any",
3793
3709
  "isStatic": false,
3794
3710
  "isPublic": true
3795
3711
  },
3796
- "findByDateRange": {
3797
- "name": "findByDateRange",
3712
+ "loadFromSlug": {
3713
+ "name": "loadFromSlug",
3714
+ "async": true,
3715
+ "parameters": [],
3716
+ "returnType": "any",
3717
+ "isStatic": false,
3718
+ "isPublic": true
3719
+ },
3720
+ "is": {
3721
+ "name": "is",
3798
3722
  "async": true,
3799
3723
  "parameters": [
3800
3724
  {
3801
- "name": "startDate",
3802
- "type": "Date",
3725
+ "name": "criteria",
3726
+ "type": "string",
3803
3727
  "optional": false
3804
3728
  },
3805
3729
  {
3806
- "name": "endDate",
3807
- "type": "Date",
3808
- "optional": false
3730
+ "name": "options",
3731
+ "type": "AiOperationOptions",
3732
+ "optional": true
3809
3733
  }
3810
3734
  ],
3811
- "returnType": "Promise<AnalyticsEvent[]>",
3735
+ "returnType": "any",
3812
3736
  "isStatic": false,
3813
3737
  "isPublic": true
3814
3738
  },
3815
- "findConversions": {
3816
- "name": "findConversions",
3739
+ "do": {
3740
+ "name": "do",
3817
3741
  "async": true,
3818
3742
  "parameters": [
3819
3743
  {
3820
- "name": "propertyId",
3744
+ "name": "instructions",
3821
3745
  "type": "string",
3746
+ "optional": false
3747
+ },
3748
+ {
3749
+ "name": "options",
3750
+ "type": "AiOperationOptions",
3822
3751
  "optional": true
3823
3752
  }
3824
3753
  ],
3825
- "returnType": "Promise<AnalyticsEvent[]>",
3754
+ "returnType": "any",
3826
3755
  "isStatic": false,
3827
3756
  "isPublic": true
3828
3757
  },
3829
- "findPageviews": {
3830
- "name": "findPageviews",
3758
+ "describe": {
3759
+ "name": "describe",
3831
3760
  "async": true,
3832
3761
  "parameters": [
3833
3762
  {
3834
- "name": "propertyId",
3835
- "type": "string",
3763
+ "name": "options",
3764
+ "type": "AiOperationOptions",
3836
3765
  "optional": true
3837
3766
  }
3838
3767
  ],
3839
- "returnType": "Promise<AnalyticsEvent[]>",
3768
+ "returnType": "any",
3840
3769
  "isStatic": false,
3841
3770
  "isPublic": true
3842
3771
  },
3843
- "countByEventName": {
3844
- "name": "countByEventName",
3772
+ "delete": {
3773
+ "name": "delete",
3845
3774
  "async": true,
3846
- "parameters": [
3847
- {
3848
- "name": "propertyId",
3849
- "type": "string",
3850
- "optional": false
3851
- }
3852
- ],
3853
- "returnType": "Promise<Map<string, number>>",
3775
+ "parameters": [],
3776
+ "returnType": "Promise<void>",
3854
3777
  "isStatic": false,
3855
3778
  "isPublic": true
3856
3779
  },
3857
- "getPropertyStats": {
3858
- "name": "getPropertyStats",
3859
- "async": true,
3780
+ "isRelatedLoaded": {
3781
+ "name": "isRelatedLoaded",
3782
+ "async": false,
3860
3783
  "parameters": [
3861
3784
  {
3862
- "name": "propertyId",
3785
+ "name": "fieldName",
3863
3786
  "type": "string",
3864
3787
  "optional": false
3865
3788
  }
3866
3789
  ],
3867
- "returnType": "Promise<object>",
3790
+ "returnType": "boolean",
3868
3791
  "isStatic": false,
3869
3792
  "isPublic": true
3870
3793
  },
3871
- "getPropertyStatsWithTrend": {
3872
- "name": "getPropertyStatsWithTrend",
3873
- "async": true,
3794
+ "_setLoadedRelationship": {
3795
+ "name": "_setLoadedRelationship",
3796
+ "async": false,
3874
3797
  "parameters": [
3875
3798
  {
3876
- "name": "propertyId",
3799
+ "name": "fieldName",
3877
3800
  "type": "string",
3878
3801
  "optional": false
3879
3802
  },
3880
3803
  {
3881
- "name": "now",
3882
- "type": "Date",
3883
- "optional": true
3884
- },
3885
- {
3886
- "name": "timeZone",
3887
- "type": "string",
3888
- "optional": true,
3889
- "default": "UTC"
3804
+ "name": "value",
3805
+ "type": "any",
3806
+ "optional": false
3890
3807
  }
3891
3808
  ],
3892
- "returnType": "Promise<PropertyStatsWithTrend>",
3809
+ "returnType": "void",
3893
3810
  "isStatic": false,
3894
3811
  "isPublic": true
3895
3812
  },
3896
- "getBatchPropertyStats": {
3897
- "name": "getBatchPropertyStats",
3813
+ "loadRelated": {
3814
+ "name": "loadRelated",
3898
3815
  "async": true,
3899
3816
  "parameters": [
3900
3817
  {
3901
- "name": "propertyIds",
3902
- "type": "string[]",
3818
+ "name": "fieldName",
3819
+ "type": "string",
3903
3820
  "optional": false
3904
3821
  },
3905
3822
  {
3906
- "name": "now",
3907
- "type": "Date",
3823
+ "name": "opts",
3824
+ "type": "LoadRelatedOptions",
3908
3825
  "optional": true
3909
- },
3910
- {
3911
- "name": "timeZone",
3912
- "type": "string",
3913
- "optional": true,
3914
- "default": "UTC"
3915
3826
  }
3916
3827
  ],
3917
- "returnType": "Promise<Map<string, PropertyStatsWithTrend>>",
3828
+ "returnType": "Promise<any>",
3918
3829
  "isStatic": false,
3919
3830
  "isPublic": true
3920
- }
3921
- },
3922
- "decoratorConfig": {},
3923
- "extends": "SmrtCollection",
3924
- "extendsTypeArg": "AnalyticsEvent",
3925
- "exportName": "AnalyticsEventCollection",
3926
- "collectionExportName": "AnalyticsEventCollectionCollection",
3927
- "schema": {
3928
- "tableName": "analytics_event_collections",
3929
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_event_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
3930
- "columns": {
3931
- "id": {
3932
- "type": "UUID",
3933
- "primaryKey": true,
3934
- "referenceKind": "id",
3935
- "notNull": true
3936
- },
3937
- "slug": {
3938
- "type": "TEXT",
3939
- "notNull": true
3940
- },
3941
- "context": {
3942
- "type": "TEXT",
3943
- "notNull": true,
3944
- "default": ""
3945
- },
3946
- "created_at": {
3947
- "type": "TIMESTAMP",
3948
- "notNull": true,
3949
- "default": "current_timestamp"
3950
- },
3951
- "updated_at": {
3952
- "type": "TIMESTAMP",
3953
- "notNull": true,
3954
- "default": "current_timestamp"
3955
- }
3956
3831
  },
3957
- "indexes": [
3958
- {
3959
- "name": "analytics_event_collections_slug_context_idx",
3960
- "columns": [
3961
- "slug",
3962
- "context"
3963
- ],
3964
- "unique": true
3965
- },
3966
- {
3967
- "name": "analytics_event_collections_created_at_idx",
3968
- "columns": [
3969
- "created_at"
3970
- ]
3971
- }
3972
- ],
3973
- "version": "13d03b2a"
3974
- }
3975
- },
3976
- "@happyvertical/smrt-analytics:AnalyticsPropertyCollection": {
3977
- "name": "analyticspropertycollection",
3978
- "className": "AnalyticsPropertyCollection",
3979
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsPropertyCollection",
3980
- "collection": "analyticsproperties",
3981
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts",
3982
- "packageName": "@happyvertical/smrt-analytics",
3983
- "fields": {},
3984
- "methods": {
3985
- "findByExternalId": {
3986
- "name": "findByExternalId",
3832
+ "loadRelatedMany": {
3833
+ "name": "loadRelatedMany",
3987
3834
  "async": true,
3988
3835
  "parameters": [
3989
3836
  {
3990
- "name": "externalId",
3837
+ "name": "fieldName",
3991
3838
  "type": "string",
3992
3839
  "optional": false
3993
- }
3994
- ],
3995
- "returnType": "Promise<AnalyticsProperty | null>",
3996
- "isStatic": false,
3997
- "isPublic": true
3998
- },
3999
- "findByMeasurementId": {
4000
- "name": "findByMeasurementId",
4001
- "async": true,
4002
- "parameters": [
3840
+ },
4003
3841
  {
4004
- "name": "measurementId",
4005
- "type": "string",
4006
- "optional": false
3842
+ "name": "opts",
3843
+ "type": "LoadRelatedOptions",
3844
+ "optional": true
4007
3845
  }
4008
3846
  ],
4009
- "returnType": "Promise<AnalyticsProperty | null>",
3847
+ "returnType": "Promise<any[]>",
4010
3848
  "isStatic": false,
4011
3849
  "isPublic": true
4012
3850
  },
4013
- "findBySiteDomain": {
4014
- "name": "findBySiteDomain",
3851
+ "getRelated": {
3852
+ "name": "getRelated",
4015
3853
  "async": true,
4016
3854
  "parameters": [
4017
3855
  {
4018
- "name": "siteDomain",
3856
+ "name": "fieldName",
4019
3857
  "type": "string",
4020
3858
  "optional": false
4021
3859
  },
4022
3860
  {
4023
- "name": "provider",
4024
- "type": "AnalyticsProvider",
3861
+ "name": "opts",
3862
+ "type": "LoadRelatedOptions",
4025
3863
  "optional": true
4026
3864
  }
4027
3865
  ],
4028
- "returnType": "Promise<AnalyticsProperty | null>",
3866
+ "returnType": "Promise<any>",
4029
3867
  "isStatic": false,
4030
3868
  "isPublic": true
4031
3869
  },
4032
- "findByProvider": {
4033
- "name": "findByProvider",
3870
+ "getAvailableTools": {
3871
+ "name": "getAvailableTools",
3872
+ "async": false,
3873
+ "parameters": [],
3874
+ "returnType": "AITool[]",
3875
+ "isStatic": false,
3876
+ "isPublic": true
3877
+ },
3878
+ "executeToolCall": {
3879
+ "name": "executeToolCall",
4034
3880
  "async": true,
4035
3881
  "parameters": [
4036
3882
  {
4037
- "name": "provider",
4038
- "type": "AnalyticsProvider",
3883
+ "name": "toolCall",
3884
+ "type": "ToolCall",
4039
3885
  "optional": false
4040
3886
  }
4041
3887
  ],
4042
- "returnType": "Promise<AnalyticsProperty[]>",
3888
+ "returnType": "Promise<ToolCallResult>",
4043
3889
  "isStatic": false,
4044
3890
  "isPublic": true
4045
3891
  },
4046
- "findGA4Properties": {
4047
- "name": "findGA4Properties",
3892
+ "remember": {
3893
+ "name": "remember",
4048
3894
  "async": true,
4049
- "parameters": [],
4050
- "returnType": "Promise<AnalyticsProperty[]>",
3895
+ "parameters": [
3896
+ {
3897
+ "name": "options",
3898
+ "type": "object",
3899
+ "optional": false
3900
+ }
3901
+ ],
3902
+ "returnType": "Promise<void>",
4051
3903
  "isStatic": false,
4052
3904
  "isPublic": true
4053
3905
  },
4054
- "findPlausibleSites": {
4055
- "name": "findPlausibleSites",
3906
+ "recall": {
3907
+ "name": "recall",
4056
3908
  "async": true,
4057
- "parameters": [],
4058
- "returnType": "Promise<AnalyticsProperty[]>",
3909
+ "parameters": [
3910
+ {
3911
+ "name": "options",
3912
+ "type": "object",
3913
+ "optional": false
3914
+ }
3915
+ ],
3916
+ "returnType": "Promise",
4059
3917
  "isStatic": false,
4060
3918
  "isPublic": true
4061
3919
  },
4062
- "findMatomoSites": {
4063
- "name": "findMatomoSites",
3920
+ "recallAll": {
3921
+ "name": "recallAll",
4064
3922
  "async": true,
4065
- "parameters": [],
4066
- "returnType": "Promise<AnalyticsProperty[]>",
3923
+ "parameters": [
3924
+ {
3925
+ "name": "options",
3926
+ "type": "object",
3927
+ "optional": true
3928
+ }
3929
+ ],
3930
+ "returnType": "Promise<Map<string>>",
4067
3931
  "isStatic": false,
4068
3932
  "isPublic": true
4069
3933
  },
4070
- "findByStatus": {
4071
- "name": "findByStatus",
3934
+ "forget": {
3935
+ "name": "forget",
4072
3936
  "async": true,
4073
3937
  "parameters": [
4074
3938
  {
4075
- "name": "status",
4076
- "type": "AnalyticsPropertyStatus",
3939
+ "name": "options",
3940
+ "type": "object",
4077
3941
  "optional": false
4078
3942
  }
4079
3943
  ],
4080
- "returnType": "Promise<AnalyticsProperty[]>",
3944
+ "returnType": "Promise<void>",
4081
3945
  "isStatic": false,
4082
3946
  "isPublic": true
4083
3947
  },
4084
- "findActive": {
4085
- "name": "findActive",
3948
+ "forgetScope": {
3949
+ "name": "forgetScope",
4086
3950
  "async": true,
4087
- "parameters": [],
4088
- "returnType": "Promise<AnalyticsProperty[]>",
3951
+ "parameters": [
3952
+ {
3953
+ "name": "options",
3954
+ "type": "object",
3955
+ "optional": false
3956
+ }
3957
+ ],
3958
+ "returnType": "Promise<number>",
4089
3959
  "isStatic": false,
4090
3960
  "isPublic": true
4091
3961
  },
4092
- "findNeedingSync": {
4093
- "name": "findNeedingSync",
3962
+ "generateEmbeddings": {
3963
+ "name": "generateEmbeddings",
4094
3964
  "async": true,
4095
3965
  "parameters": [
4096
3966
  {
4097
- "name": "hoursAgo",
4098
- "type": "number",
3967
+ "name": "options",
3968
+ "type": "GenerateEmbeddingsOptions",
4099
3969
  "optional": true
4100
3970
  }
4101
3971
  ],
4102
- "returnType": "Promise<AnalyticsProperty[]>",
3972
+ "returnType": "Promise<void>",
4103
3973
  "isStatic": false,
4104
3974
  "isPublic": true
4105
- }
4106
- },
4107
- "decoratorConfig": {},
4108
- "extends": "SmrtCollection",
4109
- "extendsTypeArg": "AnalyticsProperty",
4110
- "exportName": "AnalyticsPropertyCollection",
4111
- "collectionExportName": "AnalyticsPropertyCollectionCollection",
4112
- "schema": {
4113
- "tableName": "analytics_property_collections",
4114
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_property_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
4115
- "columns": {
4116
- "id": {
4117
- "type": "UUID",
4118
- "primaryKey": true,
4119
- "referenceKind": "id",
4120
- "notNull": true
4121
- },
4122
- "slug": {
4123
- "type": "TEXT",
4124
- "notNull": true
4125
- },
4126
- "context": {
4127
- "type": "TEXT",
4128
- "notNull": true,
4129
- "default": ""
4130
- },
4131
- "created_at": {
4132
- "type": "TIMESTAMP",
4133
- "notNull": true,
4134
- "default": "current_timestamp"
4135
- },
4136
- "updated_at": {
4137
- "type": "TIMESTAMP",
4138
- "notNull": true,
4139
- "default": "current_timestamp"
4140
- }
4141
3975
  },
4142
- "indexes": [
4143
- {
4144
- "name": "analytics_property_collections_slug_context_idx",
4145
- "columns": [
4146
- "slug",
4147
- "context"
4148
- ],
4149
- "unique": true
4150
- },
4151
- {
4152
- "name": "analytics_property_collections_created_at_idx",
4153
- "columns": [
4154
- "created_at"
4155
- ]
4156
- }
4157
- ],
4158
- "version": "a1c264b1"
4159
- }
4160
- },
4161
- "@happyvertical/smrt-analytics:AnalyticsReportCollection": {
4162
- "name": "analyticsreportcollection",
4163
- "className": "AnalyticsReportCollection",
4164
- "qualifiedName": "@happyvertical/smrt-analytics:AnalyticsReportCollection",
4165
- "collection": "analyticsreports",
4166
- "filePath": "/home/runner/_work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts",
4167
- "packageName": "@happyvertical/smrt-analytics",
4168
- "fields": {},
4169
- "methods": {
4170
- "findByProperty": {
4171
- "name": "findByProperty",
3976
+ "getEmbedding": {
3977
+ "name": "getEmbedding",
4172
3978
  "async": true,
4173
3979
  "parameters": [
4174
3980
  {
4175
- "name": "propertyId",
3981
+ "name": "fieldName",
4176
3982
  "type": "string",
4177
3983
  "optional": false
3984
+ },
3985
+ {
3986
+ "name": "model",
3987
+ "type": "string",
3988
+ "optional": true
4178
3989
  }
4179
3990
  ],
4180
- "returnType": "Promise<AnalyticsReport[]>",
3991
+ "returnType": "Promise<number[] | null>",
4181
3992
  "isStatic": false,
4182
3993
  "isPublic": true
4183
3994
  },
4184
- "findByStatus": {
4185
- "name": "findByStatus",
3995
+ "hasStaleEmbeddings": {
3996
+ "name": "hasStaleEmbeddings",
3997
+ "async": true,
3998
+ "parameters": [],
3999
+ "returnType": "Promise<boolean>",
4000
+ "isStatic": false,
4001
+ "isPublic": true
4002
+ },
4003
+ "clearEmbeddings": {
4004
+ "name": "clearEmbeddings",
4186
4005
  "async": true,
4006
+ "parameters": [],
4007
+ "returnType": "Promise<void>",
4008
+ "isStatic": false,
4009
+ "isPublic": true
4010
+ },
4011
+ "getDimensions": {
4012
+ "name": "getDimensions",
4013
+ "async": false,
4014
+ "parameters": [],
4015
+ "returnType": "Array<object>",
4016
+ "isStatic": false,
4017
+ "isPublic": true
4018
+ },
4019
+ "setDimensions": {
4020
+ "name": "setDimensions",
4021
+ "async": false,
4187
4022
  "parameters": [
4188
4023
  {
4189
- "name": "status",
4190
- "type": "ReportStatus",
4024
+ "name": "dimensions",
4025
+ "type": "Array<object>",
4191
4026
  "optional": false
4192
4027
  }
4193
4028
  ],
4194
- "returnType": "Promise<AnalyticsReport[]>",
4029
+ "returnType": "void",
4195
4030
  "isStatic": false,
4196
4031
  "isPublic": true
4197
4032
  },
4198
- "findDrafts": {
4199
- "name": "findDrafts",
4200
- "async": true,
4033
+ "getMetrics": {
4034
+ "name": "getMetrics",
4035
+ "async": false,
4201
4036
  "parameters": [],
4202
- "returnType": "Promise<AnalyticsReport[]>",
4037
+ "returnType": "Array<object>",
4203
4038
  "isStatic": false,
4204
4039
  "isPublic": true
4205
4040
  },
4206
- "findScheduled": {
4207
- "name": "findScheduled",
4208
- "async": true,
4041
+ "setMetrics": {
4042
+ "name": "setMetrics",
4043
+ "async": false,
4044
+ "parameters": [
4045
+ {
4046
+ "name": "metrics",
4047
+ "type": "Array<object>",
4048
+ "optional": false
4049
+ }
4050
+ ],
4051
+ "returnType": "void",
4052
+ "isStatic": false,
4053
+ "isPublic": true
4054
+ },
4055
+ "getResultData": {
4056
+ "name": "getResultData",
4057
+ "async": false,
4209
4058
  "parameters": [],
4210
- "returnType": "Promise<AnalyticsReport[]>",
4059
+ "returnType": "Record<string> | null",
4060
+ "isStatic": false,
4061
+ "isPublic": true
4062
+ },
4063
+ "setResultData": {
4064
+ "name": "setResultData",
4065
+ "async": false,
4066
+ "parameters": [
4067
+ {
4068
+ "name": "data",
4069
+ "type": "Record<string>",
4070
+ "optional": false
4071
+ }
4072
+ ],
4073
+ "returnType": "void",
4211
4074
  "isStatic": false,
4212
4075
  "isPublic": true
4213
4076
  },
4214
- "findCompleted": {
4215
- "name": "findCompleted",
4216
- "async": true,
4077
+ "markRunning": {
4078
+ "name": "markRunning",
4079
+ "async": false,
4217
4080
  "parameters": [],
4218
- "returnType": "Promise<AnalyticsReport[]>",
4081
+ "returnType": "void",
4219
4082
  "isStatic": false,
4220
4083
  "isPublic": true
4221
4084
  },
4222
- "findFailed": {
4223
- "name": "findFailed",
4224
- "async": true,
4225
- "parameters": [],
4226
- "returnType": "Promise<AnalyticsReport[]>",
4085
+ "markCompleted": {
4086
+ "name": "markCompleted",
4087
+ "async": false,
4088
+ "parameters": [
4089
+ {
4090
+ "name": "rowCount",
4091
+ "type": "number",
4092
+ "optional": false
4093
+ }
4094
+ ],
4095
+ "returnType": "void",
4227
4096
  "isStatic": false,
4228
4097
  "isPublic": true
4229
4098
  },
4230
- "findByFrequency": {
4231
- "name": "findByFrequency",
4232
- "async": true,
4099
+ "markFailed": {
4100
+ "name": "markFailed",
4101
+ "async": false,
4233
4102
  "parameters": [
4234
4103
  {
4235
- "name": "frequency",
4236
- "type": "ReportFrequency",
4104
+ "name": "error",
4105
+ "type": "string",
4237
4106
  "optional": false
4238
4107
  }
4239
4108
  ],
4240
- "returnType": "Promise<AnalyticsReport[]>",
4109
+ "returnType": "void",
4241
4110
  "isStatic": false,
4242
4111
  "isPublic": true
4243
4112
  },
4244
- "findRecurring": {
4245
- "name": "findRecurring",
4246
- "async": true,
4113
+ "calculateNextRun": {
4114
+ "name": "calculateNextRun",
4115
+ "async": false,
4247
4116
  "parameters": [],
4248
- "returnType": "Promise<AnalyticsReport[]>",
4117
+ "returnType": "void",
4249
4118
  "isStatic": false,
4250
4119
  "isPublic": true
4251
4120
  },
4252
- "findDue": {
4253
- "name": "findDue",
4254
- "async": true,
4121
+ "isDue": {
4122
+ "name": "isDue",
4123
+ "async": false,
4255
4124
  "parameters": [],
4256
- "returnType": "Promise<AnalyticsReport[]>",
4125
+ "returnType": "boolean",
4257
4126
  "isStatic": false,
4258
4127
  "isPublic": true
4259
4128
  },
4260
- "findByPropertyAndStatus": {
4261
- "name": "findByPropertyAndStatus",
4129
+ "analyzeResults": {
4130
+ "name": "analyzeResults",
4262
4131
  "async": true,
4263
4132
  "parameters": [
4264
4133
  {
4265
- "name": "propertyId",
4266
- "type": "string",
4267
- "optional": false
4268
- },
4269
- {
4270
- "name": "status",
4271
- "type": "ReportStatus",
4272
- "optional": false
4134
+ "name": "_options",
4135
+ "type": "Record<string>",
4136
+ "optional": true
4273
4137
  }
4274
4138
  ],
4275
- "returnType": "Promise<AnalyticsReport[]>",
4139
+ "returnType": "Promise<object>",
4276
4140
  "isStatic": false,
4277
4141
  "isPublic": true
4278
4142
  },
4279
- "findRecentlyRun": {
4280
- "name": "findRecentlyRun",
4143
+ "hasPositiveTrends": {
4144
+ "name": "hasPositiveTrends",
4281
4145
  "async": true,
4282
- "parameters": [
4283
- {
4284
- "name": "hoursAgo",
4285
- "type": "number",
4286
- "optional": true
4287
- }
4288
- ],
4289
- "returnType": "Promise<AnalyticsReport[]>",
4146
+ "parameters": [],
4147
+ "returnType": "Promise<boolean>",
4290
4148
  "isStatic": false,
4291
4149
  "isPublic": true
4292
4150
  }
4293
4151
  },
4294
- "decoratorConfig": {},
4295
- "extends": "SmrtCollection",
4296
- "extendsTypeArg": "AnalyticsReport",
4297
- "exportName": "AnalyticsReportCollection",
4298
- "collectionExportName": "AnalyticsReportCollectionCollection",
4152
+ "decoratorConfig": {
4153
+ "tableStrategy": "sti",
4154
+ "api": {
4155
+ "include": [
4156
+ "list",
4157
+ "get",
4158
+ "create",
4159
+ "update",
4160
+ "run"
4161
+ ]
4162
+ },
4163
+ "mcp": {
4164
+ "include": [
4165
+ "list",
4166
+ "get",
4167
+ "run",
4168
+ "analyze"
4169
+ ]
4170
+ },
4171
+ "cli": true,
4172
+ "tenantScoped": {
4173
+ "mode": "optional"
4174
+ },
4175
+ "conflictColumns": [
4176
+ "tenant_id",
4177
+ "slug",
4178
+ "context",
4179
+ "_meta_type"
4180
+ ]
4181
+ },
4182
+ "extends": "SmrtObject",
4183
+ "exportName": "AnalyticsReport",
4184
+ "collectionExportName": "AnalyticsReportCollection",
4299
4185
  "schema": {
4300
- "tableName": "analytics_report_collections",
4301
- "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_report_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
4186
+ "tableName": "analytics_reports",
4187
+ "ddl": "CREATE TABLE IF NOT EXISTS \"analytics_reports\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"property_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"dimensions\" TEXT DEFAULT '[]',\n \"metrics\" TEXT DEFAULT '[]',\n \"date_range_start\" TEXT DEFAULT '7daysAgo',\n \"date_range_end\" TEXT DEFAULT 'today',\n \"dimension_filter\" TEXT DEFAULT '',\n \"metric_filter\" TEXT DEFAULT '',\n \"order_by\" TEXT DEFAULT '[]',\n \"max_results\" INTEGER DEFAULT 0,\n \"status\" TEXT,\n \"frequency\" TEXT,\n \"last_run_at\" TIMESTAMP,\n \"next_run_at\" TIMESTAMP,\n \"result_data\" TEXT DEFAULT '',\n \"row_count\" INTEGER DEFAULT 0,\n \"last_error\" TEXT DEFAULT ''\n);",
4302
4188
  "columns": {
4303
4189
  "id": {
4304
4190
  "type": "UUID",
@@ -4315,6 +4201,14 @@
4315
4201
  "notNull": true,
4316
4202
  "default": ""
4317
4203
  },
4204
+ "_meta_type": {
4205
+ "type": "TEXT",
4206
+ "notNull": true
4207
+ },
4208
+ "_meta_data": {
4209
+ "type": "JSON",
4210
+ "notNull": false
4211
+ },
4318
4212
  "created_at": {
4319
4213
  "type": "TIMESTAMP",
4320
4214
  "notNull": true,
@@ -4324,25 +4218,131 @@
4324
4218
  "type": "TIMESTAMP",
4325
4219
  "notNull": true,
4326
4220
  "default": "current_timestamp"
4221
+ },
4222
+ "tenant_id": {
4223
+ "type": "UUID",
4224
+ "referenceKind": "tenantId",
4225
+ "notNull": false
4226
+ },
4227
+ "property_id": {
4228
+ "type": "UUID",
4229
+ "referenceKind": "foreignKey",
4230
+ "notNull": false
4231
+ },
4232
+ "name": {
4233
+ "type": "TEXT",
4234
+ "notNull": false,
4235
+ "default": ""
4236
+ },
4237
+ "description": {
4238
+ "type": "TEXT",
4239
+ "notNull": false,
4240
+ "default": ""
4241
+ },
4242
+ "dimensions": {
4243
+ "type": "TEXT",
4244
+ "notNull": false,
4245
+ "default": "[]"
4246
+ },
4247
+ "metrics": {
4248
+ "type": "TEXT",
4249
+ "notNull": false,
4250
+ "default": "[]"
4251
+ },
4252
+ "date_range_start": {
4253
+ "type": "TEXT",
4254
+ "notNull": false,
4255
+ "default": "7daysAgo"
4256
+ },
4257
+ "date_range_end": {
4258
+ "type": "TEXT",
4259
+ "notNull": false,
4260
+ "default": "today"
4261
+ },
4262
+ "dimension_filter": {
4263
+ "type": "TEXT",
4264
+ "notNull": false,
4265
+ "default": ""
4266
+ },
4267
+ "metric_filter": {
4268
+ "type": "TEXT",
4269
+ "notNull": false,
4270
+ "default": ""
4271
+ },
4272
+ "order_by": {
4273
+ "type": "TEXT",
4274
+ "notNull": false,
4275
+ "default": "[]"
4276
+ },
4277
+ "max_results": {
4278
+ "type": "INTEGER",
4279
+ "notNull": false,
4280
+ "default": 0
4281
+ },
4282
+ "status": {
4283
+ "type": "TEXT",
4284
+ "notNull": false
4285
+ },
4286
+ "frequency": {
4287
+ "type": "TEXT",
4288
+ "notNull": false
4289
+ },
4290
+ "last_run_at": {
4291
+ "type": "TIMESTAMP",
4292
+ "notNull": false
4293
+ },
4294
+ "next_run_at": {
4295
+ "type": "TIMESTAMP",
4296
+ "notNull": false
4297
+ },
4298
+ "result_data": {
4299
+ "type": "TEXT",
4300
+ "notNull": false,
4301
+ "default": ""
4302
+ },
4303
+ "row_count": {
4304
+ "type": "INTEGER",
4305
+ "notNull": false,
4306
+ "default": 0
4307
+ },
4308
+ "last_error": {
4309
+ "type": "TEXT",
4310
+ "notNull": false,
4311
+ "default": ""
4327
4312
  }
4328
4313
  },
4329
4314
  "indexes": [
4330
4315
  {
4331
- "name": "analytics_report_collections_slug_context_idx",
4316
+ "name": "analytics_reports_slug_context_meta_type_idx",
4332
4317
  "columns": [
4318
+ "tenant_id",
4333
4319
  "slug",
4334
- "context"
4320
+ "context",
4321
+ "_meta_type"
4335
4322
  ],
4336
4323
  "unique": true
4337
4324
  },
4338
4325
  {
4339
- "name": "analytics_report_collections_created_at_idx",
4326
+ "name": "analytics_reports_meta_type_idx",
4327
+ "columns": [
4328
+ "_meta_type"
4329
+ ]
4330
+ },
4331
+ {
4332
+ "name": "analytics_reports_tenant_id_created_at_idx",
4340
4333
  "columns": [
4334
+ "tenant_id",
4341
4335
  "created_at"
4342
4336
  ]
4337
+ },
4338
+ {
4339
+ "name": "analytics_reports_property_id_idx",
4340
+ "columns": [
4341
+ "property_id"
4342
+ ]
4343
4343
  }
4344
4344
  ],
4345
- "version": "74445ee1"
4345
+ "version": "cecde8c6"
4346
4346
  }
4347
4347
  }
4348
4348
  },