@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.
- package/AGENTS.md +68 -0
- package/CLAUDE.md +1 -0
- package/LICENSE +7 -0
- package/README.md +131 -0
- package/dist/__smrt-register__.d.ts +2 -0
- package/dist/__smrt-register__.d.ts.map +1 -0
- package/dist/collections/AnalyticsDataStreamCollection.d.ts +69 -0
- package/dist/collections/AnalyticsDataStreamCollection.d.ts.map +1 -0
- package/dist/collections/AnalyticsEventCollection.d.ts +131 -0
- package/dist/collections/AnalyticsEventCollection.d.ts.map +1 -0
- package/dist/collections/AnalyticsPropertyCollection.d.ts +66 -0
- package/dist/collections/AnalyticsPropertyCollection.d.ts.map +1 -0
- package/dist/collections/AnalyticsReportCollection.d.ts +69 -0
- package/dist/collections/AnalyticsReportCollection.d.ts.map +1 -0
- package/dist/collections/index.d.ts +8 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1623 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.json +4161 -0
- package/dist/models/AnalyticsDataStream.d.ts +94 -0
- package/dist/models/AnalyticsDataStream.d.ts.map +1 -0
- package/dist/models/AnalyticsEvent.d.ts +142 -0
- package/dist/models/AnalyticsEvent.d.ts.map +1 -0
- package/dist/models/AnalyticsProperty.d.ts +142 -0
- package/dist/models/AnalyticsProperty.d.ts.map +1 -0
- package/dist/models/AnalyticsReport.d.ts +206 -0
- package/dist/models/AnalyticsReport.d.ts.map +1 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/playground.d.ts +2 -0
- package/dist/playground.d.ts.map +1 -0
- package/dist/playground.js +99 -0
- package/dist/playground.js.map +1 -0
- package/dist/prompts.d.ts +57 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +1570 -0
- package/dist/svelte/AnalyticsSummary.svelte +63 -0
- package/dist/svelte/AnalyticsSummary.svelte.d.ts +8 -0
- package/dist/svelte/AnalyticsSummary.svelte.d.ts.map +1 -0
- package/dist/svelte/EventsTable.svelte +161 -0
- package/dist/svelte/EventsTable.svelte.d.ts +16 -0
- package/dist/svelte/EventsTable.svelte.d.ts.map +1 -0
- package/dist/svelte/PropertyInfo.svelte +139 -0
- package/dist/svelte/PropertyInfo.svelte.d.ts +12 -0
- package/dist/svelte/PropertyInfo.svelte.d.ts.map +1 -0
- package/dist/svelte/PropertyStatusBadge.svelte +65 -0
- package/dist/svelte/PropertyStatusBadge.svelte.d.ts +7 -0
- package/dist/svelte/PropertyStatusBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/StatCard.svelte +63 -0
- package/dist/svelte/StatCard.svelte.d.ts +11 -0
- package/dist/svelte/StatCard.svelte.d.ts.map +1 -0
- package/dist/svelte/TrendBadge.svelte +49 -0
- package/dist/svelte/TrendBadge.svelte.d.ts +8 -0
- package/dist/svelte/TrendBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/i18n.d.ts +10 -0
- package/dist/svelte/i18n.d.ts.map +1 -0
- package/dist/svelte/i18n.js +10 -0
- package/dist/svelte/index.d.ts +29 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +39 -0
- package/dist/svelte/playground.d.ts +88 -0
- package/dist/svelte/playground.d.ts.map +1 -0
- package/dist/svelte/playground.js +95 -0
- package/dist/types/index.d.ts +267 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +79 -0
- package/dist/ui.js.map +1 -0
- 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":"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"}
|
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
|
package/dist/ui.d.ts.map
ADDED
|
@@ -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;"}
|