@happyvertical/smrt-analytics 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/AGENTS.md +68 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +131 -0
  5. package/dist/__smrt-register__.d.ts +2 -0
  6. package/dist/__smrt-register__.d.ts.map +1 -0
  7. package/dist/collections/AnalyticsDataStreamCollection.d.ts +69 -0
  8. package/dist/collections/AnalyticsDataStreamCollection.d.ts.map +1 -0
  9. package/dist/collections/AnalyticsEventCollection.d.ts +131 -0
  10. package/dist/collections/AnalyticsEventCollection.d.ts.map +1 -0
  11. package/dist/collections/AnalyticsPropertyCollection.d.ts +66 -0
  12. package/dist/collections/AnalyticsPropertyCollection.d.ts.map +1 -0
  13. package/dist/collections/AnalyticsReportCollection.d.ts +69 -0
  14. package/dist/collections/AnalyticsReportCollection.d.ts.map +1 -0
  15. package/dist/collections/index.d.ts +8 -0
  16. package/dist/collections/index.d.ts.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +1623 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/manifest.json +4161 -0
  22. package/dist/models/AnalyticsDataStream.d.ts +94 -0
  23. package/dist/models/AnalyticsDataStream.d.ts.map +1 -0
  24. package/dist/models/AnalyticsEvent.d.ts +142 -0
  25. package/dist/models/AnalyticsEvent.d.ts.map +1 -0
  26. package/dist/models/AnalyticsProperty.d.ts +142 -0
  27. package/dist/models/AnalyticsProperty.d.ts.map +1 -0
  28. package/dist/models/AnalyticsReport.d.ts +206 -0
  29. package/dist/models/AnalyticsReport.d.ts.map +1 -0
  30. package/dist/models/index.d.ts +8 -0
  31. package/dist/models/index.d.ts.map +1 -0
  32. package/dist/playground.d.ts +2 -0
  33. package/dist/playground.d.ts.map +1 -0
  34. package/dist/playground.js +99 -0
  35. package/dist/playground.js.map +1 -0
  36. package/dist/prompts.d.ts +57 -0
  37. package/dist/prompts.d.ts.map +1 -0
  38. package/dist/smrt-knowledge.json +1570 -0
  39. package/dist/svelte/AnalyticsSummary.svelte +63 -0
  40. package/dist/svelte/AnalyticsSummary.svelte.d.ts +8 -0
  41. package/dist/svelte/AnalyticsSummary.svelte.d.ts.map +1 -0
  42. package/dist/svelte/EventsTable.svelte +161 -0
  43. package/dist/svelte/EventsTable.svelte.d.ts +16 -0
  44. package/dist/svelte/EventsTable.svelte.d.ts.map +1 -0
  45. package/dist/svelte/PropertyInfo.svelte +139 -0
  46. package/dist/svelte/PropertyInfo.svelte.d.ts +12 -0
  47. package/dist/svelte/PropertyInfo.svelte.d.ts.map +1 -0
  48. package/dist/svelte/PropertyStatusBadge.svelte +65 -0
  49. package/dist/svelte/PropertyStatusBadge.svelte.d.ts +7 -0
  50. package/dist/svelte/PropertyStatusBadge.svelte.d.ts.map +1 -0
  51. package/dist/svelte/StatCard.svelte +63 -0
  52. package/dist/svelte/StatCard.svelte.d.ts +11 -0
  53. package/dist/svelte/StatCard.svelte.d.ts.map +1 -0
  54. package/dist/svelte/TrendBadge.svelte +49 -0
  55. package/dist/svelte/TrendBadge.svelte.d.ts +8 -0
  56. package/dist/svelte/TrendBadge.svelte.d.ts.map +1 -0
  57. package/dist/svelte/i18n.d.ts +10 -0
  58. package/dist/svelte/i18n.d.ts.map +1 -0
  59. package/dist/svelte/i18n.js +10 -0
  60. package/dist/svelte/index.d.ts +29 -0
  61. package/dist/svelte/index.d.ts.map +1 -0
  62. package/dist/svelte/index.js +39 -0
  63. package/dist/svelte/playground.d.ts +88 -0
  64. package/dist/svelte/playground.d.ts.map +1 -0
  65. package/dist/svelte/playground.js +95 -0
  66. package/dist/types/index.d.ts +267 -0
  67. package/dist/types/index.d.ts.map +1 -0
  68. package/dist/ui.d.ts +10 -0
  69. package/dist/ui.d.ts.map +1 -0
  70. package/dist/ui.js +79 -0
  71. package/dist/ui.js.map +1 -0
  72. package/package.json +95 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Analytics Module Svelte Components
3
+ *
4
+ * Optional Svelte UI components for analytics dashboards. Auto-registers
5
+ * components with `ModuleUIRegistry` on import.
6
+ *
7
+ * @example Direct imports
8
+ * ```typescript
9
+ * import { AnalyticsSummary, EventsTable } from '@happyvertical/smrt-analytics/svelte';
10
+ * ```
11
+ *
12
+ * @example Registry-based discovery
13
+ * ```typescript
14
+ * import { ModuleUIRegistry } from '@happyvertical/smrt-ui/registry';
15
+ * import '@happyvertical/smrt-analytics/svelte'; // Auto-registers components
16
+ *
17
+ * const Component = ModuleUIRegistry.get('@happyvertical/smrt-analytics', 'analytics-summary');
18
+ * ```
19
+ *
20
+ * @packageDocumentation
21
+ */
22
+ import AnalyticsSummary from './AnalyticsSummary.svelte';
23
+ import EventsTable from './EventsTable.svelte';
24
+ import PropertyInfo from './PropertyInfo.svelte';
25
+ import PropertyStatusBadge from './PropertyStatusBadge.svelte';
26
+ import StatCard from './StatCard.svelte';
27
+ import TrendBadge from './TrendBadge.svelte';
28
+ export { AnalyticsSummary, EventsTable, PropertyInfo, PropertyStatusBadge, StatCard, TrendBadge, };
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Analytics Module Svelte Components
3
+ *
4
+ * Optional Svelte UI components for analytics dashboards. Auto-registers
5
+ * components with `ModuleUIRegistry` on import.
6
+ *
7
+ * @example Direct imports
8
+ * ```typescript
9
+ * import { AnalyticsSummary, EventsTable } from '@happyvertical/smrt-analytics/svelte';
10
+ * ```
11
+ *
12
+ * @example Registry-based discovery
13
+ * ```typescript
14
+ * import { ModuleUIRegistry } from '@happyvertical/smrt-ui/registry';
15
+ * import '@happyvertical/smrt-analytics/svelte'; // Auto-registers components
16
+ *
17
+ * const Component = ModuleUIRegistry.get('@happyvertical/smrt-analytics', 'analytics-summary');
18
+ * ```
19
+ *
20
+ * @packageDocumentation
21
+ */
22
+ import { ModuleUIRegistry } from '@happyvertical/smrt-ui/registry';
23
+ import { ANALYTICS_MODULE_META } from '../ui.js';
24
+ import AnalyticsSummary from './AnalyticsSummary.svelte';
25
+ import EventsTable from './EventsTable.svelte';
26
+ import PropertyInfo from './PropertyInfo.svelte';
27
+ import PropertyStatusBadge from './PropertyStatusBadge.svelte';
28
+ import StatCard from './StatCard.svelte';
29
+ import TrendBadge from './TrendBadge.svelte';
30
+ // Export components
31
+ export { AnalyticsSummary, EventsTable, PropertyInfo, PropertyStatusBadge, StatCard, TrendBadge, };
32
+ // Auto-register module and components with ModuleUIRegistry
33
+ ModuleUIRegistry.registerModule(ANALYTICS_MODULE_META);
34
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'analytics-summary', AnalyticsSummary);
35
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'events-table', EventsTable);
36
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'property-info', PropertyInfo);
37
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'property-status-badge', PropertyStatusBadge);
38
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'stat-card', StatCard);
39
+ ModuleUIRegistry.register('@happyvertical/smrt-analytics', 'trend-badge', TrendBadge);
@@ -0,0 +1,88 @@
1
+ declare const _default: {
2
+ packageName: string;
3
+ displayName: string;
4
+ description: string;
5
+ entries: ({
6
+ id: string;
7
+ title: string;
8
+ description: string;
9
+ loadComponent: () => Promise<typeof import("./AnalyticsSummary.svelte")>;
10
+ order: number;
11
+ props: {
12
+ stats: {
13
+ todayPageviews: number;
14
+ yesterdayPageviews: number;
15
+ todayUsers: number;
16
+ yesterdayUsers: number;
17
+ trend: string;
18
+ trendPercent: number;
19
+ };
20
+ events?: undefined;
21
+ maxRows?: undefined;
22
+ propertyId?: undefined;
23
+ measurementId?: undefined;
24
+ provider?: undefined;
25
+ status?: undefined;
26
+ lastSyncAt?: undefined;
27
+ siteDomain?: undefined;
28
+ };
29
+ modes: {
30
+ mock: {
31
+ label: string;
32
+ };
33
+ };
34
+ } | {
35
+ id: string;
36
+ title: string;
37
+ description: string;
38
+ loadComponent: () => Promise<typeof import("./EventsTable.svelte")>;
39
+ order: number;
40
+ props: {
41
+ events: {
42
+ id: string;
43
+ eventName: string;
44
+ clientId: string;
45
+ pagePath: string;
46
+ eventTimestamp: string;
47
+ status: string;
48
+ }[];
49
+ maxRows: number;
50
+ stats?: undefined;
51
+ propertyId?: undefined;
52
+ measurementId?: undefined;
53
+ provider?: undefined;
54
+ status?: undefined;
55
+ lastSyncAt?: undefined;
56
+ siteDomain?: undefined;
57
+ };
58
+ modes: {
59
+ mock: {
60
+ label: string;
61
+ };
62
+ };
63
+ } | {
64
+ id: string;
65
+ title: string;
66
+ description: string;
67
+ loadComponent: () => Promise<typeof import("./PropertyInfo.svelte")>;
68
+ order: number;
69
+ props: {
70
+ propertyId: string;
71
+ measurementId: string;
72
+ provider: string;
73
+ status: string;
74
+ lastSyncAt: string;
75
+ siteDomain: string;
76
+ stats?: undefined;
77
+ events?: undefined;
78
+ maxRows?: undefined;
79
+ };
80
+ modes: {
81
+ mock: {
82
+ label: string;
83
+ };
84
+ };
85
+ })[];
86
+ };
87
+ export default _default;
88
+ //# sourceMappingURL=playground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../../src/svelte/playground.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,wBA6DE"}
@@ -0,0 +1,95 @@
1
+ const sampleStats = {
2
+ todayPageviews: 18240,
3
+ yesterdayPageviews: 15980,
4
+ todayUsers: 3924,
5
+ yesterdayUsers: 3410,
6
+ trend: 'up',
7
+ trendPercent: 14.1,
8
+ };
9
+ const sampleEvents = [
10
+ {
11
+ id: 'analytics-event-1',
12
+ eventName: 'page_view',
13
+ clientId: 'client_01HJQ9M4X0A8Q2D',
14
+ pagePath: '/guides/editorial-playbook',
15
+ eventTimestamp: '2026-03-21T16:14:00.000Z',
16
+ status: 'sent',
17
+ },
18
+ {
19
+ id: 'analytics-event-2',
20
+ eventName: 'cta_click',
21
+ clientId: 'client_01HJQ9M4X0A8Q2D',
22
+ pagePath: '/pricing',
23
+ eventTimestamp: '2026-03-21T16:10:00.000Z',
24
+ status: 'sent',
25
+ },
26
+ {
27
+ id: 'analytics-event-3',
28
+ eventName: 'form_submit',
29
+ clientId: 'client_01HJQ9NGH1J9Q8R',
30
+ pagePath: '/newsletter',
31
+ eventTimestamp: '2026-03-21T15:58:00.000Z',
32
+ status: 'pending',
33
+ },
34
+ ];
35
+ const loadAnalyticsSummary = () => import('./AnalyticsSummary.svelte');
36
+ const loadEventsTable = () => import('./EventsTable.svelte');
37
+ const loadPropertyInfo = () => import('./PropertyInfo.svelte');
38
+ export default {
39
+ packageName: '@happyvertical/smrt-analytics',
40
+ displayName: 'Analytics',
41
+ description: 'Dashboard primitives for property health, traffic trends, and recent event delivery.',
42
+ entries: [
43
+ {
44
+ id: 'analytics-summary',
45
+ title: 'Analytics Summary',
46
+ description: 'Traffic summary cards that surface today-vs-yesterday performance at a glance.',
47
+ loadComponent: loadAnalyticsSummary,
48
+ order: 1,
49
+ props: {
50
+ stats: sampleStats,
51
+ },
52
+ modes: {
53
+ mock: {
54
+ label: 'Mock',
55
+ },
56
+ },
57
+ },
58
+ {
59
+ id: 'events-table',
60
+ title: 'Events Table',
61
+ description: 'Recent outbound analytics events with delivery status and page context.',
62
+ loadComponent: loadEventsTable,
63
+ order: 2,
64
+ props: {
65
+ events: sampleEvents,
66
+ maxRows: 8,
67
+ },
68
+ modes: {
69
+ mock: {
70
+ label: 'Mock',
71
+ },
72
+ },
73
+ },
74
+ {
75
+ id: 'property-info',
76
+ title: 'Property Info',
77
+ description: 'Connection status and property metadata for a configured analytics destination.',
78
+ loadComponent: loadPropertyInfo,
79
+ order: 3,
80
+ props: {
81
+ propertyId: 'properties/348920114',
82
+ measurementId: 'G-9A4F2P7Q1C',
83
+ provider: 'ga4',
84
+ status: 'active',
85
+ lastSyncAt: '2026-03-21T16:05:00.000Z',
86
+ siteDomain: 'newsroom.example.com',
87
+ },
88
+ modes: {
89
+ mock: {
90
+ label: 'Mock',
91
+ },
92
+ },
93
+ },
94
+ ],
95
+ };
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Types and enums for smrt-analytics package
3
+ */
4
+ /**
5
+ * Analytics provider types
6
+ */
7
+ export declare enum AnalyticsProvider {
8
+ GA4 = "ga4",
9
+ PLAUSIBLE = "plausible",
10
+ MATOMO = "matomo"
11
+ }
12
+ /**
13
+ * Status for analytics properties
14
+ */
15
+ export declare enum AnalyticsPropertyStatus {
16
+ ACTIVE = "active",
17
+ INACTIVE = "inactive",
18
+ PENDING = "pending"
19
+ }
20
+ /**
21
+ * Data stream types (matching SDK types)
22
+ */
23
+ export declare enum DataStreamType {
24
+ WEB = "WEB_DATA_STREAM",
25
+ ANDROID = "ANDROID_APP_DATA_STREAM",
26
+ IOS = "IOS_APP_DATA_STREAM"
27
+ }
28
+ /**
29
+ * Status for data streams
30
+ */
31
+ export declare enum DataStreamStatus {
32
+ ACTIVE = "active",
33
+ INACTIVE = "inactive"
34
+ }
35
+ /**
36
+ * Report status
37
+ */
38
+ export declare enum ReportStatus {
39
+ DRAFT = "draft",
40
+ SCHEDULED = "scheduled",
41
+ RUNNING = "running",
42
+ COMPLETED = "completed",
43
+ FAILED = "failed"
44
+ }
45
+ /**
46
+ * Report frequency for scheduled reports
47
+ */
48
+ export declare enum ReportFrequency {
49
+ ONCE = "once",
50
+ DAILY = "daily",
51
+ WEEKLY = "weekly",
52
+ MONTHLY = "monthly"
53
+ }
54
+ /**
55
+ * Custom dimension scope (matching SDK types)
56
+ */
57
+ export declare enum CustomDimensionScope {
58
+ EVENT = "EVENT",
59
+ USER = "USER",
60
+ ITEM = "ITEM"
61
+ }
62
+ /**
63
+ * Event tracking status
64
+ */
65
+ export declare enum TrackingEventStatus {
66
+ PENDING = "pending",
67
+ SENT = "sent",
68
+ FAILED = "failed"
69
+ }
70
+ /**
71
+ * Key event counting method (matching SDK types)
72
+ */
73
+ export declare enum CountingMethod {
74
+ ONCE_PER_EVENT = "ONCE_PER_EVENT",
75
+ ONCE_PER_SESSION = "ONCE_PER_SESSION"
76
+ }
77
+ /**
78
+ * Day-over-day property stats with trend calculation
79
+ */
80
+ export interface PropertyStatsWithTrend {
81
+ todayPageviews: number;
82
+ todayUsers: number;
83
+ yesterdayPageviews: number;
84
+ yesterdayUsers: number;
85
+ trend: 'up' | 'down' | 'flat';
86
+ trendPercent: number;
87
+ }
88
+ /**
89
+ * Analytics property/site representation (SDK-compatible)
90
+ */
91
+ export interface SDKProperty {
92
+ id: string;
93
+ name: string;
94
+ displayName: string;
95
+ createTime: string;
96
+ updateTime?: string;
97
+ timeZone?: string;
98
+ currencyCode?: string;
99
+ industryCategory?: string;
100
+ serviceLevel?: 'STANDARD' | 'PREMIUM';
101
+ }
102
+ /**
103
+ * Data stream representation (SDK-compatible)
104
+ */
105
+ export interface SDKDataStream {
106
+ id: string;
107
+ type: 'WEB_DATA_STREAM' | 'ANDROID_APP_DATA_STREAM' | 'IOS_APP_DATA_STREAM';
108
+ displayName: string;
109
+ measurementId?: string;
110
+ firebaseAppId?: string;
111
+ defaultUri?: string;
112
+ createTime: string;
113
+ updateTime?: string;
114
+ }
115
+ /**
116
+ * Custom dimension representation (SDK-compatible)
117
+ */
118
+ export interface SDKCustomDimension {
119
+ id: string;
120
+ name: string;
121
+ parameterName: string;
122
+ displayName: string;
123
+ description?: string;
124
+ scope: 'EVENT' | 'USER' | 'ITEM';
125
+ disallowAdsPersonalization?: boolean;
126
+ }
127
+ /**
128
+ * Custom metric representation (SDK-compatible)
129
+ */
130
+ export interface SDKCustomMetric {
131
+ id: string;
132
+ name: string;
133
+ parameterName: string;
134
+ displayName: string;
135
+ description?: string;
136
+ scope: 'EVENT';
137
+ measurementUnit: string;
138
+ restrictedMetricType?: 'COST_DATA' | 'REVENUE_DATA';
139
+ }
140
+ /**
141
+ * Key event (conversion) representation (SDK-compatible)
142
+ */
143
+ export interface SDKKeyEvent {
144
+ id: string;
145
+ name: string;
146
+ eventName: string;
147
+ createTime: string;
148
+ countingMethod?: 'ONCE_PER_EVENT' | 'ONCE_PER_SESSION';
149
+ defaultValue?: {
150
+ numericValue?: number;
151
+ currencyCode?: string;
152
+ };
153
+ }
154
+ /**
155
+ * Report options (SDK-compatible)
156
+ */
157
+ export interface SDKReportOptions {
158
+ dateRanges: Array<{
159
+ startDate: string;
160
+ endDate: string;
161
+ name?: string;
162
+ }>;
163
+ dimensions?: Array<{
164
+ name: string;
165
+ }>;
166
+ metrics: Array<{
167
+ name: string;
168
+ }>;
169
+ offset?: number;
170
+ limit?: number;
171
+ orderBys?: Array<{
172
+ metric?: {
173
+ metricName: string;
174
+ };
175
+ dimension?: {
176
+ dimensionName: string;
177
+ };
178
+ desc?: boolean;
179
+ }>;
180
+ keepEmptyRows?: boolean;
181
+ returnPropertyQuota?: boolean;
182
+ }
183
+ /**
184
+ * Report result (SDK-compatible)
185
+ */
186
+ export interface SDKReportResult {
187
+ dimensionHeaders: Array<{
188
+ name: string;
189
+ }>;
190
+ metricHeaders: Array<{
191
+ name: string;
192
+ type: string;
193
+ }>;
194
+ rows: Array<{
195
+ dimensionValues: Array<{
196
+ value: string;
197
+ }>;
198
+ metricValues: Array<{
199
+ value: string;
200
+ }>;
201
+ }>;
202
+ rowCount?: number;
203
+ metadata?: {
204
+ currencyCode?: string;
205
+ timeZone?: string;
206
+ dataLossFromOtherRow?: boolean;
207
+ emptyReason?: string;
208
+ };
209
+ }
210
+ /**
211
+ * Track event payload (SDK-compatible)
212
+ */
213
+ export interface SDKTrackEvent {
214
+ name: string;
215
+ params?: Record<string, string | number | boolean>;
216
+ clientId?: string;
217
+ userId?: string;
218
+ timestamp?: number;
219
+ nonPersonalizedAds?: boolean;
220
+ }
221
+ /**
222
+ * Pageview event payload (SDK-compatible)
223
+ */
224
+ export interface SDKPageviewEvent {
225
+ pagePath: string;
226
+ pageTitle?: string;
227
+ pageLocation?: string;
228
+ clientId?: string;
229
+ userId?: string;
230
+ params?: Record<string, string | number | boolean>;
231
+ }
232
+ /**
233
+ * Analytics provider capabilities (SDK-compatible)
234
+ */
235
+ export interface AnalyticsCapabilities {
236
+ propertyManagement: boolean;
237
+ dataStreams: boolean;
238
+ customDimensions: boolean;
239
+ customMetrics: boolean;
240
+ keyEvents: boolean;
241
+ reporting: boolean;
242
+ realtimeReporting: boolean;
243
+ serverSideTracking: boolean;
244
+ clientSideSnippet: boolean;
245
+ userIdentification: boolean;
246
+ batchTracking: boolean;
247
+ }
248
+ /**
249
+ * Analytics interface (SDK-compatible)
250
+ * This is a subset of the full SDK interface for type compatibility
251
+ */
252
+ export interface AnalyticsInterface {
253
+ createProperty(options: {
254
+ displayName: string;
255
+ timeZone?: string;
256
+ currencyCode?: string;
257
+ }): Promise<SDKProperty>;
258
+ listProperties(): Promise<SDKProperty[]>;
259
+ getProperty(propertyId: string): Promise<SDKProperty>;
260
+ getDataStreams(propertyId: string): Promise<SDKDataStream[]>;
261
+ runReport(propertyId: string, options: SDKReportOptions): Promise<SDKReportResult>;
262
+ track(event: SDKTrackEvent): Promise<void>;
263
+ trackPageview(pageview: SDKPageviewEvent): Promise<void>;
264
+ trackBatch(events: SDKTrackEvent[]): Promise<void>;
265
+ getCapabilities(): Promise<AnalyticsCapabilities>;
266
+ }
267
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,oBAAY,uBAAuB;IACjC,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,GAAG,oBAAoB;IACvB,OAAO,4BAA4B;IACnC,GAAG,wBAAwB;CAC5B;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACtC;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,GAAG,yBAAyB,GAAG,qBAAqB,CAAC;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;IACvD,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,KAAK,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,MAAM,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAChC,SAAS,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1C,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,IAAI,EAAE,KAAK,CAAC;QACV,eAAe,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,YAAY,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,OAAO,EAAE;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7D,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnD"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';
2
+ /**
3
+ * Analytics module UI slots
4
+ */
5
+ export declare const ANALYTICS_UI_SLOTS: Record<string, ModuleUISlot>;
6
+ /**
7
+ * Analytics module metadata
8
+ */
9
+ export declare const ANALYTICS_MODULE_META: SmrtModuleMeta;
10
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAyD3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAkBnC,CAAC"}
package/dist/ui.js ADDED
@@ -0,0 +1,79 @@
1
+ const ANALYTICS_UI_SLOTS = {
2
+ "analytics-summary": {
3
+ id: "analytics-summary",
4
+ label: "Analytics Summary",
5
+ description: "Summary cards for pageviews, users, and trend deltas across today/yesterday",
6
+ icon: "bar-chart-3",
7
+ category: "display",
8
+ order: 1,
9
+ propsInterface: "AnalyticsSummaryProps"
10
+ },
11
+ "events-table": {
12
+ id: "events-table",
13
+ label: "Events Table",
14
+ description: "Tabular display of recent analytics events with filters",
15
+ icon: "list",
16
+ category: "list",
17
+ order: 2,
18
+ propsInterface: "EventsTableProps"
19
+ },
20
+ "property-info": {
21
+ id: "property-info",
22
+ label: "Property Info",
23
+ description: "Display analytics property identifiers and configuration",
24
+ icon: "info",
25
+ category: "display",
26
+ order: 3,
27
+ propsInterface: "PropertyInfoProps"
28
+ },
29
+ "property-status-badge": {
30
+ id: "property-status-badge",
31
+ label: "Property Status Badge",
32
+ description: "Compact status indicator for an analytics property",
33
+ icon: "badge",
34
+ category: "display",
35
+ order: 4,
36
+ propsInterface: "PropertyStatusBadgeProps"
37
+ },
38
+ "stat-card": {
39
+ id: "stat-card",
40
+ label: "Stat Card",
41
+ description: "Single-metric card with label, value, optional trend and subtitle",
42
+ icon: "trending-up",
43
+ category: "display",
44
+ order: 5,
45
+ propsInterface: "StatCardProps"
46
+ },
47
+ "trend-badge": {
48
+ id: "trend-badge",
49
+ label: "Trend Badge",
50
+ description: "Up/down/flat trend indicator with percentage delta",
51
+ icon: "arrow-up-right",
52
+ category: "display",
53
+ order: 6,
54
+ propsInterface: "TrendBadgeProps"
55
+ }
56
+ };
57
+ const ANALYTICS_MODULE_META = {
58
+ name: "@happyvertical/smrt-analytics",
59
+ displayName: "Analytics",
60
+ description: "Analytics integration models for GA4, Plausible, and Matomo with server-side event tracking and AI-powered reporting",
61
+ uiSlots: ANALYTICS_UI_SLOTS,
62
+ models: [
63
+ "AnalyticsProperty",
64
+ "AnalyticsDataStream",
65
+ "AnalyticsEvent",
66
+ "AnalyticsReport"
67
+ ],
68
+ collections: [
69
+ "AnalyticsPropertyCollection",
70
+ "AnalyticsDataStreamCollection",
71
+ "AnalyticsEventCollection",
72
+ "AnalyticsReportCollection"
73
+ ]
74
+ };
75
+ export {
76
+ ANALYTICS_MODULE_META,
77
+ ANALYTICS_UI_SLOTS
78
+ };
79
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["/**\n * Analytics Module UI Slot Declarations\n *\n * This file defines the UI extension points for the analytics module.\n * UI components are implemented in the ./svelte subpath and auto-register\n * with `ModuleUIRegistry` when that subpath is imported.\n *\n * @example Usage\n * ```typescript\n * import { ANALYTICS_MODULE_META } from '@happyvertical/smrt-analytics/ui';\n * console.log(ANALYTICS_MODULE_META.uiSlots);\n * ```\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\n/**\n * Analytics module UI slots\n */\nexport const ANALYTICS_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'analytics-summary': {\n id: 'analytics-summary',\n label: 'Analytics Summary',\n description:\n 'Summary cards for pageviews, users, and trend deltas across today/yesterday',\n icon: 'bar-chart-3',\n category: 'display',\n order: 1,\n propsInterface: 'AnalyticsSummaryProps',\n },\n 'events-table': {\n id: 'events-table',\n label: 'Events Table',\n description: 'Tabular display of recent analytics events with filters',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'EventsTableProps',\n },\n 'property-info': {\n id: 'property-info',\n label: 'Property Info',\n description: 'Display analytics property identifiers and configuration',\n icon: 'info',\n category: 'display',\n order: 3,\n propsInterface: 'PropertyInfoProps',\n },\n 'property-status-badge': {\n id: 'property-status-badge',\n label: 'Property Status Badge',\n description: 'Compact status indicator for an analytics property',\n icon: 'badge',\n category: 'display',\n order: 4,\n propsInterface: 'PropertyStatusBadgeProps',\n },\n 'stat-card': {\n id: 'stat-card',\n label: 'Stat Card',\n description:\n 'Single-metric card with label, value, optional trend and subtitle',\n icon: 'trending-up',\n category: 'display',\n order: 5,\n propsInterface: 'StatCardProps',\n },\n 'trend-badge': {\n id: 'trend-badge',\n label: 'Trend Badge',\n description: 'Up/down/flat trend indicator with percentage delta',\n icon: 'arrow-up-right',\n category: 'display',\n order: 6,\n propsInterface: 'TrendBadgeProps',\n },\n};\n\n/**\n * Analytics module metadata\n */\nexport const ANALYTICS_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-analytics',\n displayName: 'Analytics',\n description:\n 'Analytics integration models for GA4, Plausible, and Matomo with server-side event tracking and AI-powered reporting',\n uiSlots: ANALYTICS_UI_SLOTS,\n models: [\n 'AnalyticsProperty',\n 'AnalyticsDataStream',\n 'AnalyticsEvent',\n 'AnalyticsReport',\n ],\n collections: [\n 'AnalyticsPropertyCollection',\n 'AnalyticsDataStreamCollection',\n 'AnalyticsEventCollection',\n 'AnalyticsReportCollection',\n ],\n};\n"],"names":[],"mappings":"AAmBO,MAAM,qBAAmD;AAAA,EAC9D,qBAAqB;AAAA,IACnB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,iBAAiB;AAAA,IACf,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,yBAAyB;AAAA,IACvB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAEpB;AAKO,MAAM,wBAAwC;AAAA,EACnD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aACE;AAAA,EACF,SAAS;AAAA,EACT,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,aAAa;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}