@happyvertical/smrt-analytics 0.55.7 → 0.55.8
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/AGENTS.md +29 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -78
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +254 -26
- package/dist/models/AnalyticsProperty.d.ts.map +1 -1
- package/dist/models/AnalyticsReport.d.ts.map +1 -1
- package/dist/recipes.d.ts +98 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +191 -27
- package/package.json +9 -8
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ObjectRegistry, SmrtCollection, SmrtObject, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
1
|
+
import { ObjectRegistry, SmrtCollection, SmrtObject, SmrtRecipe, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
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.55.7","objects":{"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection":{"name":"analyticsdatastreamcollection","className":"AnalyticsDataStreamCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection","collection":"analyticsdatastreams","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findByExternalId":{"name":"findByExternalId","async":true,"parameters":[{"name":"externalId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream | null>","isStatic":false,"isPublic":true},"findByMeasurementId":{"name":"findByMeasurementId","async":true,"parameters":[{"name":"measurementId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream | null>","isStatic":false,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"streamType","type":"DataStreamType","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findWebStreams":{"name":"findWebStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findIOSStreams":{"name":"findIOSStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findAndroidStreams":{"name":"findAndroidStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findMobileStreams":{"name":"findMobileStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"DataStreamStatus","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findActive":{"name":"findActive","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findActiveByProperty":{"name":"findActiveByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsDataStream","exportName":"AnalyticsDataStreamCollection","collectionExportName":"AnalyticsDataStreamCollectionCollection","schema":{"tableName":"analytics_data_streams","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_data_streams\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"stream_type\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"firebase_app_id\\" TEXT DEFAULT '',\\n \\"default_uri\\" TEXT DEFAULT '',\\n \\"bundle_id\\" TEXT DEFAULT '',\\n \\"package_name\\" TEXT DEFAULT '',\\n \\"status\\" TEXT,\\n \\"enhanced_measurement\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"display_name":{"type":"TEXT","notNull":false,"default":""},"stream_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"firebase_app_id":{"type":"TEXT","notNull":false,"default":""},"default_uri":{"type":"TEXT","notNull":false,"default":""},"bundle_id":{"type":"TEXT","notNull":false,"default":""},"package_name":{"type":"TEXT","notNull":false,"default":""},"status":{"type":"TEXT","notNull":false},"enhanced_measurement":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"analytics_data_streams_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_data_streams_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_data_streams_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_data_streams_property_id_idx","columns":["property_id"]}],"version":"851609ba"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsEventCollection":{"name":"analyticseventcollection","className":"AnalyticsEventCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsEventCollection","collection":"analyticsevents","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByEventName":{"name":"findByEventName","async":true,"parameters":[{"name":"eventName","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByClientId":{"name":"findByClientId","async":true,"parameters":[{"name":"clientId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByUserId":{"name":"findByUserId","async":true,"parameters":[{"name":"userId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"TrackingEventStatus","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPending":{"name":"findPending","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findSent":{"name":"findSent","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findFailed":{"name":"findFailed","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findForRetry":{"name":"findForRetry","async":true,"parameters":[{"name":"maxRetries","type":"number","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPendingByProperty":{"name":"findPendingByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByDateRange":{"name":"findByDateRange","async":true,"parameters":[{"name":"startDate","type":"Date","optional":false},{"name":"endDate","type":"Date","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findConversions":{"name":"findConversions","async":true,"parameters":[{"name":"propertyId","type":"string","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPageviews":{"name":"findPageviews","async":true,"parameters":[{"name":"propertyId","type":"string","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"countByEventName":{"name":"countByEventName","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<Map<string, number>>","isStatic":false,"isPublic":true},"getPropertyStats":{"name":"getPropertyStats","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"getPropertyStatsWithTrend":{"name":"getPropertyStatsWithTrend","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false},{"name":"now","type":"Date","optional":true},{"name":"timeZone","type":"string","optional":true,"default":"UTC"}],"returnType":"Promise<PropertyStatsWithTrend>","isStatic":false,"isPublic":true},"getBatchPropertyStats":{"name":"getBatchPropertyStats","async":true,"parameters":[{"name":"propertyIds","type":"string[]","optional":false},{"name":"now","type":"Date","optional":true},{"name":"timeZone","type":"string","optional":true,"default":"UTC"}],"returnType":"Promise<Map<string, PropertyStatsWithTrend>>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsEvent","exportName":"AnalyticsEventCollection","collectionExportName":"AnalyticsEventCollectionCollection","schema":{"tableName":"analytics_events","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"event_name\\" TEXT DEFAULT '',\\n \\"client_id\\" TEXT DEFAULT '',\\n \\"user_id\\" TEXT DEFAULT '',\\n \\"params\\" TEXT DEFAULT '{}',\\n \\"event_timestamp\\" TIMESTAMP,\\n \\"status\\" TEXT,\\n \\"sent_at\\" TIMESTAMP,\\n \\"error_message\\" TEXT DEFAULT '',\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"non_personalized_ads\\" BOOLEAN DEFAULT FALSE,\\n \\"session_id\\" TEXT DEFAULT '',\\n \\"page_path\\" TEXT DEFAULT '',\\n \\"page_title\\" TEXT DEFAULT '',\\n \\"user_agent\\" TEXT DEFAULT '',\\n \\"ip_address\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"event_name":{"type":"TEXT","notNull":false,"default":""},"client_id":{"type":"TEXT","notNull":false,"default":""},"user_id":{"type":"TEXT","notNull":false,"default":""},"params":{"type":"TEXT","notNull":false,"default":"{}"},"event_timestamp":{"type":"TIMESTAMP","notNull":false},"status":{"type":"TEXT","notNull":false},"sent_at":{"type":"TIMESTAMP","notNull":false},"error_message":{"type":"TEXT","notNull":false,"default":""},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"non_personalized_ads":{"type":"BOOLEAN","notNull":false,"default":false},"session_id":{"type":"TEXT","notNull":false,"default":""},"page_path":{"type":"TEXT","notNull":false,"default":""},"page_title":{"type":"TEXT","notNull":false,"default":""},"user_agent":{"type":"TEXT","notNull":false,"default":""},"ip_address":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_events_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_events_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_events_property_id_idx","columns":["property_id"]}],"version":"bee09e1d"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsPropertyCollection":{"name":"analyticspropertycollection","className":"AnalyticsPropertyCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsPropertyCollection","collection":"analyticsproperties","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByExternalId":{"name":"findByExternalId","async":true,"parameters":[{"name":"externalId","type":"string","optional":false}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findByMeasurementId":{"name":"findByMeasurementId","async":true,"parameters":[{"name":"measurementId","type":"string","optional":false}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findBySiteDomain":{"name":"findBySiteDomain","async":true,"parameters":[{"name":"siteDomain","type":"string","optional":false},{"name":"provider","type":"AnalyticsProvider","optional":true}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findByProvider":{"name":"findByProvider","async":true,"parameters":[{"name":"provider","type":"AnalyticsProvider","optional":false}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findGA4Properties":{"name":"findGA4Properties","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findPlausibleSites":{"name":"findPlausibleSites","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findMatomoSites":{"name":"findMatomoSites","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"AnalyticsPropertyStatus","optional":false}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findActive":{"name":"findActive","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findNeedingSync":{"name":"findNeedingSync","async":true,"parameters":[{"name":"hoursAgo","type":"number","optional":true}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsProperty","exportName":"AnalyticsPropertyCollection","collectionExportName":"AnalyticsPropertyCollectionCollection","schema":{"tableName":"analytics_properties","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_properties\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"provider\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"api_secret\\" TEXT DEFAULT '',\\n \\"site_domain\\" TEXT DEFAULT '',\\n \\"time_zone\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\"currency_code\\" TEXT DEFAULT 'USD',\\n \\"industry_category\\" TEXT DEFAULT '',\\n \\"service_level\\" TEXT DEFAULT 'STANDARD',\\n \\"status\\" TEXT,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"provider_metadata\\" TEXT DEFAULT '{}'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"display_name":{"type":"TEXT","notNull":false,"default":""},"provider":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"api_secret":{"type":"TEXT","notNull":false,"default":""},"site_domain":{"type":"TEXT","notNull":false,"default":""},"time_zone":{"type":"TEXT","notNull":false,"default":"America/Los_Angeles"},"currency_code":{"type":"TEXT","notNull":false,"default":"USD"},"industry_category":{"type":"TEXT","notNull":false,"default":""},"service_level":{"type":"TEXT","notNull":false,"default":"STANDARD"},"status":{"type":"TEXT","notNull":false},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"provider_metadata":{"type":"TEXT","notNull":false,"default":"{}"}},"indexes":[{"name":"analytics_properties_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_properties_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_properties_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"f38a20b9"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsReportCollection":{"name":"analyticsreportcollection","className":"AnalyticsReportCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsReportCollection","collection":"analyticsreports","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"ReportStatus","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findDrafts":{"name":"findDrafts","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findScheduled":{"name":"findScheduled","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findCompleted":{"name":"findCompleted","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findFailed":{"name":"findFailed","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByFrequency":{"name":"findByFrequency","async":true,"parameters":[{"name":"frequency","type":"ReportFrequency","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findRecurring":{"name":"findRecurring","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findDue":{"name":"findDue","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByPropertyAndStatus":{"name":"findByPropertyAndStatus","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false},{"name":"status","type":"ReportStatus","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findRecentlyRun":{"name":"findRecentlyRun","async":true,"parameters":[{"name":"hoursAgo","type":"number","optional":true}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsReport","exportName":"AnalyticsReportCollection","collectionExportName":"AnalyticsReportCollectionCollection","schema":{"tableName":"analytics_reports","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_reports\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT DEFAULT '',\\n \\"dimensions\\" TEXT DEFAULT '[]',\\n \\"metrics\\" TEXT DEFAULT '[]',\\n \\"date_range_start\\" TEXT DEFAULT '7daysAgo',\\n \\"date_range_end\\" TEXT DEFAULT 'today',\\n \\"dimension_filter\\" TEXT DEFAULT '',\\n \\"metric_filter\\" TEXT DEFAULT '',\\n \\"order_by\\" TEXT DEFAULT '[]',\\n \\"max_results\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT,\\n \\"frequency\\" TEXT,\\n \\"last_run_at\\" TIMESTAMP,\\n \\"next_run_at\\" TIMESTAMP,\\n \\"result_data\\" TEXT DEFAULT '',\\n \\"row_count\\" INTEGER DEFAULT 0,\\n \\"last_error\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false,"default":""},"dimensions":{"type":"TEXT","notNull":false,"default":"[]"},"metrics":{"type":"TEXT","notNull":false,"default":"[]"},"date_range_start":{"type":"TEXT","notNull":false,"default":"7daysAgo"},"date_range_end":{"type":"TEXT","notNull":false,"default":"today"},"dimension_filter":{"type":"TEXT","notNull":false,"default":""},"metric_filter":{"type":"TEXT","notNull":false,"default":""},"order_by":{"type":"TEXT","notNull":false,"default":"[]"},"max_results":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false},"frequency":{"type":"TEXT","notNull":false},"last_run_at":{"type":"TIMESTAMP","notNull":false},"next_run_at":{"type":"TIMESTAMP","notNull":false},"result_data":{"type":"TEXT","notNull":false,"default":""},"row_count":{"type":"INTEGER","notNull":false,"default":0},"last_error":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_reports_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_reports_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_reports_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_reports_property_id_idx","columns":["property_id"]}],"version":"22ce0f1c"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsDataStream":{"name":"analyticsdatastream","className":"AnalyticsDataStream","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsDataStream","collection":"analyticsdatastreams","description":"AnalyticsDataStream represents a data stream (web, iOS, Android) for an analytics property.","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,"enum":["WEB_DATA_STREAM","ANDROID_APP_DATA_STREAM","IOS_APP_DATA_STREAM"]},"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,"enum":["active","inactive"]},"enhancedMeasurement":{"type":"boolean","required":false,"default":true}},"methods":{"isWeb":{"name":"isWeb","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isIOS":{"name":"isIOS","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isAndroid":{"name":"isAndroid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isMobileApp":{"name":"isMobileApp","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPlatformId":{"name":"getPlatformId","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"AnalyticsDataStream","collectionExportName":"AnalyticsDataStreamCollection","schema":{"tableName":"analytics_data_streams","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_data_streams\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"stream_type\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"firebase_app_id\\" TEXT DEFAULT '',\\n \\"default_uri\\" TEXT DEFAULT '',\\n \\"bundle_id\\" TEXT DEFAULT '',\\n \\"package_name\\" TEXT DEFAULT '',\\n \\"status\\" TEXT,\\n \\"enhanced_measurement\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"display_name":{"type":"TEXT","notNull":false,"default":""},"stream_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"firebase_app_id":{"type":"TEXT","notNull":false,"default":""},"default_uri":{"type":"TEXT","notNull":false,"default":""},"bundle_id":{"type":"TEXT","notNull":false,"default":""},"package_name":{"type":"TEXT","notNull":false,"default":""},"status":{"type":"TEXT","notNull":false},"enhanced_measurement":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"analytics_data_streams_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_data_streams_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_data_streams_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_data_streams_property_id_idx","columns":["property_id"]}],"version":"851609ba"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsEvent":{"name":"analyticsevent","className":"AnalyticsEvent","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsEvent","collection":"analyticsevents","description":"AnalyticsEvent represents a tracked analytics event (server-side tracking log).","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,"enum":["pending","sent","failed"]},"sentAt":{"type":"datetime","required":false},"errorMessage":{"type":"text","required":false,"default":""},"retryCount":{"type":"integer","required":false,"default":0},"nonPersonalizedAds":{"type":"boolean","required":false,"default":false},"sessionId":{"type":"text","required":false,"default":""},"pagePath":{"type":"text","required":false,"default":""},"pageTitle":{"type":"text","required":false,"default":""},"userAgent":{"type":"text","required":false,"default":""},"ipAddress":{"type":"text","required":false,"default":""}},"methods":{"getParams":{"name":"getParams","async":false,"parameters":[],"returnType":"Record<string, string | number | boolean>","isStatic":false,"isPublic":true},"setParams":{"name":"setParams","async":false,"parameters":[{"name":"params","type":"Record<string, string | number | boolean>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"addParam":{"name":"addParam","async":false,"parameters":[{"name":"key","type":"string","optional":false},{"name":"value","type":"string | number | boolean","optional":false,"unionBranches":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}],"returnType":"void","isStatic":false,"isPublic":true},"isPageview":{"name":"isPageview","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isConversion":{"name":"isConversion","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"markSent":{"name":"markSent","async":false,"parameters":[],"returnType":"void","isStatic":false,"isPublic":true},"markFailed":{"name":"markFailed","async":false,"parameters":[{"name":"error","type":"string","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"resetForRetry":{"name":"resetForRetry","async":false,"parameters":[],"returnType":"void","isStatic":false,"isPublic":true},"shouldRetry":{"name":"shouldRetry","async":false,"parameters":[{"name":"maxRetries","type":"number","optional":true}],"returnType":"boolean","isStatic":false,"isPublic":true},"toTrackEvent":{"name":"toTrackEvent","async":false,"parameters":[],"returnType":"object","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create"]},"mcp":{"include":["list","get","track"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"AnalyticsEvent","collectionExportName":"AnalyticsEventCollection","schema":{"tableName":"analytics_events","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"event_name\\" TEXT DEFAULT '',\\n \\"client_id\\" TEXT DEFAULT '',\\n \\"user_id\\" TEXT DEFAULT '',\\n \\"params\\" TEXT DEFAULT '{}',\\n \\"event_timestamp\\" TIMESTAMP,\\n \\"status\\" TEXT,\\n \\"sent_at\\" TIMESTAMP,\\n \\"error_message\\" TEXT DEFAULT '',\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"non_personalized_ads\\" BOOLEAN DEFAULT FALSE,\\n \\"session_id\\" TEXT DEFAULT '',\\n \\"page_path\\" TEXT DEFAULT '',\\n \\"page_title\\" TEXT DEFAULT '',\\n \\"user_agent\\" TEXT DEFAULT '',\\n \\"ip_address\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"event_name":{"type":"TEXT","notNull":false,"default":""},"client_id":{"type":"TEXT","notNull":false,"default":""},"user_id":{"type":"TEXT","notNull":false,"default":""},"params":{"type":"TEXT","notNull":false,"default":"{}"},"event_timestamp":{"type":"TIMESTAMP","notNull":false},"status":{"type":"TEXT","notNull":false},"sent_at":{"type":"TIMESTAMP","notNull":false},"error_message":{"type":"TEXT","notNull":false,"default":""},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"non_personalized_ads":{"type":"BOOLEAN","notNull":false,"default":false},"session_id":{"type":"TEXT","notNull":false,"default":""},"page_path":{"type":"TEXT","notNull":false,"default":""},"page_title":{"type":"TEXT","notNull":false,"default":""},"user_agent":{"type":"TEXT","notNull":false,"default":""},"ip_address":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_events_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_events_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_events_property_id_idx","columns":["property_id"]}],"version":"bee09e1d"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsProperty":{"name":"analyticsproperty","className":"AnalyticsProperty","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsProperty","collection":"analyticsproperties","description":"AnalyticsProperty represents an analytics property (GA4 property, Plausible site, or Matomo site).","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,"enum":["ga4","plausible","matomo"]},"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,"enum":["active","inactive","pending"]},"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","displayLabelField":"name","schema":{"tableName":"analytics_properties","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_properties\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"provider\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"api_secret\\" TEXT DEFAULT '',\\n \\"site_domain\\" TEXT DEFAULT '',\\n \\"time_zone\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\"currency_code\\" TEXT DEFAULT 'USD',\\n \\"industry_category\\" TEXT DEFAULT '',\\n \\"service_level\\" TEXT DEFAULT 'STANDARD',\\n \\"status\\" TEXT,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"provider_metadata\\" TEXT DEFAULT '{}'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"display_name":{"type":"TEXT","notNull":false,"default":""},"provider":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"api_secret":{"type":"TEXT","notNull":false,"default":""},"site_domain":{"type":"TEXT","notNull":false,"default":""},"time_zone":{"type":"TEXT","notNull":false,"default":"America/Los_Angeles"},"currency_code":{"type":"TEXT","notNull":false,"default":"USD"},"industry_category":{"type":"TEXT","notNull":false,"default":""},"service_level":{"type":"TEXT","notNull":false,"default":"STANDARD"},"status":{"type":"TEXT","notNull":false},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"provider_metadata":{"type":"TEXT","notNull":false,"default":"{}"}},"indexes":[{"name":"analytics_properties_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_properties_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_properties_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"f38a20b9"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsReport":{"name":"analyticsreport","className":"AnalyticsReport","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsReport","collection":"analyticsreports","description":"AnalyticsReport represents a saved report configuration with optional scheduling.","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,"enum":["draft","scheduled","running","completed","failed"]},"frequency":{"type":"text","required":false,"enum":["once","daily","weekly","monthly"]},"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","displayLabelField":"name","schema":{"tableName":"analytics_reports","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_reports\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT DEFAULT '',\\n \\"dimensions\\" TEXT DEFAULT '[]',\\n \\"metrics\\" TEXT DEFAULT '[]',\\n \\"date_range_start\\" TEXT DEFAULT '7daysAgo',\\n \\"date_range_end\\" TEXT DEFAULT 'today',\\n \\"dimension_filter\\" TEXT DEFAULT '',\\n \\"metric_filter\\" TEXT DEFAULT '',\\n \\"order_by\\" TEXT DEFAULT '[]',\\n \\"max_results\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT,\\n \\"frequency\\" TEXT,\\n \\"last_run_at\\" TIMESTAMP,\\n \\"next_run_at\\" TIMESTAMP,\\n \\"result_data\\" TEXT DEFAULT '',\\n \\"row_count\\" INTEGER DEFAULT 0,\\n \\"last_error\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false,"default":""},"dimensions":{"type":"TEXT","notNull":false,"default":"[]"},"metrics":{"type":"TEXT","notNull":false,"default":"[]"},"date_range_start":{"type":"TEXT","notNull":false,"default":"7daysAgo"},"date_range_end":{"type":"TEXT","notNull":false,"default":"today"},"dimension_filter":{"type":"TEXT","notNull":false,"default":""},"metric_filter":{"type":"TEXT","notNull":false,"default":""},"order_by":{"type":"TEXT","notNull":false,"default":"[]"},"max_results":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false},"frequency":{"type":"TEXT","notNull":false},"last_run_at":{"type":"TIMESTAMP","notNull":false},"next_run_at":{"type":"TIMESTAMP","notNull":false},"result_data":{"type":"TEXT","notNull":false,"default":""},"row_count":{"type":"INTEGER","notNull":false,"default":0},"last_error":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_reports_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_reports_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_reports_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_reports_property_id_idx","columns":["property_id"]}],"version":"22ce0f1c"},"importPath":"@happyvertical/smrt-analytics"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-prompts","@happyvertical/smrt-tenancy"],"stampsConstructors":true}`));
|
|
5
|
+
ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-analytics","packageVersion":"0.55.8","objects":{"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection":{"name":"analyticsdatastreamcollection","className":"AnalyticsDataStreamCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection","collection":"analyticsdatastreams","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findByExternalId":{"name":"findByExternalId","async":true,"parameters":[{"name":"externalId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream | null>","isStatic":false,"isPublic":true},"findByMeasurementId":{"name":"findByMeasurementId","async":true,"parameters":[{"name":"measurementId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream | null>","isStatic":false,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"streamType","type":"DataStreamType","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findWebStreams":{"name":"findWebStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findIOSStreams":{"name":"findIOSStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findAndroidStreams":{"name":"findAndroidStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findMobileStreams":{"name":"findMobileStreams","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"DataStreamStatus","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findActive":{"name":"findActive","async":true,"parameters":[],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true},"findActiveByProperty":{"name":"findActiveByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsDataStream[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsDataStream","exportName":"AnalyticsDataStreamCollection","collectionExportName":"AnalyticsDataStreamCollectionCollection","schema":{"tableName":"analytics_data_streams","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_data_streams\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"stream_type\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"firebase_app_id\\" TEXT DEFAULT '',\\n \\"default_uri\\" TEXT DEFAULT '',\\n \\"bundle_id\\" TEXT DEFAULT '',\\n \\"package_name\\" TEXT DEFAULT '',\\n \\"status\\" TEXT,\\n \\"enhanced_measurement\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"display_name":{"type":"TEXT","notNull":false,"default":""},"stream_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"firebase_app_id":{"type":"TEXT","notNull":false,"default":""},"default_uri":{"type":"TEXT","notNull":false,"default":""},"bundle_id":{"type":"TEXT","notNull":false,"default":""},"package_name":{"type":"TEXT","notNull":false,"default":""},"status":{"type":"TEXT","notNull":false},"enhanced_measurement":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"analytics_data_streams_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_data_streams_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_data_streams_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_data_streams_property_id_idx","columns":["property_id"]}],"version":"851609ba"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsEventCollection":{"name":"analyticseventcollection","className":"AnalyticsEventCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsEventCollection","collection":"analyticsevents","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByEventName":{"name":"findByEventName","async":true,"parameters":[{"name":"eventName","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByClientId":{"name":"findByClientId","async":true,"parameters":[{"name":"clientId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByUserId":{"name":"findByUserId","async":true,"parameters":[{"name":"userId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"TrackingEventStatus","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPending":{"name":"findPending","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findSent":{"name":"findSent","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findFailed":{"name":"findFailed","async":true,"parameters":[],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findForRetry":{"name":"findForRetry","async":true,"parameters":[{"name":"maxRetries","type":"number","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPendingByProperty":{"name":"findPendingByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findByDateRange":{"name":"findByDateRange","async":true,"parameters":[{"name":"startDate","type":"Date","optional":false},{"name":"endDate","type":"Date","optional":false}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findConversions":{"name":"findConversions","async":true,"parameters":[{"name":"propertyId","type":"string","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"findPageviews":{"name":"findPageviews","async":true,"parameters":[{"name":"propertyId","type":"string","optional":true}],"returnType":"Promise<AnalyticsEvent[]>","isStatic":false,"isPublic":true},"countByEventName":{"name":"countByEventName","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<Map<string, number>>","isStatic":false,"isPublic":true},"getPropertyStats":{"name":"getPropertyStats","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"getPropertyStatsWithTrend":{"name":"getPropertyStatsWithTrend","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false},{"name":"now","type":"Date","optional":true},{"name":"timeZone","type":"string","optional":true,"default":"UTC"}],"returnType":"Promise<PropertyStatsWithTrend>","isStatic":false,"isPublic":true},"getBatchPropertyStats":{"name":"getBatchPropertyStats","async":true,"parameters":[{"name":"propertyIds","type":"string[]","optional":false},{"name":"now","type":"Date","optional":true},{"name":"timeZone","type":"string","optional":true,"default":"UTC"}],"returnType":"Promise<Map<string, PropertyStatsWithTrend>>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsEvent","exportName":"AnalyticsEventCollection","collectionExportName":"AnalyticsEventCollectionCollection","schema":{"tableName":"analytics_events","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"event_name\\" TEXT DEFAULT '',\\n \\"client_id\\" TEXT DEFAULT '',\\n \\"user_id\\" TEXT DEFAULT '',\\n \\"params\\" TEXT DEFAULT '{}',\\n \\"event_timestamp\\" TIMESTAMP,\\n \\"status\\" TEXT,\\n \\"sent_at\\" TIMESTAMP,\\n \\"error_message\\" TEXT DEFAULT '',\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"non_personalized_ads\\" BOOLEAN DEFAULT FALSE,\\n \\"session_id\\" TEXT DEFAULT '',\\n \\"page_path\\" TEXT DEFAULT '',\\n \\"page_title\\" TEXT DEFAULT '',\\n \\"user_agent\\" TEXT DEFAULT '',\\n \\"ip_address\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"event_name":{"type":"TEXT","notNull":false,"default":""},"client_id":{"type":"TEXT","notNull":false,"default":""},"user_id":{"type":"TEXT","notNull":false,"default":""},"params":{"type":"TEXT","notNull":false,"default":"{}"},"event_timestamp":{"type":"TIMESTAMP","notNull":false},"status":{"type":"TEXT","notNull":false},"sent_at":{"type":"TIMESTAMP","notNull":false},"error_message":{"type":"TEXT","notNull":false,"default":""},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"non_personalized_ads":{"type":"BOOLEAN","notNull":false,"default":false},"session_id":{"type":"TEXT","notNull":false,"default":""},"page_path":{"type":"TEXT","notNull":false,"default":""},"page_title":{"type":"TEXT","notNull":false,"default":""},"user_agent":{"type":"TEXT","notNull":false,"default":""},"ip_address":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_events_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_events_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_events_property_id_idx","columns":["property_id"]}],"version":"bee09e1d"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsPropertyCollection":{"name":"analyticspropertycollection","className":"AnalyticsPropertyCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsPropertyCollection","collection":"analyticsproperties","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByExternalId":{"name":"findByExternalId","async":true,"parameters":[{"name":"externalId","type":"string","optional":false}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findByMeasurementId":{"name":"findByMeasurementId","async":true,"parameters":[{"name":"measurementId","type":"string","optional":false}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findBySiteDomain":{"name":"findBySiteDomain","async":true,"parameters":[{"name":"siteDomain","type":"string","optional":false},{"name":"provider","type":"AnalyticsProvider","optional":true}],"returnType":"Promise<AnalyticsProperty | null>","isStatic":false,"isPublic":true},"findByProvider":{"name":"findByProvider","async":true,"parameters":[{"name":"provider","type":"AnalyticsProvider","optional":false}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findGA4Properties":{"name":"findGA4Properties","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findPlausibleSites":{"name":"findPlausibleSites","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findMatomoSites":{"name":"findMatomoSites","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"AnalyticsPropertyStatus","optional":false}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findActive":{"name":"findActive","async":true,"parameters":[],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true},"findNeedingSync":{"name":"findNeedingSync","async":true,"parameters":[{"name":"hoursAgo","type":"number","optional":true}],"returnType":"Promise<AnalyticsProperty[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsProperty","exportName":"AnalyticsPropertyCollection","collectionExportName":"AnalyticsPropertyCollectionCollection","schema":{"tableName":"analytics_properties","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_properties\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"provider\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"api_secret\\" TEXT DEFAULT '',\\n \\"site_domain\\" TEXT DEFAULT '',\\n \\"time_zone\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\"currency_code\\" TEXT DEFAULT 'USD',\\n \\"industry_category\\" TEXT DEFAULT '',\\n \\"service_level\\" TEXT DEFAULT 'STANDARD',\\n \\"status\\" TEXT,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"provider_metadata\\" TEXT DEFAULT '{}'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"display_name":{"type":"TEXT","notNull":false,"default":""},"provider":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"api_secret":{"type":"TEXT","notNull":false,"default":""},"site_domain":{"type":"TEXT","notNull":false,"default":""},"time_zone":{"type":"TEXT","notNull":false,"default":"America/Los_Angeles"},"currency_code":{"type":"TEXT","notNull":false,"default":"USD"},"industry_category":{"type":"TEXT","notNull":false,"default":""},"service_level":{"type":"TEXT","notNull":false,"default":"STANDARD"},"status":{"type":"TEXT","notNull":false},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"provider_metadata":{"type":"TEXT","notNull":false,"default":"{}"}},"indexes":[{"name":"analytics_properties_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_properties_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_properties_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"f38a20b9"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsReportCollection":{"name":"analyticsreportcollection","className":"AnalyticsReportCollection","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsReportCollection","collection":"analyticsreports","filePath":"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts","packageName":"@happyvertical/smrt-analytics","fields":{},"methods":{"findByProperty":{"name":"findByProperty","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByStatus":{"name":"findByStatus","async":true,"parameters":[{"name":"status","type":"ReportStatus","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findDrafts":{"name":"findDrafts","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findScheduled":{"name":"findScheduled","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findCompleted":{"name":"findCompleted","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findFailed":{"name":"findFailed","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByFrequency":{"name":"findByFrequency","async":true,"parameters":[{"name":"frequency","type":"ReportFrequency","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findRecurring":{"name":"findRecurring","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findDue":{"name":"findDue","async":true,"parameters":[],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findByPropertyAndStatus":{"name":"findByPropertyAndStatus","async":true,"parameters":[{"name":"propertyId","type":"string","optional":false},{"name":"status","type":"ReportStatus","optional":false}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true},"findRecentlyRun":{"name":"findRecentlyRun","async":true,"parameters":[{"name":"hoursAgo","type":"number","optional":true}],"returnType":"Promise<AnalyticsReport[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AnalyticsReport","exportName":"AnalyticsReportCollection","collectionExportName":"AnalyticsReportCollectionCollection","schema":{"tableName":"analytics_reports","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_reports\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT DEFAULT '',\\n \\"dimensions\\" TEXT DEFAULT '[]',\\n \\"metrics\\" TEXT DEFAULT '[]',\\n \\"date_range_start\\" TEXT DEFAULT '7daysAgo',\\n \\"date_range_end\\" TEXT DEFAULT 'today',\\n \\"dimension_filter\\" TEXT DEFAULT '',\\n \\"metric_filter\\" TEXT DEFAULT '',\\n \\"order_by\\" TEXT DEFAULT '[]',\\n \\"max_results\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT,\\n \\"frequency\\" TEXT,\\n \\"last_run_at\\" TIMESTAMP,\\n \\"next_run_at\\" TIMESTAMP,\\n \\"result_data\\" TEXT DEFAULT '',\\n \\"row_count\\" INTEGER DEFAULT 0,\\n \\"last_error\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false,"default":""},"dimensions":{"type":"TEXT","notNull":false,"default":"[]"},"metrics":{"type":"TEXT","notNull":false,"default":"[]"},"date_range_start":{"type":"TEXT","notNull":false,"default":"7daysAgo"},"date_range_end":{"type":"TEXT","notNull":false,"default":"today"},"dimension_filter":{"type":"TEXT","notNull":false,"default":""},"metric_filter":{"type":"TEXT","notNull":false,"default":""},"order_by":{"type":"TEXT","notNull":false,"default":"[]"},"max_results":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false},"frequency":{"type":"TEXT","notNull":false},"last_run_at":{"type":"TIMESTAMP","notNull":false},"next_run_at":{"type":"TIMESTAMP","notNull":false},"result_data":{"type":"TEXT","notNull":false,"default":""},"row_count":{"type":"INTEGER","notNull":false,"default":0},"last_error":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_reports_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_reports_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_reports_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_reports_property_id_idx","columns":["property_id"]}],"version":"22ce0f1c"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsDataStream":{"name":"analyticsdatastream","className":"AnalyticsDataStream","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsDataStream","collection":"analyticsdatastreams","description":"AnalyticsDataStream represents a data stream (web, iOS, Android) for an analytics property.","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,"enum":["WEB_DATA_STREAM","ANDROID_APP_DATA_STREAM","IOS_APP_DATA_STREAM"]},"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,"enum":["active","inactive"]},"enhancedMeasurement":{"type":"boolean","required":false,"default":true}},"methods":{"isWeb":{"name":"isWeb","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isIOS":{"name":"isIOS","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isAndroid":{"name":"isAndroid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isMobileApp":{"name":"isMobileApp","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPlatformId":{"name":"getPlatformId","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"AnalyticsDataStream","collectionExportName":"AnalyticsDataStreamCollection","schema":{"tableName":"analytics_data_streams","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_data_streams\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"stream_type\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"firebase_app_id\\" TEXT DEFAULT '',\\n \\"default_uri\\" TEXT DEFAULT '',\\n \\"bundle_id\\" TEXT DEFAULT '',\\n \\"package_name\\" TEXT DEFAULT '',\\n \\"status\\" TEXT,\\n \\"enhanced_measurement\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"display_name":{"type":"TEXT","notNull":false,"default":""},"stream_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"firebase_app_id":{"type":"TEXT","notNull":false,"default":""},"default_uri":{"type":"TEXT","notNull":false,"default":""},"bundle_id":{"type":"TEXT","notNull":false,"default":""},"package_name":{"type":"TEXT","notNull":false,"default":""},"status":{"type":"TEXT","notNull":false},"enhanced_measurement":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"analytics_data_streams_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_data_streams_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_data_streams_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_data_streams_property_id_idx","columns":["property_id"]}],"version":"851609ba"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsEvent":{"name":"analyticsevent","className":"AnalyticsEvent","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsEvent","collection":"analyticsevents","description":"AnalyticsEvent represents a tracked analytics event (server-side tracking log).","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,"enum":["pending","sent","failed"]},"sentAt":{"type":"datetime","required":false},"errorMessage":{"type":"text","required":false,"default":""},"retryCount":{"type":"integer","required":false,"default":0},"nonPersonalizedAds":{"type":"boolean","required":false,"default":false},"sessionId":{"type":"text","required":false,"default":""},"pagePath":{"type":"text","required":false,"default":""},"pageTitle":{"type":"text","required":false,"default":""},"userAgent":{"type":"text","required":false,"default":""},"ipAddress":{"type":"text","required":false,"default":""}},"methods":{"getParams":{"name":"getParams","async":false,"parameters":[],"returnType":"Record<string, string | number | boolean>","isStatic":false,"isPublic":true},"setParams":{"name":"setParams","async":false,"parameters":[{"name":"params","type":"Record<string, string | number | boolean>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"addParam":{"name":"addParam","async":false,"parameters":[{"name":"key","type":"string","optional":false},{"name":"value","type":"string | number | boolean","optional":false,"unionBranches":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}],"returnType":"void","isStatic":false,"isPublic":true},"isPageview":{"name":"isPageview","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isConversion":{"name":"isConversion","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"markSent":{"name":"markSent","async":false,"parameters":[],"returnType":"void","isStatic":false,"isPublic":true},"markFailed":{"name":"markFailed","async":false,"parameters":[{"name":"error","type":"string","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"resetForRetry":{"name":"resetForRetry","async":false,"parameters":[],"returnType":"void","isStatic":false,"isPublic":true},"shouldRetry":{"name":"shouldRetry","async":false,"parameters":[{"name":"maxRetries","type":"number","optional":true}],"returnType":"boolean","isStatic":false,"isPublic":true},"toTrackEvent":{"name":"toTrackEvent","async":false,"parameters":[],"returnType":"object","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create"]},"mcp":{"include":["list","get","track"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"AnalyticsEvent","collectionExportName":"AnalyticsEventCollection","schema":{"tableName":"analytics_events","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_events\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"event_name\\" TEXT DEFAULT '',\\n \\"client_id\\" TEXT DEFAULT '',\\n \\"user_id\\" TEXT DEFAULT '',\\n \\"params\\" TEXT DEFAULT '{}',\\n \\"event_timestamp\\" TIMESTAMP,\\n \\"status\\" TEXT,\\n \\"sent_at\\" TIMESTAMP,\\n \\"error_message\\" TEXT DEFAULT '',\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"non_personalized_ads\\" BOOLEAN DEFAULT FALSE,\\n \\"session_id\\" TEXT DEFAULT '',\\n \\"page_path\\" TEXT DEFAULT '',\\n \\"page_title\\" TEXT DEFAULT '',\\n \\"user_agent\\" TEXT DEFAULT '',\\n \\"ip_address\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"event_name":{"type":"TEXT","notNull":false,"default":""},"client_id":{"type":"TEXT","notNull":false,"default":""},"user_id":{"type":"TEXT","notNull":false,"default":""},"params":{"type":"TEXT","notNull":false,"default":"{}"},"event_timestamp":{"type":"TIMESTAMP","notNull":false},"status":{"type":"TEXT","notNull":false},"sent_at":{"type":"TIMESTAMP","notNull":false},"error_message":{"type":"TEXT","notNull":false,"default":""},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"non_personalized_ads":{"type":"BOOLEAN","notNull":false,"default":false},"session_id":{"type":"TEXT","notNull":false,"default":""},"page_path":{"type":"TEXT","notNull":false,"default":""},"page_title":{"type":"TEXT","notNull":false,"default":""},"user_agent":{"type":"TEXT","notNull":false,"default":""},"ip_address":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_events_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_events_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_events_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_events_property_id_idx","columns":["property_id"]}],"version":"bee09e1d"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsProperty":{"name":"analyticsproperty","className":"AnalyticsProperty","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsProperty","collection":"analyticsproperties","description":"AnalyticsProperty represents an analytics property (GA4 property, Plausible site, or Matomo site).","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":"","description":"The name people see for this website or app.","_meta":{"description":"The name people see for this website or app."}},"provider":{"type":"text","required":false,"description":"Which analytics service tracks it: Google Analytics 4, Plausible or Matomo.","_meta":{"description":"Which analytics service tracks it: Google Analytics 4, Plausible or Matomo."},"enum":["ga4","plausible","matomo"]},"externalId":{"type":"text","required":false,"default":"","description":"The id the analytics service gives the property, such as properties/123456789 or a Matomo site id.","_meta":{"description":"The id the analytics service gives the property, such as properties/123456789 or a Matomo site id."}},"measurementId":{"type":"text","required":false,"default":"","description":"The tracking id for a web stream, such as G-XXXXXXXXXX.","_meta":{"description":"The tracking id for a web stream, such as G-XXXXXXXXXX."}},"apiSecret":{"type":"text","required":false,"default":"","description":"The secret key your analytics service issues for this property. It is kept out of responses and tool results, but it is not encrypted in the database.","_meta":{"sensitive":true,"description":"The secret key your analytics service issues for this property. It is kept out of responses and tool results, but it is not encrypted in the database."},"sensitive":true},"siteDomain":{"type":"text","required":false,"default":"","description":"The website address, used by Plausible and Matomo.","_meta":{"description":"The website address, used by Plausible and Matomo."}},"timeZone":{"type":"text","required":false,"default":"America/Los_Angeles","description":"The time zone the figures are reported in.","_meta":{"description":"The time zone the figures are reported in."}},"currencyCode":{"type":"text","required":false,"default":"USD","description":"The currency used for revenue figures, such as USD.","_meta":{"description":"The currency used for revenue figures, such as USD."}},"industryCategory":{"type":"text","required":false,"default":""},"serviceLevel":{"type":"text","required":false,"default":"STANDARD"},"status":{"type":"text","required":false,"description":"Whether tracking is active, inactive or still being set up.","_meta":{"description":"Whether tracking is active, inactive or still being set up."},"enum":["active","inactive","pending"]},"lastSyncAt":{"type":"datetime","required":false,"description":"When the property was last synced with the analytics service.","_meta":{"description":"When the property was last synced with the analytics service."}},"providerMetadata":{"type":"text","required":false,"default":"{}","description":"Extra connection details from your analytics service. They are kept out of responses and tool results, but they are not encrypted in the database.","_meta":{"sensitive":true,"description":"Extra connection details from your analytics service. They are kept out of responses and tool results, but they are not encrypted in the database."},"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","displayLabelField":"name","schema":{"tableName":"analytics_properties","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_properties\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"display_name\\" TEXT DEFAULT '',\\n \\"provider\\" TEXT,\\n \\"external_id\\" TEXT DEFAULT '',\\n \\"measurement_id\\" TEXT DEFAULT '',\\n \\"api_secret\\" TEXT DEFAULT '',\\n \\"site_domain\\" TEXT DEFAULT '',\\n \\"time_zone\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\"currency_code\\" TEXT DEFAULT 'USD',\\n \\"industry_category\\" TEXT DEFAULT '',\\n \\"service_level\\" TEXT DEFAULT 'STANDARD',\\n \\"status\\" TEXT,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"provider_metadata\\" TEXT DEFAULT '{}'\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"display_name":{"type":"TEXT","notNull":false,"default":""},"provider":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false,"default":""},"measurement_id":{"type":"TEXT","notNull":false,"default":""},"api_secret":{"type":"TEXT","notNull":false,"default":""},"site_domain":{"type":"TEXT","notNull":false,"default":""},"time_zone":{"type":"TEXT","notNull":false,"default":"America/Los_Angeles"},"currency_code":{"type":"TEXT","notNull":false,"default":"USD"},"industry_category":{"type":"TEXT","notNull":false,"default":""},"service_level":{"type":"TEXT","notNull":false,"default":"STANDARD"},"status":{"type":"TEXT","notNull":false},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"provider_metadata":{"type":"TEXT","notNull":false,"default":"{}"}},"indexes":[{"name":"analytics_properties_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_properties_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_properties_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"f38a20b9"},"importPath":"@happyvertical/smrt-analytics"},"@happyvertical/smrt-analytics:AnalyticsReport":{"name":"analyticsreport","className":"AnalyticsReport","qualifiedName":"@happyvertical/smrt-analytics:AnalyticsReport","collection":"analyticsreports","description":"AnalyticsReport represents a saved report configuration with optional scheduling.","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","_meta":{"description":"The website or app this report is about."}},"name":{"type":"text","required":false,"default":"","description":"A short name for the report, such as Weekly traffic.","_meta":{"description":"A short name for the report, such as Weekly traffic."}},"description":{"type":"text","required":false,"default":"","description":"What the report is for.","_meta":{"description":"What the report is for."}},"dimensions":{"type":"text","required":false,"default":"[]","description":"What to break the figures down by, such as country or device, as a list.","_meta":{"description":"What to break the figures down by, such as country or device, as a list."}},"metrics":{"type":"text","required":false,"default":"[]","description":"What to count, such as active users or sessions, as a list.","_meta":{"description":"What to count, such as active users or sessions, as a list."}},"dateRangeStart":{"type":"text","required":false,"default":"7daysAgo","description":"Where the period begins: a date, or a relative value such as 7daysAgo.","_meta":{"description":"Where the period begins: a date, or a relative value such as 7daysAgo."}},"dateRangeEnd":{"type":"text","required":false,"default":"today","description":"Where the period ends: a date, or a relative value such as today.","_meta":{"description":"Where the period ends: a date, or a relative value such as 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,"description":"Where the report stands: draft, scheduled, running, completed or failed.","_meta":{"description":"Where the report stands: draft, scheduled, running, completed or failed."},"enum":["draft","scheduled","running","completed","failed"]},"frequency":{"type":"text","required":false,"description":"How often the report repeats: once, daily, weekly or monthly.","_meta":{"description":"How often the report repeats: once, daily, weekly or monthly."},"enum":["once","daily","weekly","monthly"]},"lastRunAt":{"type":"datetime","required":false,"description":"When the report last ran.","_meta":{"description":"When the report last ran."}},"nextRunAt":{"type":"datetime","required":false,"description":"When the report is next due to run.","_meta":{"description":"When the report is next due to run."}},"resultData":{"type":"text","required":false,"default":""},"rowCount":{"type":"integer","required":false,"default":0,"description":"How many rows the last run returned.","_meta":{"description":"How many rows the last run returned."}},"lastError":{"type":"text","required":false,"default":"","description":"Why the last run failed. Empty when it worked.","_meta":{"description":"Why the last run failed. Empty when it worked."}}},"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"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"AnalyticsReport","collectionExportName":"AnalyticsReportCollection","displayLabelField":"name","schema":{"tableName":"analytics_reports","ddl":"CREATE TABLE IF NOT EXISTS \\"analytics_reports\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"property_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT DEFAULT '',\\n \\"dimensions\\" TEXT DEFAULT '[]',\\n \\"metrics\\" TEXT DEFAULT '[]',\\n \\"date_range_start\\" TEXT DEFAULT '7daysAgo',\\n \\"date_range_end\\" TEXT DEFAULT 'today',\\n \\"dimension_filter\\" TEXT DEFAULT '',\\n \\"metric_filter\\" TEXT DEFAULT '',\\n \\"order_by\\" TEXT DEFAULT '[]',\\n \\"max_results\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT,\\n \\"frequency\\" TEXT,\\n \\"last_run_at\\" TIMESTAMP,\\n \\"next_run_at\\" TIMESTAMP,\\n \\"result_data\\" TEXT DEFAULT '',\\n \\"row_count\\" INTEGER DEFAULT 0,\\n \\"last_error\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"property_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"analytics_properties","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false,"default":""},"dimensions":{"type":"TEXT","notNull":false,"default":"[]"},"metrics":{"type":"TEXT","notNull":false,"default":"[]"},"date_range_start":{"type":"TEXT","notNull":false,"default":"7daysAgo"},"date_range_end":{"type":"TEXT","notNull":false,"default":"today"},"dimension_filter":{"type":"TEXT","notNull":false,"default":""},"metric_filter":{"type":"TEXT","notNull":false,"default":""},"order_by":{"type":"TEXT","notNull":false,"default":"[]"},"max_results":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false},"frequency":{"type":"TEXT","notNull":false},"last_run_at":{"type":"TIMESTAMP","notNull":false},"next_run_at":{"type":"TIMESTAMP","notNull":false},"result_data":{"type":"TEXT","notNull":false,"default":""},"row_count":{"type":"INTEGER","notNull":false,"default":0},"last_error":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"analytics_reports_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"analytics_reports_meta_type_idx","columns":["_meta_type"]},{"name":"analytics_reports_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"analytics_reports_property_id_idx","columns":["property_id"]}],"version":"22ce0f1c"},"importPath":"@happyvertical/smrt-analytics"}},"moduleType":"smrt","recipes":[{"id":"analytics.reports","className":"AnalyticsReportsRecipe","label":"Analytics","summary":"Save traffic reports for your websites and apps and get a plain-language read on the results.","synonyms":["analytics","traffic","pageviews","visitors","web stats","google analytics","plausible","matomo"],"models":["@happyvertical/smrt-analytics:AnalyticsProperty","@happyvertical/smrt-analytics:AnalyticsReport"],"nav":[{"label":"Analytics properties","model":"@happyvertical/smrt-analytics:AnalyticsProperty","icon":"home","description":"The websites and apps you track, and who tracks them."},{"label":"Analytics reports","model":"@happyvertical/smrt-analytics:AnalyticsReport","icon":"fileText","description":"Saved reports, how often they run and what they found."}],"requires":[],"section":{"id":"analytics","label":"Analytics","icon":"layers","description":"How your websites and apps are doing."},"options":{"@happyvertical/smrt-analytics:AnalyticsProperty":{"fields":{"name":{"visibility":"hidden"},"industryCategory":{"visibility":"advanced"},"serviceLevel":{"visibility":"advanced"},"lastSyncAt":{"locked":true}}},"@happyvertical/smrt-analytics:AnalyticsReport":{"fields":{"dimensionFilter":{"visibility":"advanced"},"metricFilter":{"visibility":"advanced"},"orderBy":{"visibility":"advanced"},"maxResults":{"visibility":"advanced"},"resultData":{"visibility":"hidden","locked":true},"rowCount":{"locked":true},"lastRunAt":{"locked":true},"nextRunAt":{"locked":true},"lastError":{"locked":true}}}},"help":{"markdown":"## Overview\\n\\nAnalytics keeps the traffic reports you care about for your websites and apps.\\nAdd a property for each site or app you track in Google Analytics 4, Plausible\\nor Matomo. Save a report on it that says what to count, what to break the\\nfigures down by, and over which dates. The rows each run returns are stored\\nwith the report, and the assistant can read them back to you in plain words.\\n\\nProperties and reports are kept on your server. Provider secrets are stored on\\nthe property and never sent to the assistant or returned in responses, but they\\nare not encrypted in the database.\\n\\n## Tasks\\n\\n### Add a property\\n\\n1. Create a new property.\\n2. Enter the **{field:AnalyticsProperty.displayName}** and pick the\\n **{field:AnalyticsProperty.provider}**.\\n3. Enter the **{field:AnalyticsProperty.externalId}** the analytics service\\n gives it.\\n4. For Google Analytics, enter the **{field:AnalyticsProperty.measurementId}**.\\n For Plausible or Matomo, enter the **{field:AnalyticsProperty.siteDomain}**.\\n5. Keep **{field:AnalyticsProperty.status}** on active while you want it\\n tracked.\\n\\n### Save a report\\n\\n1. Create a new report and choose the property in\\n **{field:AnalyticsReport.propertyId}**.\\n2. Give it a **{field:AnalyticsReport.name}**.\\n3. List what to break the figures down by in\\n **{field:AnalyticsReport.dimensions}** and what to count in\\n **{field:AnalyticsReport.metrics}**.\\n4. Set the period with **{field:AnalyticsReport.dateRangeStart}** and\\n **{field:AnalyticsReport.dateRangeEnd}**.\\n5. Pick **{field:AnalyticsReport.frequency}** to repeat it daily, weekly or\\n monthly.\\n\\n### Check what a report found\\n\\n1. **{field:AnalyticsReport.status}** says where the report stands, and\\n **{field:AnalyticsReport.lastRunAt}** when it last ran.\\n2. **{field:AnalyticsReport.rowCount}** shows how many rows came back.\\n3. If a run failed, **{field:AnalyticsReport.lastError}** says why.\\n\\n### Ask the assistant\\n\\n1. Ask about a saved report by name, for example \\"how did last week's traffic\\n report look?\\". When your app has the analytics tools switched on, the\\n assistant can list your saved reports and open one to read its figures.\\n2. A written summary of a report comes from your app, which sends the stored\\n rows to the AI provider as they are. Leave out dimensions that identify a\\n person.\\n3. For totals your own app calculates, such as orders or signups, ask for a\\n refreshed report. The assistant reads those with \`reports.query\`; see\\n Reports.\\n4. For a one-off question those reports do not answer, the assistant can\\n propose a report with \`reports.runtime.define\`. Nothing is saved until you\\n confirm it.\\n","fieldRefs":["AnalyticsProperty.displayName","AnalyticsProperty.externalId","AnalyticsProperty.measurementId","AnalyticsProperty.provider","AnalyticsProperty.siteDomain","AnalyticsProperty.status","AnalyticsReport.dateRangeEnd","AnalyticsReport.dateRangeStart","AnalyticsReport.dimensions","AnalyticsReport.frequency","AnalyticsReport.lastError","AnalyticsReport.lastRunAt","AnalyticsReport.metrics","AnalyticsReport.name","AnalyticsReport.propertyId","AnalyticsReport.rowCount","AnalyticsReport.status"]},"surfaces":[{"kind":"route","path":"/analytics/summary","export":"@happyvertical/smrt-analytics/svelte#AnalyticsSummary","label":"Traffic summary"}],"runtime":"server","demo":{"mode":"server","reasons":["The recipe declares runtime \\"server\\".","Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-prompts","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3624"],"via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
|
|
6
6
|
//#endregion
|
|
7
7
|
//#region src/prompts.ts
|
|
8
8
|
var smrtAnalyticsAnalyzePerformancePrompt = definePrompt({
|
|
@@ -979,35 +979,13 @@ var AnalyticsProperty = class extends SmrtObject {
|
|
|
979
979
|
* Internal name/identifier
|
|
980
980
|
*/
|
|
981
981
|
name = "";
|
|
982
|
-
/**
|
|
983
|
-
* Human-readable display name
|
|
984
|
-
*/
|
|
985
982
|
displayName = "";
|
|
986
|
-
/**
|
|
987
|
-
* Analytics provider (ga4, plausible, matomo)
|
|
988
|
-
*/
|
|
989
983
|
provider = AnalyticsProvider.GA4;
|
|
990
|
-
/**
|
|
991
|
-
* External ID from the provider (e.g., "properties/123456789" for GA4,
|
|
992
|
-
* idSite for Matomo)
|
|
993
|
-
*/
|
|
994
984
|
externalId = "";
|
|
995
|
-
/**
|
|
996
|
-
* Measurement ID for GA4 (G-XXXXXXXXXX)
|
|
997
|
-
*/
|
|
998
985
|
measurementId = "";
|
|
999
986
|
apiSecret = "";
|
|
1000
|
-
/**
|
|
1001
|
-
* Site domain for Plausible/Matomo
|
|
1002
|
-
*/
|
|
1003
987
|
siteDomain = "";
|
|
1004
|
-
/**
|
|
1005
|
-
* Property timezone
|
|
1006
|
-
*/
|
|
1007
988
|
timeZone = "America/Los_Angeles";
|
|
1008
|
-
/**
|
|
1009
|
-
* Currency code (e.g., 'USD', 'EUR')
|
|
1010
|
-
*/
|
|
1011
989
|
currencyCode = "USD";
|
|
1012
990
|
/**
|
|
1013
991
|
* Industry category
|
|
@@ -1017,13 +995,7 @@ var AnalyticsProperty = class extends SmrtObject {
|
|
|
1017
995
|
* Service level (STANDARD, PREMIUM)
|
|
1018
996
|
*/
|
|
1019
997
|
serviceLevel = "STANDARD";
|
|
1020
|
-
/**
|
|
1021
|
-
* Property status
|
|
1022
|
-
*/
|
|
1023
998
|
status = AnalyticsPropertyStatus.ACTIVE;
|
|
1024
|
-
/**
|
|
1025
|
-
* Last sync timestamp with provider
|
|
1026
|
-
*/
|
|
1027
999
|
lastSyncAt = null;
|
|
1028
1000
|
providerMetadata = "{}";
|
|
1029
1001
|
constructor(options = {}) {
|
|
@@ -1130,8 +1102,23 @@ var AnalyticsProperty = class extends SmrtObject {
|
|
|
1130
1102
|
};
|
|
1131
1103
|
__publicField$1(AnalyticsProperty, "__smrtPackage__", "@happyvertical/smrt-analytics");
|
|
1132
1104
|
__decorateClass$1([tenantId({ nullable: true })], AnalyticsProperty.prototype, "tenantId", 2);
|
|
1133
|
-
__decorateClass$1([field({
|
|
1134
|
-
__decorateClass$1([field({
|
|
1105
|
+
__decorateClass$1([field({ description: "The name people see for this website or app." })], AnalyticsProperty.prototype, "displayName", 2);
|
|
1106
|
+
__decorateClass$1([field({ description: "Which analytics service tracks it: Google Analytics 4, Plausible or Matomo." })], AnalyticsProperty.prototype, "provider", 2);
|
|
1107
|
+
__decorateClass$1([field({ description: "The id the analytics service gives the property, such as properties/123456789 or a Matomo site id." })], AnalyticsProperty.prototype, "externalId", 2);
|
|
1108
|
+
__decorateClass$1([field({ description: "The tracking id for a web stream, such as G-XXXXXXXXXX." })], AnalyticsProperty.prototype, "measurementId", 2);
|
|
1109
|
+
__decorateClass$1([field({
|
|
1110
|
+
sensitive: true,
|
|
1111
|
+
description: "The secret key your analytics service issues for this property. It is kept out of responses and tool results, but it is not encrypted in the database."
|
|
1112
|
+
})], AnalyticsProperty.prototype, "apiSecret", 2);
|
|
1113
|
+
__decorateClass$1([field({ description: "The website address, used by Plausible and Matomo." })], AnalyticsProperty.prototype, "siteDomain", 2);
|
|
1114
|
+
__decorateClass$1([field({ description: "The time zone the figures are reported in." })], AnalyticsProperty.prototype, "timeZone", 2);
|
|
1115
|
+
__decorateClass$1([field({ description: "The currency used for revenue figures, such as USD." })], AnalyticsProperty.prototype, "currencyCode", 2);
|
|
1116
|
+
__decorateClass$1([field({ description: "Whether tracking is active, inactive or still being set up." })], AnalyticsProperty.prototype, "status", 2);
|
|
1117
|
+
__decorateClass$1([field({ description: "When the property was last synced with the analytics service." })], AnalyticsProperty.prototype, "lastSyncAt", 2);
|
|
1118
|
+
__decorateClass$1([field({
|
|
1119
|
+
sensitive: true,
|
|
1120
|
+
description: "Extra connection details from your analytics service. They are kept out of responses and tool results, but they are not encrypted in the database."
|
|
1121
|
+
})], AnalyticsProperty.prototype, "providerMetadata", 2);
|
|
1135
1122
|
AnalyticsProperty = __decorateClass$1([TenantScoped({ mode: "optional" }), smrt({
|
|
1136
1123
|
tableStrategy: "sti",
|
|
1137
1124
|
api: { include: [
|
|
@@ -1275,29 +1262,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
1275
1262
|
var AnalyticsReport = class extends SmrtObject {
|
|
1276
1263
|
tenantId = null;
|
|
1277
1264
|
propertyId = "";
|
|
1278
|
-
/**
|
|
1279
|
-
* Report name
|
|
1280
|
-
*/
|
|
1281
1265
|
name = "";
|
|
1282
|
-
/**
|
|
1283
|
-
* Report description
|
|
1284
|
-
*/
|
|
1285
1266
|
description = "";
|
|
1286
|
-
/**
|
|
1287
|
-
* Dimensions to group by (JSON array)
|
|
1288
|
-
*/
|
|
1289
1267
|
dimensions = "[]";
|
|
1290
|
-
/**
|
|
1291
|
-
* Metrics to retrieve (JSON array)
|
|
1292
|
-
*/
|
|
1293
1268
|
metrics = "[]";
|
|
1294
|
-
/**
|
|
1295
|
-
* Date range start (relative or absolute)
|
|
1296
|
-
*/
|
|
1297
1269
|
dateRangeStart = "7daysAgo";
|
|
1298
|
-
/**
|
|
1299
|
-
* Date range end (relative or absolute)
|
|
1300
|
-
*/
|
|
1301
1270
|
dateRangeEnd = "today";
|
|
1302
1271
|
/**
|
|
1303
1272
|
* Dimension filter expression (JSON)
|
|
@@ -1315,33 +1284,15 @@ var AnalyticsReport = class extends SmrtObject {
|
|
|
1315
1284
|
* Maximum results to return
|
|
1316
1285
|
*/
|
|
1317
1286
|
maxResults = 0;
|
|
1318
|
-
/**
|
|
1319
|
-
* Report status
|
|
1320
|
-
*/
|
|
1321
1287
|
status = ReportStatus.DRAFT;
|
|
1322
|
-
/**
|
|
1323
|
-
* Scheduling frequency
|
|
1324
|
-
*/
|
|
1325
1288
|
frequency = ReportFrequency.ONCE;
|
|
1326
|
-
/**
|
|
1327
|
-
* Last run timestamp
|
|
1328
|
-
*/
|
|
1329
1289
|
lastRunAt = null;
|
|
1330
|
-
/**
|
|
1331
|
-
* Next scheduled run
|
|
1332
|
-
*/
|
|
1333
1290
|
nextRunAt = null;
|
|
1334
1291
|
/**
|
|
1335
1292
|
* Cached result data (JSON)
|
|
1336
1293
|
*/
|
|
1337
1294
|
resultData = "";
|
|
1338
|
-
/**
|
|
1339
|
-
* Row count from last run
|
|
1340
|
-
*/
|
|
1341
1295
|
rowCount = 0;
|
|
1342
|
-
/**
|
|
1343
|
-
* Error message from last failed run
|
|
1344
|
-
*/
|
|
1345
1296
|
lastError = "";
|
|
1346
1297
|
constructor(options = {}) {
|
|
1347
1298
|
super(options);
|
|
@@ -1589,22 +1540,28 @@ For this predicate, only treat higher values as favorable for user growth, engag
|
|
|
1589
1540
|
};
|
|
1590
1541
|
__publicField(AnalyticsReport, "__smrtPackage__", "@happyvertical/smrt-analytics");
|
|
1591
1542
|
__decorateClass([tenantId({ nullable: true })], AnalyticsReport.prototype, "tenantId", 2);
|
|
1592
|
-
__decorateClass([foreignKey("AnalyticsProperty")], AnalyticsReport.prototype, "propertyId", 2);
|
|
1543
|
+
__decorateClass([foreignKey("AnalyticsProperty", { description: "The website or app this report is about." })], AnalyticsReport.prototype, "propertyId", 2);
|
|
1544
|
+
__decorateClass([field({ description: "A short name for the report, such as Weekly traffic." })], AnalyticsReport.prototype, "name", 2);
|
|
1545
|
+
__decorateClass([field({ description: "What the report is for." })], AnalyticsReport.prototype, "description", 2);
|
|
1546
|
+
__decorateClass([field({ description: "What to break the figures down by, such as country or device, as a list." })], AnalyticsReport.prototype, "dimensions", 2);
|
|
1547
|
+
__decorateClass([field({ description: "What to count, such as active users or sessions, as a list." })], AnalyticsReport.prototype, "metrics", 2);
|
|
1548
|
+
__decorateClass([field({ description: "Where the period begins: a date, or a relative value such as 7daysAgo." })], AnalyticsReport.prototype, "dateRangeStart", 2);
|
|
1549
|
+
__decorateClass([field({ description: "Where the period ends: a date, or a relative value such as today." })], AnalyticsReport.prototype, "dateRangeEnd", 2);
|
|
1550
|
+
__decorateClass([field({ description: "Where the report stands: draft, scheduled, running, completed or failed." })], AnalyticsReport.prototype, "status", 2);
|
|
1551
|
+
__decorateClass([field({ description: "How often the report repeats: once, daily, weekly or monthly." })], AnalyticsReport.prototype, "frequency", 2);
|
|
1552
|
+
__decorateClass([field({ description: "When the report last ran." })], AnalyticsReport.prototype, "lastRunAt", 2);
|
|
1553
|
+
__decorateClass([field({ description: "When the report is next due to run." })], AnalyticsReport.prototype, "nextRunAt", 2);
|
|
1554
|
+
__decorateClass([field({ description: "How many rows the last run returned." })], AnalyticsReport.prototype, "rowCount", 2);
|
|
1555
|
+
__decorateClass([field({ description: "Why the last run failed. Empty when it worked." })], AnalyticsReport.prototype, "lastError", 2);
|
|
1593
1556
|
AnalyticsReport = __decorateClass([TenantScoped({ mode: "optional" }), smrt({
|
|
1594
1557
|
tableStrategy: "sti",
|
|
1595
1558
|
api: { include: [
|
|
1596
1559
|
"list",
|
|
1597
1560
|
"get",
|
|
1598
1561
|
"create",
|
|
1599
|
-
"update"
|
|
1600
|
-
"run"
|
|
1601
|
-
] },
|
|
1602
|
-
mcp: { include: [
|
|
1603
|
-
"list",
|
|
1604
|
-
"get",
|
|
1605
|
-
"run",
|
|
1606
|
-
"analyze"
|
|
1562
|
+
"update"
|
|
1607
1563
|
] },
|
|
1564
|
+
mcp: { include: ["list", "get"] },
|
|
1608
1565
|
cli: { skipApiCheck: true }
|
|
1609
1566
|
})], AnalyticsReport);
|
|
1610
1567
|
//#endregion
|
|
@@ -1714,6 +1671,71 @@ var AnalyticsReportCollection = class extends SmrtCollection {
|
|
|
1714
1671
|
}
|
|
1715
1672
|
};
|
|
1716
1673
|
//#endregion
|
|
1717
|
-
|
|
1674
|
+
//#region src/recipes.ts
|
|
1675
|
+
var AnalyticsReportsRecipe = class extends SmrtRecipe {
|
|
1676
|
+
static id = "analytics.reports";
|
|
1677
|
+
static help = "./reports.recipe.md";
|
|
1678
|
+
static label = "Analytics";
|
|
1679
|
+
static summary = "Save traffic reports for your websites and apps and get a plain-language read on the results.";
|
|
1680
|
+
static synonyms = [
|
|
1681
|
+
"analytics",
|
|
1682
|
+
"traffic",
|
|
1683
|
+
"pageviews",
|
|
1684
|
+
"visitors",
|
|
1685
|
+
"web stats",
|
|
1686
|
+
"google analytics",
|
|
1687
|
+
"plausible",
|
|
1688
|
+
"matomo"
|
|
1689
|
+
];
|
|
1690
|
+
static section = {
|
|
1691
|
+
id: "analytics",
|
|
1692
|
+
label: "Analytics",
|
|
1693
|
+
icon: "layers",
|
|
1694
|
+
description: "How your websites and apps are doing."
|
|
1695
|
+
};
|
|
1696
|
+
static models = [AnalyticsProperty, AnalyticsReport];
|
|
1697
|
+
static runtime = "server";
|
|
1698
|
+
static surfaces = [{
|
|
1699
|
+
kind: "route",
|
|
1700
|
+
path: "/analytics/summary",
|
|
1701
|
+
export: "@happyvertical/smrt-analytics/svelte#AnalyticsSummary",
|
|
1702
|
+
label: "Traffic summary"
|
|
1703
|
+
}];
|
|
1704
|
+
static nav = [{
|
|
1705
|
+
label: "Analytics properties",
|
|
1706
|
+
model: AnalyticsProperty,
|
|
1707
|
+
icon: "home",
|
|
1708
|
+
description: "The websites and apps you track, and who tracks them."
|
|
1709
|
+
}, {
|
|
1710
|
+
label: "Analytics reports",
|
|
1711
|
+
model: AnalyticsReport,
|
|
1712
|
+
icon: "fileText",
|
|
1713
|
+
description: "Saved reports, how often they run and what they found."
|
|
1714
|
+
}];
|
|
1715
|
+
static options = {
|
|
1716
|
+
AnalyticsProperty: { fields: {
|
|
1717
|
+
name: { visibility: "hidden" },
|
|
1718
|
+
industryCategory: { visibility: "advanced" },
|
|
1719
|
+
serviceLevel: { visibility: "advanced" },
|
|
1720
|
+
lastSyncAt: { locked: true }
|
|
1721
|
+
} },
|
|
1722
|
+
AnalyticsReport: { fields: {
|
|
1723
|
+
dimensionFilter: { visibility: "advanced" },
|
|
1724
|
+
metricFilter: { visibility: "advanced" },
|
|
1725
|
+
orderBy: { visibility: "advanced" },
|
|
1726
|
+
maxResults: { visibility: "advanced" },
|
|
1727
|
+
resultData: {
|
|
1728
|
+
visibility: "hidden",
|
|
1729
|
+
locked: true
|
|
1730
|
+
},
|
|
1731
|
+
rowCount: { locked: true },
|
|
1732
|
+
lastRunAt: { locked: true },
|
|
1733
|
+
nextRunAt: { locked: true },
|
|
1734
|
+
lastError: { locked: true }
|
|
1735
|
+
} }
|
|
1736
|
+
};
|
|
1737
|
+
};
|
|
1738
|
+
//#endregion
|
|
1739
|
+
export { AnalyticsDataStream, AnalyticsDataStreamCollection, AnalyticsEvent, AnalyticsEventCollection, AnalyticsProperty, AnalyticsPropertyCollection, AnalyticsPropertyStatus, AnalyticsProvider, AnalyticsReport, AnalyticsReportCollection, AnalyticsReportsRecipe, CountingMethod, CustomDimensionScope, DataStreamStatus, DataStreamType, ReportFrequency, ReportStatus, TrackingEventStatus, promptMessageOptions, smrtAnalyticsAnalyzePerformancePrompt, smrtAnalyticsAnalyzeResultsPrompt, smrtAnalyticsHasPositiveTrendsPrompt };
|
|
1718
1740
|
|
|
1719
1741
|
//# sourceMappingURL=index.js.map
|