@happyvertical/smrt-analytics 0.51.32 → 0.51.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/helpers/index.d.ts +6 -0
- package/dist/__tests__/helpers/index.d.ts.map +1 -0
- package/dist/__tests__/helpers/test-db.d.ts +49 -0
- package/dist/__tests__/helpers/test-db.d.ts.map +1 -0
- package/dist/collections/AnalyticsDataStreamCollection.d.ts +4 -0
- package/dist/collections/AnalyticsEventCollection.d.ts +5 -1
- package/dist/collections/AnalyticsPropertyCollection.d.ts +4 -0
- package/dist/collections/AnalyticsReportCollection.d.ts +4 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/models/AnalyticsDataStream.d.ts +5 -1
- package/dist/models/AnalyticsEvent.d.ts +5 -1
- package/dist/models/AnalyticsProperty.d.ts +5 -1
- package/dist/models/AnalyticsReport.d.ts +5 -1
- package/dist/prompts.d.ts +48 -4
- package/dist/smrt-knowledge.json +4 -4
- package/dist/ui.d.ts +14 -1
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test database utilities for multi-adapter testing
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { type DatabaseInterface } from '@happyvertical/sql';
|
|
6
|
+
export type TestAdapter = 'sqlite' | 'postgres' | 'json';
|
|
7
|
+
export interface TestDbConfig {
|
|
8
|
+
type: 'sqlite' | 'postgres' | 'json';
|
|
9
|
+
url: string;
|
|
10
|
+
writeStrategy?: 'immediate';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the current test adapter from environment
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTestAdapter(): TestAdapter;
|
|
16
|
+
/**
|
|
17
|
+
* Get database configuration for the current test adapter
|
|
18
|
+
*/
|
|
19
|
+
export declare function getTestDbConfig(): TestDbConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Create a database instance for the current test adapter
|
|
22
|
+
*/
|
|
23
|
+
export declare function createTestDb(): Promise<{
|
|
24
|
+
db: DatabaseInterface;
|
|
25
|
+
config: TestDbConfig;
|
|
26
|
+
cleanup: () => Promise<void>;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Deterministic UUID for a readable fixture label. Property ids are native
|
|
30
|
+
* UUID columns on PostgreSQL, so a literal such as `'prop-123'` is rejected
|
|
31
|
+
* there (22P02) while SQLite's text ids accept it; routing every fixture id
|
|
32
|
+
* through this keeps the same readable label valid on all three adapters.
|
|
33
|
+
*/
|
|
34
|
+
export declare function fixtureId(label: string): string;
|
|
35
|
+
/** Seed explicit real parents for collection fixtures that exercise child rows. */
|
|
36
|
+
export declare function seedAnalyticsProperties(db: DatabaseInterface, ids: readonly string[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if PostgreSQL is available (cached)
|
|
39
|
+
*/
|
|
40
|
+
export declare function isPostgresAvailable(): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Get display name for current adapter (for test descriptions)
|
|
43
|
+
*/
|
|
44
|
+
export declare function getAdapterDisplayName(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Check if current test run is for a specific adapter
|
|
47
|
+
*/
|
|
48
|
+
export declare function isAdapter(adapter: TestAdapter): boolean;
|
|
49
|
+
//# sourceMappingURL=test-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-db.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/test-db.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,KAAK,iBAAiB,EAAe,MAAM,oBAAoB,CAAC;AAGzE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CA8B9C;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CAqFD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,mFAAmF;AACnF,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,iBAAiB,EACrB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAUf;AAKD;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAsB5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAY9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvD"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsDataStreamCollection - Collection manager for AnalyticsDataStream objects
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
6
|
import { AnalyticsDataStream } from '../models/AnalyticsDataStream.js';
|
|
3
7
|
import { DataStreamStatus, DataStreamType } from '../types/index.js';
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsEventCollection - Collection manager for AnalyticsEvent objects
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
6
|
import { AnalyticsEvent } from '../models/AnalyticsEvent.js';
|
|
3
|
-
import { PropertyStatsWithTrend, TrackingEventStatus } from '../types/index.js';
|
|
7
|
+
import { type PropertyStatsWithTrend, TrackingEventStatus } from '../types/index.js';
|
|
4
8
|
export declare class AnalyticsEventCollection extends SmrtCollection<AnalyticsEvent> {
|
|
5
9
|
static readonly _itemClass: typeof AnalyticsEvent;
|
|
6
10
|
/**
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsPropertyCollection - Collection manager for AnalyticsProperty objects
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
6
|
import { AnalyticsProperty } from '../models/AnalyticsProperty.js';
|
|
3
7
|
import { AnalyticsPropertyStatus, AnalyticsProvider } from '../types/index.js';
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsReportCollection - Collection manager for AnalyticsReport objects
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
import { SmrtCollection } from '@happyvertical/smrt-core';
|
|
2
6
|
import { AnalyticsReport } from '../models/AnalyticsReport.js';
|
|
3
7
|
import { ReportFrequency, ReportStatus } from '../types/index.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @happyvertical/smrt-analytics
|
|
3
|
+
*
|
|
4
|
+
* Analytics integration models for SMRT framework.
|
|
5
|
+
* Provides SMRT-wrapped models for managing analytics properties, data streams,
|
|
6
|
+
* reports, and event tracking with integration to @happyvertical/analytics SDK.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import './__smrt-register__.js';
|
|
11
|
+
import './prompts.js';
|
|
1
12
|
export { AnalyticsDataStreamCollection, AnalyticsEventCollection, AnalyticsPropertyCollection, AnalyticsReportCollection, } from './collections/index.js';
|
|
2
13
|
export { AnalyticsDataStream, AnalyticsEvent, AnalyticsProperty, AnalyticsReport, } from './models/index.js';
|
|
3
14
|
export { promptMessageOptions, smrtAnalyticsAnalyzePerformancePrompt, smrtAnalyticsAnalyzeResultsPrompt, smrtAnalyticsHasPositiveTrendsPrompt, } from './prompts.js';
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { ObjectRegistry, SmrtCollection, SmrtObject, field, foreignKey, smrt } f
|
|
|
2
2
|
import { definePrompt, resolvePrompt } from "@happyvertical/smrt-prompts";
|
|
3
3
|
import { TenantScoped, tenantId } from "@happyvertical/smrt-tenancy";
|
|
4
4
|
//#region src/__smrt-register__.ts
|
|
5
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-analytics\",\"packageVersion\":\"0.51.32\",\"objects\":{\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\":{\"name\":\"analyticsdatastreamcollection\",\"className\":\"AnalyticsDataStreamCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"streamType\",\"type\":\"DataStreamType\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findWebStreams\":{\"name\":\"findWebStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findIOSStreams\":{\"name\":\"findIOSStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findAndroidStreams\":{\"name\":\"findAndroidStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findMobileStreams\":{\"name\":\"findMobileStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"DataStreamStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByProperty\":{\"name\":\"findActiveByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsDataStream\",\"exportName\":\"AnalyticsDataStreamCollection\",\"collectionExportName\":\"AnalyticsDataStreamCollectionCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEventCollection\":{\"name\":\"analyticseventcollection\",\"className\":\"AnalyticsEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEventCollection\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByEventName\":{\"name\":\"findByEventName\",\"async\":true,\"parameters\":[{\"name\":\"eventName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByClientId\":{\"name\":\"findByClientId\",\"async\":true,\"parameters\":[{\"name\":\"clientId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByUserId\":{\"name\":\"findByUserId\",\"async\":true,\"parameters\":[{\"name\":\"userId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"TrackingEventStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findForRetry\":{\"name\":\"findForRetry\",\"async\":true,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPendingByProperty\":{\"name\":\"findPendingByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPageviews\":{\"name\":\"findPageviews\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByEventName\":{\"name\":\"countByEventName\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Map<string, number>>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStats\":{\"name\":\"getPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStatsWithTrend\":{\"name\":\"getPropertyStatsWithTrend\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<PropertyStatsWithTrend>\",\"isStatic\":false,\"isPublic\":true},\"getBatchPropertyStats\":{\"name\":\"getBatchPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<Map<string, PropertyStatsWithTrend>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsEvent\",\"exportName\":\"AnalyticsEventCollection\",\"collectionExportName\":\"AnalyticsEventCollectionCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\":{\"name\":\"analyticspropertycollection\",\"className\":\"AnalyticsPropertyCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteDomain\":{\"name\":\"findBySiteDomain\",\"async\":true,\"parameters\":[{\"name\":\"siteDomain\",\"type\":\"string\",\"optional\":false},{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProvider\":{\"name\":\"findByProvider\",\"async\":true,\"parameters\":[{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findGA4Properties\":{\"name\":\"findGA4Properties\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findPlausibleSites\":{\"name\":\"findPlausibleSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findMatomoSites\":{\"name\":\"findMatomoSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AnalyticsPropertyStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsProperty\",\"exportName\":\"AnalyticsPropertyCollection\",\"collectionExportName\":\"AnalyticsPropertyCollectionCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReportCollection\":{\"name\":\"analyticsreportcollection\",\"className\":\"AnalyticsReportCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReportCollection\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findScheduled\":{\"name\":\"findScheduled\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFrequency\":{\"name\":\"findByFrequency\",\"async\":true,\"parameters\":[{\"name\":\"frequency\",\"type\":\"ReportFrequency\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecurring\":{\"name\":\"findRecurring\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDue\":{\"name\":\"findDue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPropertyAndStatus\":{\"name\":\"findByPropertyAndStatus\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecentlyRun\":{\"name\":\"findRecentlyRun\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsReport\",\"exportName\":\"AnalyticsReportCollection\",\"collectionExportName\":\"AnalyticsReportCollectionCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsDataStream\":{\"name\":\"analyticsdatastream\",\"className\":\"AnalyticsDataStream\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStream\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"streamType\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"firebaseAppId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultUri\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"bundleId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"enhancedMeasurement\":{\"type\":\"boolean\",\"required\":false,\"default\":true}},\"methods\":{\"isWeb\":{\"name\":\"isWeb\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIOS\":{\"name\":\"isIOS\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAndroid\":{\"name\":\"isAndroid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMobileApp\":{\"name\":\"isMobileApp\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPlatformId\":{\"name\":\"getPlatformId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsDataStream\",\"collectionExportName\":\"AnalyticsDataStreamCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEvent\":{\"name\":\"analyticsevent\",\"className\":\"AnalyticsEvent\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEvent\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"eventName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clientId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"params\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\"},\"eventTimestamp\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"errorMessage\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"retryCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nonPersonalizedAds\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"sessionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pagePath\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pageTitle\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userAgent\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"ipAddress\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getParams\":{\"name\":\"getParams\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, string | number | boolean>\",\"isStatic\":false,\"isPublic\":true},\"setParams\":{\"name\":\"setParams\",\"async\":false,\"parameters\":[{\"name\":\"params\",\"type\":\"Record<string, string | number | boolean>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addParam\":{\"name\":\"addParam\",\"async\":false,\"parameters\":[{\"name\":\"key\",\"type\":\"string\",\"optional\":false},{\"name\":\"value\",\"type\":\"string | number | boolean\",\"optional\":false,\"unionBranches\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isPageview\":{\"name\":\"isPageview\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetForRetry\":{\"name\":\"resetForRetry\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"shouldRetry\":{\"name\":\"shouldRetry\",\"async\":false,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toTrackEvent\":{\"name\":\"toTrackEvent\",\"async\":false,\"parameters\":[],\"returnType\":\"object\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"track\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsEvent\",\"collectionExportName\":\"AnalyticsEventCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsProperty\":{\"name\":\"analyticsproperty\",\"className\":\"AnalyticsProperty\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsProperty\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"apiSecret\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"siteDomain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"timeZone\":{\"type\":\"text\",\"required\":false,\"default\":\"America/Los_Angeles\"},\"currencyCode\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"industryCategory\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"serviceLevel\":{\"type\":\"text\",\"required\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"text\",\"required\":false},\"lastSyncAt\":{\"type\":\"datetime\",\"required\":false},\"providerMetadata\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\",\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"isGA4\":{\"name\":\"isGA4\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPlausible\":{\"name\":\"isPlausible\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMatomo\":{\"name\":\"isMatomo\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProviderMetadata\":{\"name\":\"getProviderMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setProviderMetadata\":{\"name\":\"setProviderMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markSynced\":{\"name\":\"markSynced\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"analyzePerformance\":{\"name\":\"analyzePerformance\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"isPerformingWell\":{\"name\":\"isPerformingWell\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"sync\",\"runReport\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsProperty\",\"collectionExportName\":\"AnalyticsPropertyCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReport\":{\"name\":\"analyticsreport\",\"className\":\"AnalyticsReport\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReport\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"dateRangeStart\":{\"type\":\"text\",\"required\":false,\"default\":\"7daysAgo\"},\"dateRangeEnd\":{\"type\":\"text\",\"required\":false,\"default\":\"today\"},\"dimensionFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metricFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"orderBy\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"maxResults\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false},\"frequency\":{\"type\":\"text\",\"required\":false},\"lastRunAt\":{\"type\":\"datetime\",\"required\":false},\"nextRunAt\":{\"type\":\"datetime\",\"required\":false},\"resultData\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"rowCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setDimensions\":{\"name\":\"setDimensions\",\"async\":false,\"parameters\":[{\"name\":\"dimensions\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetrics\":{\"name\":\"getMetrics\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setMetrics\":{\"name\":\"setMetrics\",\"async\":false,\"parameters\":[{\"name\":\"metrics\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getResultData\":{\"name\":\"getResultData\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown> | null\",\"isStatic\":false,\"isPublic\":true},\"setResultData\":{\"name\":\"setResultData\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRunning\":{\"name\":\"markRunning\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markCompleted\":{\"name\":\"markCompleted\",\"async\":false,\"parameters\":[{\"name\":\"rowCount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"calculateNextRun\":{\"name\":\"calculateNextRun\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isDue\":{\"name\":\"isDue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"analyzeResults\":{\"name\":\"analyzeResults\",\"async\":true,\"parameters\":[{\"name\":\"_options\",\"type\":\"Record<string, unknown>\",\"optional\":true}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"hasPositiveTrends\":{\"name\":\"hasPositiveTrends\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"run\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"run\",\"analyze\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsReport\",\"collectionExportName\":\"AnalyticsReportCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
5
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-analytics\",\"packageVersion\":\"0.51.34\",\"objects\":{\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\":{\"name\":\"analyticsdatastreamcollection\",\"className\":\"AnalyticsDataStreamCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"streamType\",\"type\":\"DataStreamType\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findWebStreams\":{\"name\":\"findWebStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findIOSStreams\":{\"name\":\"findIOSStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findAndroidStreams\":{\"name\":\"findAndroidStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findMobileStreams\":{\"name\":\"findMobileStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"DataStreamStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByProperty\":{\"name\":\"findActiveByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsDataStream\",\"exportName\":\"AnalyticsDataStreamCollection\",\"collectionExportName\":\"AnalyticsDataStreamCollectionCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEventCollection\":{\"name\":\"analyticseventcollection\",\"className\":\"AnalyticsEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEventCollection\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByEventName\":{\"name\":\"findByEventName\",\"async\":true,\"parameters\":[{\"name\":\"eventName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByClientId\":{\"name\":\"findByClientId\",\"async\":true,\"parameters\":[{\"name\":\"clientId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByUserId\":{\"name\":\"findByUserId\",\"async\":true,\"parameters\":[{\"name\":\"userId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"TrackingEventStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findForRetry\":{\"name\":\"findForRetry\",\"async\":true,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPendingByProperty\":{\"name\":\"findPendingByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPageviews\":{\"name\":\"findPageviews\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByEventName\":{\"name\":\"countByEventName\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Map<string, number>>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStats\":{\"name\":\"getPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStatsWithTrend\":{\"name\":\"getPropertyStatsWithTrend\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<PropertyStatsWithTrend>\",\"isStatic\":false,\"isPublic\":true},\"getBatchPropertyStats\":{\"name\":\"getBatchPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<Map<string, PropertyStatsWithTrend>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsEvent\",\"exportName\":\"AnalyticsEventCollection\",\"collectionExportName\":\"AnalyticsEventCollectionCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\":{\"name\":\"analyticspropertycollection\",\"className\":\"AnalyticsPropertyCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteDomain\":{\"name\":\"findBySiteDomain\",\"async\":true,\"parameters\":[{\"name\":\"siteDomain\",\"type\":\"string\",\"optional\":false},{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProvider\":{\"name\":\"findByProvider\",\"async\":true,\"parameters\":[{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findGA4Properties\":{\"name\":\"findGA4Properties\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findPlausibleSites\":{\"name\":\"findPlausibleSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findMatomoSites\":{\"name\":\"findMatomoSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AnalyticsPropertyStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsProperty\",\"exportName\":\"AnalyticsPropertyCollection\",\"collectionExportName\":\"AnalyticsPropertyCollectionCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReportCollection\":{\"name\":\"analyticsreportcollection\",\"className\":\"AnalyticsReportCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReportCollection\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findScheduled\":{\"name\":\"findScheduled\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFrequency\":{\"name\":\"findByFrequency\",\"async\":true,\"parameters\":[{\"name\":\"frequency\",\"type\":\"ReportFrequency\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecurring\":{\"name\":\"findRecurring\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDue\":{\"name\":\"findDue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPropertyAndStatus\":{\"name\":\"findByPropertyAndStatus\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecentlyRun\":{\"name\":\"findRecentlyRun\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsReport\",\"exportName\":\"AnalyticsReportCollection\",\"collectionExportName\":\"AnalyticsReportCollectionCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsDataStream\":{\"name\":\"analyticsdatastream\",\"className\":\"AnalyticsDataStream\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStream\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"streamType\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"firebaseAppId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultUri\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"bundleId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"enhancedMeasurement\":{\"type\":\"boolean\",\"required\":false,\"default\":true}},\"methods\":{\"isWeb\":{\"name\":\"isWeb\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIOS\":{\"name\":\"isIOS\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAndroid\":{\"name\":\"isAndroid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMobileApp\":{\"name\":\"isMobileApp\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPlatformId\":{\"name\":\"getPlatformId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsDataStream\",\"collectionExportName\":\"AnalyticsDataStreamCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEvent\":{\"name\":\"analyticsevent\",\"className\":\"AnalyticsEvent\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEvent\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"eventName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clientId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"params\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\"},\"eventTimestamp\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"errorMessage\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"retryCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nonPersonalizedAds\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"sessionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pagePath\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pageTitle\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userAgent\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"ipAddress\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getParams\":{\"name\":\"getParams\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, string | number | boolean>\",\"isStatic\":false,\"isPublic\":true},\"setParams\":{\"name\":\"setParams\",\"async\":false,\"parameters\":[{\"name\":\"params\",\"type\":\"Record<string, string | number | boolean>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addParam\":{\"name\":\"addParam\",\"async\":false,\"parameters\":[{\"name\":\"key\",\"type\":\"string\",\"optional\":false},{\"name\":\"value\",\"type\":\"string | number | boolean\",\"optional\":false,\"unionBranches\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isPageview\":{\"name\":\"isPageview\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetForRetry\":{\"name\":\"resetForRetry\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"shouldRetry\":{\"name\":\"shouldRetry\",\"async\":false,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toTrackEvent\":{\"name\":\"toTrackEvent\",\"async\":false,\"parameters\":[],\"returnType\":\"object\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"track\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsEvent\",\"collectionExportName\":\"AnalyticsEventCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsProperty\":{\"name\":\"analyticsproperty\",\"className\":\"AnalyticsProperty\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsProperty\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"apiSecret\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"siteDomain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"timeZone\":{\"type\":\"text\",\"required\":false,\"default\":\"America/Los_Angeles\"},\"currencyCode\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"industryCategory\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"serviceLevel\":{\"type\":\"text\",\"required\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"text\",\"required\":false},\"lastSyncAt\":{\"type\":\"datetime\",\"required\":false},\"providerMetadata\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\",\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"isGA4\":{\"name\":\"isGA4\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPlausible\":{\"name\":\"isPlausible\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMatomo\":{\"name\":\"isMatomo\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProviderMetadata\":{\"name\":\"getProviderMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setProviderMetadata\":{\"name\":\"setProviderMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markSynced\":{\"name\":\"markSynced\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"analyzePerformance\":{\"name\":\"analyzePerformance\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"isPerformingWell\":{\"name\":\"isPerformingWell\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"sync\",\"runReport\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsProperty\",\"collectionExportName\":\"AnalyticsPropertyCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReport\":{\"name\":\"analyticsreport\",\"className\":\"AnalyticsReport\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReport\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"dateRangeStart\":{\"type\":\"text\",\"required\":false,\"default\":\"7daysAgo\"},\"dateRangeEnd\":{\"type\":\"text\",\"required\":false,\"default\":\"today\"},\"dimensionFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metricFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"orderBy\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"maxResults\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false},\"frequency\":{\"type\":\"text\",\"required\":false},\"lastRunAt\":{\"type\":\"datetime\",\"required\":false},\"nextRunAt\":{\"type\":\"datetime\",\"required\":false},\"resultData\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"rowCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setDimensions\":{\"name\":\"setDimensions\",\"async\":false,\"parameters\":[{\"name\":\"dimensions\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetrics\":{\"name\":\"getMetrics\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setMetrics\":{\"name\":\"setMetrics\",\"async\":false,\"parameters\":[{\"name\":\"metrics\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getResultData\":{\"name\":\"getResultData\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown> | null\",\"isStatic\":false,\"isPublic\":true},\"setResultData\":{\"name\":\"setResultData\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRunning\":{\"name\":\"markRunning\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markCompleted\":{\"name\":\"markCompleted\",\"async\":false,\"parameters\":[{\"name\":\"rowCount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"calculateNextRun\":{\"name\":\"calculateNextRun\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isDue\":{\"name\":\"isDue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"analyzeResults\":{\"name\":\"analyzeResults\",\"async\":true,\"parameters\":[{\"name\":\"_options\",\"type\":\"Record<string, unknown>\",\"optional\":true}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"hasPositiveTrends\":{\"name\":\"hasPositiveTrends\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"run\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"run\",\"analyze\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsReport\",\"collectionExportName\":\"AnalyticsReportCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"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);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
6
6
|
//#endregion
|
|
7
7
|
//#region src/prompts.ts
|
|
8
8
|
var smrtAnalyticsAnalyzePerformancePrompt = definePrompt({
|
package/dist/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"timestamp": 0,
|
|
4
4
|
"packageName": "@happyvertical/smrt-analytics",
|
|
5
|
-
"packageVersion": "0.51.
|
|
5
|
+
"packageVersion": "0.51.34",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection": {
|
|
8
8
|
"name": "analyticsdatastreamcollection",
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsDataStream model - Represents a data stream for a property
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
6
|
import { DataStreamStatus, DataStreamType } from '../types/index.js';
|
|
3
7
|
/**
|
|
4
8
|
* Options for constructing an {@link AnalyticsDataStream}.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsEvent model - Tracked events log
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
6
|
import { TrackingEventStatus } from '../types/index.js';
|
|
3
7
|
/**
|
|
4
8
|
* Options for constructing an {@link AnalyticsEvent}.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsProperty model - Represents an analytics property/site
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
6
|
import { AnalyticsPropertyStatus, AnalyticsProvider } from '../types/index.js';
|
|
3
7
|
/**
|
|
4
8
|
* Options for constructing an {@link AnalyticsProperty}.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsReport model - Saved report configurations and results
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
6
|
import { ReportFrequency, ReportStatus } from '../types/index.js';
|
|
3
7
|
/**
|
|
4
8
|
* Options for constructing an {@link AnalyticsReport}.
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,10 +1,54 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Prompt registrations for the @happyvertical/smrt-analytics package.
|
|
3
|
+
*
|
|
4
|
+
* Prompts are registered at module-load time via `definePrompt()` so that
|
|
5
|
+
* tenant-aware overrides can be applied at call time via `resolvePrompt()`.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors the pattern used by `@happyvertical/smrt-properties` (see
|
|
8
|
+
* `prompts.ts`) and `@happyvertical/smrt-content` (see `content-prompts.ts`).
|
|
9
|
+
*
|
|
10
|
+
* PII / internal-field exclusion policy:
|
|
11
|
+
*
|
|
12
|
+
* Variables that this package never forwards to the AI provider:
|
|
13
|
+
* - `id`, `tenantId`, `propertyId` and other foreign-key/UUID fields —
|
|
14
|
+
* they identify internal records and provide no analytic value.
|
|
15
|
+
* - `apiSecret`, `measurementId`, `externalId`, `siteDomain` — these are
|
|
16
|
+
* provider credentials or platform-specific identifiers (e.g. GA4 API
|
|
17
|
+
* secrets, Matomo `idSite`, custom `G-XXXX` measurement IDs) that may
|
|
18
|
+
* be tenant-private configuration.
|
|
19
|
+
* - `providerMetadata` — extensible JSON blob that may contain
|
|
20
|
+
* credentials, account IDs, or other configuration secrets.
|
|
21
|
+
* - `lastError`, raw `dimensionFilter` / `metricFilter` JSON — internal
|
|
22
|
+
* error strings (which may contain auth tokens) and filter expressions
|
|
23
|
+
* that may reference cookie IDs or user-pseudo-IDs are kept out of the
|
|
24
|
+
* prompt variable set.
|
|
25
|
+
*
|
|
26
|
+
* Variables this package DOES forward (potentially carrying PII the caller
|
|
27
|
+
* persisted):
|
|
28
|
+
* - `reportData` (a JSON.stringify of the persisted `resultData`) — this
|
|
29
|
+
* is forwarded VERBATIM to the AI in `analyzeResults` and
|
|
30
|
+
* `hasPositiveTrends`. The package cannot strip PII because the row
|
|
31
|
+
* schema is determined by which dimensions/metrics the caller asked
|
|
32
|
+
* the analytics provider to return. If the persisted rows contain
|
|
33
|
+
* `userPseudoId`, `clientId`, IP-derived geolocation, or any other
|
|
34
|
+
* identifier, those fields WILL reach the AI provider. The forwarding
|
|
35
|
+
* is pinned by a regression test in
|
|
36
|
+
* `__tests__/analytics-report-prompt.test.ts`. Callers must either
|
|
37
|
+
* exclude PII-bearing dimensions before persisting, apply a column
|
|
38
|
+
* allowlist at the call site, or override the prompt template via
|
|
39
|
+
* `PromptOverride` to redact rows.
|
|
40
|
+
*
|
|
41
|
+
* Acceptable variables (always safe): human-readable names, time periods,
|
|
42
|
+
* computed aggregates (row counts, totals), and high-level dimension/metric
|
|
43
|
+
* labels (which are public GA4/Plausible/Matomo schema names).
|
|
44
|
+
*/
|
|
45
|
+
import { type ResolvedPromptAI } from '@happyvertical/smrt-prompts';
|
|
2
46
|
/**
|
|
3
47
|
* `AnalyticsProperty.analyzePerformance()` prompt. Only the human-readable
|
|
4
48
|
* display name, provider label, and the requested period reach the model;
|
|
5
49
|
* provider IDs, API secrets, and the providerMetadata blob are excluded.
|
|
6
50
|
*/
|
|
7
|
-
export declare const smrtAnalyticsAnalyzePerformancePrompt: import(
|
|
51
|
+
export declare const smrtAnalyticsAnalyzePerformancePrompt: import("@happyvertical/smrt-prompts").PromptDefinition;
|
|
8
52
|
/**
|
|
9
53
|
* `AnalyticsReport.analyzeResults()` prompt. Surfaces report name, the
|
|
10
54
|
* dimension/metric labels (which are public GA4/Plausible/Matomo schema
|
|
@@ -27,7 +71,7 @@ export declare const smrtAnalyticsAnalyzePerformancePrompt: import('@happyvertic
|
|
|
27
71
|
* The forwarding contract is pinned by a regression test in
|
|
28
72
|
* `__tests__/analytics-report-prompt.test.ts`.
|
|
29
73
|
*/
|
|
30
|
-
export declare const smrtAnalyticsAnalyzeResultsPrompt: import(
|
|
74
|
+
export declare const smrtAnalyticsAnalyzeResultsPrompt: import("@happyvertical/smrt-prompts").PromptDefinition;
|
|
31
75
|
/**
|
|
32
76
|
* `AnalyticsReport.hasPositiveTrends()` boolean classifier prompt. Same
|
|
33
77
|
* variables as `analyzeResults` minus the descriptive name — only the
|
|
@@ -43,7 +87,7 @@ export declare const smrtAnalyticsAnalyzeResultsPrompt: import('@happyvertical/s
|
|
|
43
87
|
* `false` despite a positive analysis. Tenants overriding this template
|
|
44
88
|
* MUST preserve the leading yes/no convention.
|
|
45
89
|
*/
|
|
46
|
-
export declare const smrtAnalyticsHasPositiveTrendsPrompt: import(
|
|
90
|
+
export declare const smrtAnalyticsHasPositiveTrendsPrompt: import("@happyvertical/smrt-prompts").PromptDefinition;
|
|
47
91
|
/**
|
|
48
92
|
* Build the message-options object passed to `aiClient.message()` from a
|
|
49
93
|
* `ResolvedPromptAI` shape. Mirrors the helper in `smrt-properties` and
|
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-analytics",
|
|
6
|
-
"packageVersion": "0.51.
|
|
6
|
+
"packageVersion": "0.51.34",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "e25f9251cadda7858c20b13ff44ee797ef896db7574e78ac429a17d62f05517f",
|
|
11
|
+
"packageJson": "60d47e75916a6939c618f562742e37dc49ba85c39fe52a19bce6c11ec790e86a",
|
|
12
12
|
"agents": "baaeb44320f95dc5dc86925318e791369681ad80acfbb82a0f667f2aed0e511c"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"fast-glob": "3.3.3",
|
|
33
33
|
"svelte-check": "^4.7.6",
|
|
34
34
|
"svelte": "^5.57.1",
|
|
35
|
-
"typescript": "
|
|
35
|
+
"typescript": "6.0.3",
|
|
36
36
|
"vite": "8.1.4",
|
|
37
37
|
"vitest": "4.1.10"
|
|
38
38
|
},
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Analytics Module UI Slot Declarations
|
|
3
|
+
*
|
|
4
|
+
* This file defines the UI extension points for the analytics module.
|
|
5
|
+
* UI components are implemented in the ./svelte subpath and auto-register
|
|
6
|
+
* with `ModuleUIRegistry` when that subpath is imported.
|
|
7
|
+
*
|
|
8
|
+
* @example Usage
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { ANALYTICS_MODULE_META } from '@happyvertical/smrt-analytics/ui';
|
|
11
|
+
* console.log(ANALYTICS_MODULE_META.uiSlots);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';
|
|
2
15
|
/**
|
|
3
16
|
* Analytics module UI slots
|
|
4
17
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-analytics",
|
|
3
|
-
"version": "0.51.
|
|
3
|
+
"version": "0.51.34",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Analytics integration models for SMRT framework",
|
|
6
6
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@happyvertical/smrt-core": "0.51.
|
|
37
|
-
"@happyvertical/smrt-prompts": "0.51.
|
|
38
|
-
"@happyvertical/smrt-tenancy": "0.51.
|
|
39
|
-
"@happyvertical/smrt-types": "0.51.
|
|
40
|
-
"@happyvertical/smrt-ui": "0.51.
|
|
36
|
+
"@happyvertical/smrt-core": "0.51.34",
|
|
37
|
+
"@happyvertical/smrt-prompts": "0.51.34",
|
|
38
|
+
"@happyvertical/smrt-tenancy": "0.51.34",
|
|
39
|
+
"@happyvertical/smrt-types": "0.51.34",
|
|
40
|
+
"@happyvertical/smrt-ui": "0.51.34"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"svelte": "^5.57.1"
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@happyvertical/smrt-vitest": "0.51.
|
|
51
|
+
"@happyvertical/smrt-vitest": "0.51.34",
|
|
52
52
|
"@happyvertical/sql": "^0.94.1",
|
|
53
53
|
"@sveltejs/package": "^2.5.8",
|
|
54
54
|
"@types/node": "24.13.6",
|
|
55
55
|
"fast-glob": "3.3.3",
|
|
56
56
|
"svelte-check": "^4.7.6",
|
|
57
57
|
"svelte": "^5.57.1",
|
|
58
|
-
"typescript": "
|
|
58
|
+
"typescript": "6.0.3",
|
|
59
59
|
"vite": "8.1.4",
|
|
60
60
|
"vitest": "4.1.10"
|
|
61
61
|
},
|