@happyvertical/smrt-analytics 0.49.3 → 0.49.4
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/index.js +1 -1
- package/dist/manifest.json +448 -33
- package/dist/smrt-knowledge.json +8 -8
- package/package.json +7 -7
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.49.3\",\"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_stream_collections\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_data_stream_collections\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"}},\"indexes\":[{\"name\":\"analytics_data_stream_collections_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"analytics_data_stream_collections_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"12ef5a9a\"}},\"@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_event_collections\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_event_collections\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"}},\"indexes\":[{\"name\":\"analytics_event_collections_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"analytics_event_collections_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"13d03b2a\"}},\"@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_property_collections\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_property_collections\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"}},\"indexes\":[{\"name\":\"analytics_property_collections_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"analytics_property_collections_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"a1c264b1\"}},\"@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_report_collections\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_report_collections\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"}},\"indexes\":[{\"name\":\"analytics_report_collections_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"analytics_report_collections_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"74445ee1\"}},\"@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},{\"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\"}},\"@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},{\"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\"}},\"@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},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"}},\"@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},{\"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\"}}},\"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.49.4\",\"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\"}},\"@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\"}},\"@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\"}},\"@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\"}},\"@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\"}},\"@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\"}},\"@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\"}},\"@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\"}}},\"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.49.
|
|
5
|
+
"packageVersion": "0.49.4",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection": {
|
|
8
8
|
"name": "analyticsdatastreamcollection",
|
|
@@ -144,8 +144,8 @@
|
|
|
144
144
|
"exportName": "AnalyticsDataStreamCollection",
|
|
145
145
|
"collectionExportName": "AnalyticsDataStreamCollectionCollection",
|
|
146
146
|
"schema": {
|
|
147
|
-
"tableName": "
|
|
148
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"
|
|
147
|
+
"tableName": "analytics_data_streams",
|
|
148
|
+
"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);",
|
|
149
149
|
"columns": {
|
|
150
150
|
"id": {
|
|
151
151
|
"type": "UUID",
|
|
@@ -162,6 +162,14 @@
|
|
|
162
162
|
"notNull": true,
|
|
163
163
|
"default": ""
|
|
164
164
|
},
|
|
165
|
+
"_meta_type": {
|
|
166
|
+
"type": "TEXT",
|
|
167
|
+
"notNull": true
|
|
168
|
+
},
|
|
169
|
+
"_meta_data": {
|
|
170
|
+
"type": "JSON",
|
|
171
|
+
"notNull": false
|
|
172
|
+
},
|
|
165
173
|
"created_at": {
|
|
166
174
|
"type": "TIMESTAMP",
|
|
167
175
|
"notNull": true,
|
|
@@ -171,25 +179,105 @@
|
|
|
171
179
|
"type": "TIMESTAMP",
|
|
172
180
|
"notNull": true,
|
|
173
181
|
"default": "current_timestamp"
|
|
182
|
+
},
|
|
183
|
+
"tenant_id": {
|
|
184
|
+
"type": "UUID",
|
|
185
|
+
"referenceKind": "tenantId",
|
|
186
|
+
"notNull": false
|
|
187
|
+
},
|
|
188
|
+
"property_id": {
|
|
189
|
+
"type": "UUID",
|
|
190
|
+
"referenceKind": "foreignKey",
|
|
191
|
+
"notNull": false,
|
|
192
|
+
"foreignKey": {
|
|
193
|
+
"table": "analytics_properties",
|
|
194
|
+
"column": "id",
|
|
195
|
+
"onDelete": "NO ACTION",
|
|
196
|
+
"onUpdate": "CASCADE"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"display_name": {
|
|
200
|
+
"type": "TEXT",
|
|
201
|
+
"notNull": false,
|
|
202
|
+
"default": ""
|
|
203
|
+
},
|
|
204
|
+
"stream_type": {
|
|
205
|
+
"type": "TEXT",
|
|
206
|
+
"notNull": false
|
|
207
|
+
},
|
|
208
|
+
"external_id": {
|
|
209
|
+
"type": "TEXT",
|
|
210
|
+
"notNull": false,
|
|
211
|
+
"default": ""
|
|
212
|
+
},
|
|
213
|
+
"measurement_id": {
|
|
214
|
+
"type": "TEXT",
|
|
215
|
+
"notNull": false,
|
|
216
|
+
"default": ""
|
|
217
|
+
},
|
|
218
|
+
"firebase_app_id": {
|
|
219
|
+
"type": "TEXT",
|
|
220
|
+
"notNull": false,
|
|
221
|
+
"default": ""
|
|
222
|
+
},
|
|
223
|
+
"default_uri": {
|
|
224
|
+
"type": "TEXT",
|
|
225
|
+
"notNull": false,
|
|
226
|
+
"default": ""
|
|
227
|
+
},
|
|
228
|
+
"bundle_id": {
|
|
229
|
+
"type": "TEXT",
|
|
230
|
+
"notNull": false,
|
|
231
|
+
"default": ""
|
|
232
|
+
},
|
|
233
|
+
"package_name": {
|
|
234
|
+
"type": "TEXT",
|
|
235
|
+
"notNull": false,
|
|
236
|
+
"default": ""
|
|
237
|
+
},
|
|
238
|
+
"status": {
|
|
239
|
+
"type": "TEXT",
|
|
240
|
+
"notNull": false
|
|
241
|
+
},
|
|
242
|
+
"enhanced_measurement": {
|
|
243
|
+
"type": "BOOLEAN",
|
|
244
|
+
"notNull": false,
|
|
245
|
+
"default": true
|
|
174
246
|
}
|
|
175
247
|
},
|
|
176
248
|
"indexes": [
|
|
177
249
|
{
|
|
178
|
-
"name": "
|
|
250
|
+
"name": "analytics_data_streams_slug_context_meta_type_idx",
|
|
179
251
|
"columns": [
|
|
252
|
+
"tenant_id",
|
|
180
253
|
"slug",
|
|
181
|
-
"context"
|
|
254
|
+
"context",
|
|
255
|
+
"_meta_type"
|
|
182
256
|
],
|
|
183
|
-
"unique": true
|
|
257
|
+
"unique": true,
|
|
258
|
+
"nullsNotDistinct": true
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"name": "analytics_data_streams_meta_type_idx",
|
|
262
|
+
"columns": [
|
|
263
|
+
"_meta_type"
|
|
264
|
+
]
|
|
184
265
|
},
|
|
185
266
|
{
|
|
186
|
-
"name": "
|
|
267
|
+
"name": "analytics_data_streams_tenant_id_created_at_idx",
|
|
187
268
|
"columns": [
|
|
269
|
+
"tenant_id",
|
|
188
270
|
"created_at"
|
|
189
271
|
]
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "analytics_data_streams_property_id_idx",
|
|
275
|
+
"columns": [
|
|
276
|
+
"property_id"
|
|
277
|
+
]
|
|
190
278
|
}
|
|
191
279
|
],
|
|
192
|
-
"version": "
|
|
280
|
+
"version": "851609ba"
|
|
193
281
|
}
|
|
194
282
|
},
|
|
195
283
|
"@happyvertical/smrt-analytics:AnalyticsEventCollection": {
|
|
@@ -455,8 +543,8 @@
|
|
|
455
543
|
"exportName": "AnalyticsEventCollection",
|
|
456
544
|
"collectionExportName": "AnalyticsEventCollectionCollection",
|
|
457
545
|
"schema": {
|
|
458
|
-
"tableName": "
|
|
459
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"
|
|
546
|
+
"tableName": "analytics_events",
|
|
547
|
+
"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);",
|
|
460
548
|
"columns": {
|
|
461
549
|
"id": {
|
|
462
550
|
"type": "UUID",
|
|
@@ -473,6 +561,14 @@
|
|
|
473
561
|
"notNull": true,
|
|
474
562
|
"default": ""
|
|
475
563
|
},
|
|
564
|
+
"_meta_type": {
|
|
565
|
+
"type": "TEXT",
|
|
566
|
+
"notNull": true
|
|
567
|
+
},
|
|
568
|
+
"_meta_data": {
|
|
569
|
+
"type": "JSON",
|
|
570
|
+
"notNull": false
|
|
571
|
+
},
|
|
476
572
|
"created_at": {
|
|
477
573
|
"type": "TIMESTAMP",
|
|
478
574
|
"notNull": true,
|
|
@@ -482,25 +578,129 @@
|
|
|
482
578
|
"type": "TIMESTAMP",
|
|
483
579
|
"notNull": true,
|
|
484
580
|
"default": "current_timestamp"
|
|
581
|
+
},
|
|
582
|
+
"tenant_id": {
|
|
583
|
+
"type": "UUID",
|
|
584
|
+
"referenceKind": "tenantId",
|
|
585
|
+
"notNull": false
|
|
586
|
+
},
|
|
587
|
+
"property_id": {
|
|
588
|
+
"type": "UUID",
|
|
589
|
+
"referenceKind": "foreignKey",
|
|
590
|
+
"notNull": false,
|
|
591
|
+
"foreignKey": {
|
|
592
|
+
"table": "analytics_properties",
|
|
593
|
+
"column": "id",
|
|
594
|
+
"onDelete": "NO ACTION",
|
|
595
|
+
"onUpdate": "CASCADE"
|
|
596
|
+
}
|
|
597
|
+
},
|
|
598
|
+
"event_name": {
|
|
599
|
+
"type": "TEXT",
|
|
600
|
+
"notNull": false,
|
|
601
|
+
"default": ""
|
|
602
|
+
},
|
|
603
|
+
"client_id": {
|
|
604
|
+
"type": "TEXT",
|
|
605
|
+
"notNull": false,
|
|
606
|
+
"default": ""
|
|
607
|
+
},
|
|
608
|
+
"user_id": {
|
|
609
|
+
"type": "TEXT",
|
|
610
|
+
"notNull": false,
|
|
611
|
+
"default": ""
|
|
612
|
+
},
|
|
613
|
+
"params": {
|
|
614
|
+
"type": "TEXT",
|
|
615
|
+
"notNull": false,
|
|
616
|
+
"default": "{}"
|
|
617
|
+
},
|
|
618
|
+
"event_timestamp": {
|
|
619
|
+
"type": "TIMESTAMP",
|
|
620
|
+
"notNull": false
|
|
621
|
+
},
|
|
622
|
+
"status": {
|
|
623
|
+
"type": "TEXT",
|
|
624
|
+
"notNull": false
|
|
625
|
+
},
|
|
626
|
+
"sent_at": {
|
|
627
|
+
"type": "TIMESTAMP",
|
|
628
|
+
"notNull": false
|
|
629
|
+
},
|
|
630
|
+
"error_message": {
|
|
631
|
+
"type": "TEXT",
|
|
632
|
+
"notNull": false,
|
|
633
|
+
"default": ""
|
|
634
|
+
},
|
|
635
|
+
"retry_count": {
|
|
636
|
+
"type": "INTEGER",
|
|
637
|
+
"notNull": false,
|
|
638
|
+
"default": 0
|
|
639
|
+
},
|
|
640
|
+
"non_personalized_ads": {
|
|
641
|
+
"type": "BOOLEAN",
|
|
642
|
+
"notNull": false,
|
|
643
|
+
"default": false
|
|
644
|
+
},
|
|
645
|
+
"session_id": {
|
|
646
|
+
"type": "TEXT",
|
|
647
|
+
"notNull": false,
|
|
648
|
+
"default": ""
|
|
649
|
+
},
|
|
650
|
+
"page_path": {
|
|
651
|
+
"type": "TEXT",
|
|
652
|
+
"notNull": false,
|
|
653
|
+
"default": ""
|
|
654
|
+
},
|
|
655
|
+
"page_title": {
|
|
656
|
+
"type": "TEXT",
|
|
657
|
+
"notNull": false,
|
|
658
|
+
"default": ""
|
|
659
|
+
},
|
|
660
|
+
"user_agent": {
|
|
661
|
+
"type": "TEXT",
|
|
662
|
+
"notNull": false,
|
|
663
|
+
"default": ""
|
|
664
|
+
},
|
|
665
|
+
"ip_address": {
|
|
666
|
+
"type": "TEXT",
|
|
667
|
+
"notNull": false,
|
|
668
|
+
"default": ""
|
|
485
669
|
}
|
|
486
670
|
},
|
|
487
671
|
"indexes": [
|
|
488
672
|
{
|
|
489
|
-
"name": "
|
|
673
|
+
"name": "analytics_events_slug_context_meta_type_idx",
|
|
490
674
|
"columns": [
|
|
675
|
+
"tenant_id",
|
|
491
676
|
"slug",
|
|
492
|
-
"context"
|
|
677
|
+
"context",
|
|
678
|
+
"_meta_type"
|
|
493
679
|
],
|
|
494
|
-
"unique": true
|
|
680
|
+
"unique": true,
|
|
681
|
+
"nullsNotDistinct": true
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"name": "analytics_events_meta_type_idx",
|
|
685
|
+
"columns": [
|
|
686
|
+
"_meta_type"
|
|
687
|
+
]
|
|
495
688
|
},
|
|
496
689
|
{
|
|
497
|
-
"name": "
|
|
690
|
+
"name": "analytics_events_tenant_id_created_at_idx",
|
|
498
691
|
"columns": [
|
|
692
|
+
"tenant_id",
|
|
499
693
|
"created_at"
|
|
500
694
|
]
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"name": "analytics_events_property_id_idx",
|
|
698
|
+
"columns": [
|
|
699
|
+
"property_id"
|
|
700
|
+
]
|
|
501
701
|
}
|
|
502
702
|
],
|
|
503
|
-
"version": "
|
|
703
|
+
"version": "bee09e1d"
|
|
504
704
|
}
|
|
505
705
|
},
|
|
506
706
|
"@happyvertical/smrt-analytics:AnalyticsPropertyCollection": {
|
|
@@ -640,8 +840,8 @@
|
|
|
640
840
|
"exportName": "AnalyticsPropertyCollection",
|
|
641
841
|
"collectionExportName": "AnalyticsPropertyCollectionCollection",
|
|
642
842
|
"schema": {
|
|
643
|
-
"tableName": "
|
|
644
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"
|
|
843
|
+
"tableName": "analytics_properties",
|
|
844
|
+
"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);",
|
|
645
845
|
"columns": {
|
|
646
846
|
"id": {
|
|
647
847
|
"type": "UUID",
|
|
@@ -658,6 +858,14 @@
|
|
|
658
858
|
"notNull": true,
|
|
659
859
|
"default": ""
|
|
660
860
|
},
|
|
861
|
+
"_meta_type": {
|
|
862
|
+
"type": "TEXT",
|
|
863
|
+
"notNull": true
|
|
864
|
+
},
|
|
865
|
+
"_meta_data": {
|
|
866
|
+
"type": "JSON",
|
|
867
|
+
"notNull": false
|
|
868
|
+
},
|
|
661
869
|
"created_at": {
|
|
662
870
|
"type": "TIMESTAMP",
|
|
663
871
|
"notNull": true,
|
|
@@ -667,25 +875,107 @@
|
|
|
667
875
|
"type": "TIMESTAMP",
|
|
668
876
|
"notNull": true,
|
|
669
877
|
"default": "current_timestamp"
|
|
878
|
+
},
|
|
879
|
+
"tenant_id": {
|
|
880
|
+
"type": "UUID",
|
|
881
|
+
"referenceKind": "tenantId",
|
|
882
|
+
"notNull": false
|
|
883
|
+
},
|
|
884
|
+
"name": {
|
|
885
|
+
"type": "TEXT",
|
|
886
|
+
"notNull": false,
|
|
887
|
+
"default": ""
|
|
888
|
+
},
|
|
889
|
+
"display_name": {
|
|
890
|
+
"type": "TEXT",
|
|
891
|
+
"notNull": false,
|
|
892
|
+
"default": ""
|
|
893
|
+
},
|
|
894
|
+
"provider": {
|
|
895
|
+
"type": "TEXT",
|
|
896
|
+
"notNull": false
|
|
897
|
+
},
|
|
898
|
+
"external_id": {
|
|
899
|
+
"type": "TEXT",
|
|
900
|
+
"notNull": false,
|
|
901
|
+
"default": ""
|
|
902
|
+
},
|
|
903
|
+
"measurement_id": {
|
|
904
|
+
"type": "TEXT",
|
|
905
|
+
"notNull": false,
|
|
906
|
+
"default": ""
|
|
907
|
+
},
|
|
908
|
+
"api_secret": {
|
|
909
|
+
"type": "TEXT",
|
|
910
|
+
"notNull": false,
|
|
911
|
+
"default": ""
|
|
912
|
+
},
|
|
913
|
+
"site_domain": {
|
|
914
|
+
"type": "TEXT",
|
|
915
|
+
"notNull": false,
|
|
916
|
+
"default": ""
|
|
917
|
+
},
|
|
918
|
+
"time_zone": {
|
|
919
|
+
"type": "TEXT",
|
|
920
|
+
"notNull": false,
|
|
921
|
+
"default": "America/Los_Angeles"
|
|
922
|
+
},
|
|
923
|
+
"currency_code": {
|
|
924
|
+
"type": "TEXT",
|
|
925
|
+
"notNull": false,
|
|
926
|
+
"default": "USD"
|
|
927
|
+
},
|
|
928
|
+
"industry_category": {
|
|
929
|
+
"type": "TEXT",
|
|
930
|
+
"notNull": false,
|
|
931
|
+
"default": ""
|
|
932
|
+
},
|
|
933
|
+
"service_level": {
|
|
934
|
+
"type": "TEXT",
|
|
935
|
+
"notNull": false,
|
|
936
|
+
"default": "STANDARD"
|
|
937
|
+
},
|
|
938
|
+
"status": {
|
|
939
|
+
"type": "TEXT",
|
|
940
|
+
"notNull": false
|
|
941
|
+
},
|
|
942
|
+
"last_sync_at": {
|
|
943
|
+
"type": "TIMESTAMP",
|
|
944
|
+
"notNull": false
|
|
945
|
+
},
|
|
946
|
+
"provider_metadata": {
|
|
947
|
+
"type": "TEXT",
|
|
948
|
+
"notNull": false,
|
|
949
|
+
"default": "{}"
|
|
670
950
|
}
|
|
671
951
|
},
|
|
672
952
|
"indexes": [
|
|
673
953
|
{
|
|
674
|
-
"name": "
|
|
954
|
+
"name": "analytics_properties_slug_context_meta_type_idx",
|
|
675
955
|
"columns": [
|
|
956
|
+
"tenant_id",
|
|
676
957
|
"slug",
|
|
677
|
-
"context"
|
|
958
|
+
"context",
|
|
959
|
+
"_meta_type"
|
|
678
960
|
],
|
|
679
|
-
"unique": true
|
|
961
|
+
"unique": true,
|
|
962
|
+
"nullsNotDistinct": true
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"name": "analytics_properties_meta_type_idx",
|
|
966
|
+
"columns": [
|
|
967
|
+
"_meta_type"
|
|
968
|
+
]
|
|
680
969
|
},
|
|
681
970
|
{
|
|
682
|
-
"name": "
|
|
971
|
+
"name": "analytics_properties_tenant_id_created_at_idx",
|
|
683
972
|
"columns": [
|
|
973
|
+
"tenant_id",
|
|
684
974
|
"created_at"
|
|
685
975
|
]
|
|
686
976
|
}
|
|
687
977
|
],
|
|
688
|
-
"version": "
|
|
978
|
+
"version": "f38a20b9"
|
|
689
979
|
}
|
|
690
980
|
},
|
|
691
981
|
"@happyvertical/smrt-analytics:AnalyticsReportCollection": {
|
|
@@ -827,8 +1117,8 @@
|
|
|
827
1117
|
"exportName": "AnalyticsReportCollection",
|
|
828
1118
|
"collectionExportName": "AnalyticsReportCollectionCollection",
|
|
829
1119
|
"schema": {
|
|
830
|
-
"tableName": "
|
|
831
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"
|
|
1120
|
+
"tableName": "analytics_reports",
|
|
1121
|
+
"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);",
|
|
832
1122
|
"columns": {
|
|
833
1123
|
"id": {
|
|
834
1124
|
"type": "UUID",
|
|
@@ -845,6 +1135,14 @@
|
|
|
845
1135
|
"notNull": true,
|
|
846
1136
|
"default": ""
|
|
847
1137
|
},
|
|
1138
|
+
"_meta_type": {
|
|
1139
|
+
"type": "TEXT",
|
|
1140
|
+
"notNull": true
|
|
1141
|
+
},
|
|
1142
|
+
"_meta_data": {
|
|
1143
|
+
"type": "JSON",
|
|
1144
|
+
"notNull": false
|
|
1145
|
+
},
|
|
848
1146
|
"created_at": {
|
|
849
1147
|
"type": "TIMESTAMP",
|
|
850
1148
|
"notNull": true,
|
|
@@ -854,25 +1152,138 @@
|
|
|
854
1152
|
"type": "TIMESTAMP",
|
|
855
1153
|
"notNull": true,
|
|
856
1154
|
"default": "current_timestamp"
|
|
1155
|
+
},
|
|
1156
|
+
"tenant_id": {
|
|
1157
|
+
"type": "UUID",
|
|
1158
|
+
"referenceKind": "tenantId",
|
|
1159
|
+
"notNull": false
|
|
1160
|
+
},
|
|
1161
|
+
"property_id": {
|
|
1162
|
+
"type": "UUID",
|
|
1163
|
+
"referenceKind": "foreignKey",
|
|
1164
|
+
"notNull": false,
|
|
1165
|
+
"foreignKey": {
|
|
1166
|
+
"table": "analytics_properties",
|
|
1167
|
+
"column": "id",
|
|
1168
|
+
"onDelete": "NO ACTION",
|
|
1169
|
+
"onUpdate": "CASCADE"
|
|
1170
|
+
}
|
|
1171
|
+
},
|
|
1172
|
+
"name": {
|
|
1173
|
+
"type": "TEXT",
|
|
1174
|
+
"notNull": false,
|
|
1175
|
+
"default": ""
|
|
1176
|
+
},
|
|
1177
|
+
"description": {
|
|
1178
|
+
"type": "TEXT",
|
|
1179
|
+
"notNull": false,
|
|
1180
|
+
"default": ""
|
|
1181
|
+
},
|
|
1182
|
+
"dimensions": {
|
|
1183
|
+
"type": "TEXT",
|
|
1184
|
+
"notNull": false,
|
|
1185
|
+
"default": "[]"
|
|
1186
|
+
},
|
|
1187
|
+
"metrics": {
|
|
1188
|
+
"type": "TEXT",
|
|
1189
|
+
"notNull": false,
|
|
1190
|
+
"default": "[]"
|
|
1191
|
+
},
|
|
1192
|
+
"date_range_start": {
|
|
1193
|
+
"type": "TEXT",
|
|
1194
|
+
"notNull": false,
|
|
1195
|
+
"default": "7daysAgo"
|
|
1196
|
+
},
|
|
1197
|
+
"date_range_end": {
|
|
1198
|
+
"type": "TEXT",
|
|
1199
|
+
"notNull": false,
|
|
1200
|
+
"default": "today"
|
|
1201
|
+
},
|
|
1202
|
+
"dimension_filter": {
|
|
1203
|
+
"type": "TEXT",
|
|
1204
|
+
"notNull": false,
|
|
1205
|
+
"default": ""
|
|
1206
|
+
},
|
|
1207
|
+
"metric_filter": {
|
|
1208
|
+
"type": "TEXT",
|
|
1209
|
+
"notNull": false,
|
|
1210
|
+
"default": ""
|
|
1211
|
+
},
|
|
1212
|
+
"order_by": {
|
|
1213
|
+
"type": "TEXT",
|
|
1214
|
+
"notNull": false,
|
|
1215
|
+
"default": "[]"
|
|
1216
|
+
},
|
|
1217
|
+
"max_results": {
|
|
1218
|
+
"type": "INTEGER",
|
|
1219
|
+
"notNull": false,
|
|
1220
|
+
"default": 0
|
|
1221
|
+
},
|
|
1222
|
+
"status": {
|
|
1223
|
+
"type": "TEXT",
|
|
1224
|
+
"notNull": false
|
|
1225
|
+
},
|
|
1226
|
+
"frequency": {
|
|
1227
|
+
"type": "TEXT",
|
|
1228
|
+
"notNull": false
|
|
1229
|
+
},
|
|
1230
|
+
"last_run_at": {
|
|
1231
|
+
"type": "TIMESTAMP",
|
|
1232
|
+
"notNull": false
|
|
1233
|
+
},
|
|
1234
|
+
"next_run_at": {
|
|
1235
|
+
"type": "TIMESTAMP",
|
|
1236
|
+
"notNull": false
|
|
1237
|
+
},
|
|
1238
|
+
"result_data": {
|
|
1239
|
+
"type": "TEXT",
|
|
1240
|
+
"notNull": false,
|
|
1241
|
+
"default": ""
|
|
1242
|
+
},
|
|
1243
|
+
"row_count": {
|
|
1244
|
+
"type": "INTEGER",
|
|
1245
|
+
"notNull": false,
|
|
1246
|
+
"default": 0
|
|
1247
|
+
},
|
|
1248
|
+
"last_error": {
|
|
1249
|
+
"type": "TEXT",
|
|
1250
|
+
"notNull": false,
|
|
1251
|
+
"default": ""
|
|
857
1252
|
}
|
|
858
1253
|
},
|
|
859
1254
|
"indexes": [
|
|
860
1255
|
{
|
|
861
|
-
"name": "
|
|
1256
|
+
"name": "analytics_reports_slug_context_meta_type_idx",
|
|
862
1257
|
"columns": [
|
|
1258
|
+
"tenant_id",
|
|
863
1259
|
"slug",
|
|
864
|
-
"context"
|
|
1260
|
+
"context",
|
|
1261
|
+
"_meta_type"
|
|
865
1262
|
],
|
|
866
|
-
"unique": true
|
|
1263
|
+
"unique": true,
|
|
1264
|
+
"nullsNotDistinct": true
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
"name": "analytics_reports_meta_type_idx",
|
|
1268
|
+
"columns": [
|
|
1269
|
+
"_meta_type"
|
|
1270
|
+
]
|
|
867
1271
|
},
|
|
868
1272
|
{
|
|
869
|
-
"name": "
|
|
1273
|
+
"name": "analytics_reports_tenant_id_created_at_idx",
|
|
870
1274
|
"columns": [
|
|
1275
|
+
"tenant_id",
|
|
871
1276
|
"created_at"
|
|
872
1277
|
]
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
"name": "analytics_reports_property_id_idx",
|
|
1281
|
+
"columns": [
|
|
1282
|
+
"property_id"
|
|
1283
|
+
]
|
|
873
1284
|
}
|
|
874
1285
|
],
|
|
875
|
-
"version": "
|
|
1286
|
+
"version": "22ce0f1c"
|
|
876
1287
|
}
|
|
877
1288
|
},
|
|
878
1289
|
"@happyvertical/smrt-analytics:AnalyticsDataStream": {
|
|
@@ -1148,7 +1559,8 @@
|
|
|
1148
1559
|
"context",
|
|
1149
1560
|
"_meta_type"
|
|
1150
1561
|
],
|
|
1151
|
-
"unique": true
|
|
1562
|
+
"unique": true,
|
|
1563
|
+
"nullsNotDistinct": true
|
|
1152
1564
|
},
|
|
1153
1565
|
{
|
|
1154
1566
|
"name": "analytics_data_streams_meta_type_idx",
|
|
@@ -1574,7 +1986,8 @@
|
|
|
1574
1986
|
"context",
|
|
1575
1987
|
"_meta_type"
|
|
1576
1988
|
],
|
|
1577
|
-
"unique": true
|
|
1989
|
+
"unique": true,
|
|
1990
|
+
"nullsNotDistinct": true
|
|
1578
1991
|
},
|
|
1579
1992
|
{
|
|
1580
1993
|
"name": "analytics_events_meta_type_idx",
|
|
@@ -1943,7 +2356,8 @@
|
|
|
1943
2356
|
"context",
|
|
1944
2357
|
"_meta_type"
|
|
1945
2358
|
],
|
|
1946
|
-
"unique": true
|
|
2359
|
+
"unique": true,
|
|
2360
|
+
"nullsNotDistinct": true
|
|
1947
2361
|
},
|
|
1948
2362
|
{
|
|
1949
2363
|
"name": "analytics_properties_meta_type_idx",
|
|
@@ -2410,7 +2824,8 @@
|
|
|
2410
2824
|
"context",
|
|
2411
2825
|
"_meta_type"
|
|
2412
2826
|
],
|
|
2413
|
-
"unique": true
|
|
2827
|
+
"unique": true,
|
|
2828
|
+
"nullsNotDistinct": true
|
|
2414
2829
|
},
|
|
2415
2830
|
{
|
|
2416
2831
|
"name": "analytics_reports_meta_type_idx",
|
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.49.
|
|
6
|
+
"packageVersion": "0.49.4",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "6facab31fd42726bbbe7d236717577e8fd71a89486f7b7e22baa30e08cf9131b",
|
|
11
|
+
"packageJson": "e63881095f2dad6b2e5e81e30ba08acec944c45f10050e1c1583d5990ac0c7e2",
|
|
12
12
|
"agents": "baaeb44320f95dc5dc86925318e791369681ad80acfbb82a0f667f2aed0e511c"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"name": "AnalyticsDataStreamCollection",
|
|
55
55
|
"qualifiedName": "@happyvertical/smrt-analytics:AnalyticsDataStreamCollection",
|
|
56
56
|
"collection": "analyticsdatastreams",
|
|
57
|
-
"tableName": "
|
|
57
|
+
"tableName": "analytics_data_streams",
|
|
58
58
|
"packageName": "@happyvertical/smrt-analytics",
|
|
59
59
|
"extends": "SmrtCollection",
|
|
60
60
|
"fields": [],
|
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
"name": "AnalyticsEventCollection",
|
|
380
380
|
"qualifiedName": "@happyvertical/smrt-analytics:AnalyticsEventCollection",
|
|
381
381
|
"collection": "analyticsevents",
|
|
382
|
-
"tableName": "
|
|
382
|
+
"tableName": "analytics_events",
|
|
383
383
|
"packageName": "@happyvertical/smrt-analytics",
|
|
384
384
|
"extends": "SmrtCollection",
|
|
385
385
|
"fields": [],
|
|
@@ -889,7 +889,7 @@
|
|
|
889
889
|
"name": "AnalyticsPropertyCollection",
|
|
890
890
|
"qualifiedName": "@happyvertical/smrt-analytics:AnalyticsPropertyCollection",
|
|
891
891
|
"collection": "analyticsproperties",
|
|
892
|
-
"tableName": "
|
|
892
|
+
"tableName": "analytics_properties",
|
|
893
893
|
"packageName": "@happyvertical/smrt-analytics",
|
|
894
894
|
"extends": "SmrtCollection",
|
|
895
895
|
"fields": [],
|
|
@@ -1189,7 +1189,7 @@
|
|
|
1189
1189
|
"name": "AnalyticsReportCollection",
|
|
1190
1190
|
"qualifiedName": "@happyvertical/smrt-analytics:AnalyticsReportCollection",
|
|
1191
1191
|
"collection": "analyticsreports",
|
|
1192
|
-
"tableName": "
|
|
1192
|
+
"tableName": "analytics_reports",
|
|
1193
1193
|
"packageName": "@happyvertical/smrt-analytics",
|
|
1194
1194
|
"extends": "SmrtCollection",
|
|
1195
1195
|
"fields": [],
|
|
@@ -4613,7 +4613,7 @@
|
|
|
4613
4613
|
"junctionCollections": 0,
|
|
4614
4614
|
"hierarchicalObjects": 0,
|
|
4615
4615
|
"polymorphicAssociations": 0,
|
|
4616
|
-
"uuidColumns":
|
|
4616
|
+
"uuidColumns": 22
|
|
4617
4617
|
},
|
|
4618
4618
|
"agentDoc": "# @happyvertical/smrt-analytics\n\nGA4/Plausible/Matomo analytics integration with server-side event tracking and AI-powered reporting.\n\n## Models\n\n- **AnalyticsProperty**: GA4 property, Plausible site, or Matomo site. Provider metadata, status, sync timestamps.\n- **AnalyticsDataStream**: web/iOS/Android data streams. Measurement IDs (G-XXXXXX for GA4, Firebase app ID for mobile).\n- **AnalyticsEvent**: tracked events with params (JSON), retry queue, conversion classification.\n- **AnalyticsReport**: saved report configs with dimensions/metrics (JSON), scheduling (daily/weekly/monthly), result caching.\n\nAll models use STI (`tableStrategy: 'sti'`).\n\nAll four persisted models are `@TenantScoped({ mode: 'optional' })` with a nullable `tenantId` (#1410), matching the framework convention used by sibling domain packages (ads/jobs/commerce). **When a tenant context is active**, the interceptor auto-filters `list`/`get`/raw reads and binds `create`/`save` writes to that tenant, keeping one tenant's properties, data streams, events (end-user PII), and cached report rows from reaching another. Because the mode is `optional`, the interceptor intentionally passes **through unfiltered when no tenant context is established** — so a surface is only safe insofar as it establishes tenant context first. Generated SvelteKit routes do this (#1540); the CLI/MCP code paths do not yet, which is a known framework-level residual (fail-closed tenant context for CLI/MCP) tracked outside this package, not an analytics-specific gap.\n\n## Key Collection Methods\n\n`findByExternalId()`, `findByProvider()`, `findNeedingSync()`, `findGA4Properties()`, `findPlausibleSites()`, `findMatomoSites()`\n\n## AI Operations\n\n`analyzePerformance()`, `analyzeResults()`, `hasPositiveTrends()` route through registered prompts (see Prompt Registry below) so tenant overrides apply via `resolvePrompt()`. `isPerformingWell()` still uses the inline `is()` shortcut.\n\n## Prompt Registry\n\nThree prompts are registered at module-load time via `definePrompt()` from `@happyvertical/smrt-prompts`. Re-exported from the package root for tenant override targeting.\n\n| Key | Method | Variables (PII-conscious) |\n|-----|--------|---------------------------|\n| `smrtAnalytics.property.analyzePerformance` | `AnalyticsProperty.analyzePerformance()` | `period`, `propertyDisplayName`, `propertyProvider` |\n| `smrtAnalytics.report.analyzeResults` | `AnalyticsReport.analyzeResults()` | `reportName`, `reportDimensions`, `reportMetrics`, `dateRangeStart`, `dateRangeEnd`, `rowCount`, `reportData` |\n| `smrtAnalytics.report.hasPositiveTrends` | `AnalyticsReport.hasPositiveTrends()` | `reportMetrics`, `reportData` |\n\n**Excluded from variables (never reach the AI provider):**\n- `id`, `propertyId`, `tenantId`, `externalId` — internal foreign keys / UUIDs that link to identifying records.\n- `apiSecret`, `measurementId`, `siteDomain` — provider credentials and platform-specific identifiers (GA4 API secrets, Matomo `idSite`, custom `G-XXXX` measurement IDs).\n- `providerMetadata` — extensible JSON blob that may contain credentials, account IDs, or other configuration secrets.\n- `lastError`, raw `dimensionFilter` / `metricFilter` JSON — internal error strings (may contain auth tokens) and filter expressions that may reference cookie IDs, user-pseudo-IDs, or IP-derived geos.\n\n**`resultData` is forwarded verbatim.** This package does not — and cannot — strip PII from result rows, because the row schema is determined by the dimensions/metrics the caller asked the analytics provider to return. If the caller persists rows containing a `userPseudoId`, `clientId`, IP-derived geolocation, or any other identifier, those fields WILL reach the AI provider. Callers must:\n\n- exclude PII-bearing dimensions before persisting `resultData` (e.g. don't request `userPseudoId` as a GA4 dimension), or\n- apply a column allowlist at the call site before invoking `analyzeResults()`, or\n- override the prompt template via `PromptOverride` to redact rows.\n\nThe forwarding contract is pinned by a regression test in `src/__tests__/analytics-report-prompt.test.ts`.\n\nSee `src/prompts.ts` for the full rationale block.\n\n## UI Registry\n\nSvelte components live in `src/svelte/` and auto-register with `ModuleUIRegistry` from `@happyvertical/smrt-ui/registry` when `@happyvertical/smrt-analytics/svelte` is imported.\n\nSlot declarations live in `src/ui.ts`, exported via the `./ui` package subpath. The slots are: `analytics-summary`, `events-table`, `property-info`, `property-status-badge`, `stat-card`, `trend-badge` (see `ANALYTICS_UI_SLOTS` for icons / categories / display order).\n\n```typescript\nimport '@happyvertical/smrt-analytics/svelte'; // side-effect: registers slots\nimport { ModuleUIRegistry } from '@happyvertical/smrt-ui/registry';\nconst StatCard = ModuleUIRegistry.get('@happyvertical/smrt-analytics', 'stat-card');\n```\n\n## Gotchas\n\n- **`apiSecret` / `providerMetadata` stripped from API/MCP**: marked `@field({ sensitive: true })` (#1540) so they never appear in generated responses or `where` filters. They are still stored at rest **unencrypted** — envelope encryption via `@happyvertical/smrt-secrets` is a separate, breaking follow-up (tracked, not done here).\n- **Event retry at model level**: no background job integration\n- **JSON fields**: params, dimensions, metrics use string storage with getter/setter helpers\n- **Measurement IDs differ per platform**: G-XXXXXX (GA4 web) vs Firebase app ID (mobile)\n- **`analyzeResults` is now a single AI call**: previously issued a second freeform `do()` to summarize \"top 3 insights\"; folded into the registered template, and `insights` mirrors `analysis` in the response shape.\n"
|
|
4619
4619
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-analytics",
|
|
3
|
-
"version": "0.49.
|
|
3
|
+
"version": "0.49.4",
|
|
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.49.
|
|
37
|
-
"@happyvertical/smrt-prompts": "0.49.
|
|
38
|
-
"@happyvertical/smrt-tenancy": "0.49.
|
|
39
|
-
"@happyvertical/smrt-types": "0.49.
|
|
40
|
-
"@happyvertical/smrt-ui": "0.49.
|
|
36
|
+
"@happyvertical/smrt-core": "0.49.4",
|
|
37
|
+
"@happyvertical/smrt-prompts": "0.49.4",
|
|
38
|
+
"@happyvertical/smrt-tenancy": "0.49.4",
|
|
39
|
+
"@happyvertical/smrt-types": "0.49.4",
|
|
40
|
+
"@happyvertical/smrt-ui": "0.49.4"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"svelte": "^5.56.4"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@happyvertical/smrt-vitest": "0.49.
|
|
51
|
+
"@happyvertical/smrt-vitest": "0.49.4",
|
|
52
52
|
"@happyvertical/sql": "^0.89.6",
|
|
53
53
|
"@sveltejs/package": "^2.5.8",
|
|
54
54
|
"@types/node": "24.13.2",
|