@contractspec/example.analytics-dashboard 1.57.0 → 1.58.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/dist/browser/dashboard/dashboard.enum.js +34 -0
- package/dist/browser/dashboard/dashboard.operation.js +289 -0
- package/dist/browser/dashboard/dashboard.presentation.js +197 -0
- package/dist/browser/dashboard/dashboard.schema.js +126 -0
- package/dist/browser/dashboard/dashboard.test-spec.js +213 -0
- package/dist/browser/dashboard/index.js +299 -0
- package/dist/browser/dashboard.feature.js +84 -0
- package/dist/browser/datasource/posthog-datasource.js +289 -0
- package/dist/browser/docs/analytics-dashboard.docblock.js +103 -0
- package/dist/browser/docs/index.js +103 -0
- package/dist/browser/events.js +81 -0
- package/dist/browser/example.js +42 -0
- package/dist/browser/handlers/analytics.handlers.js +278 -0
- package/dist/browser/handlers/index.js +571 -0
- package/dist/browser/handlers/query.handlers.js +294 -0
- package/dist/browser/index.js +1677 -0
- package/dist/browser/query/index.js +159 -0
- package/dist/browser/query/query.enum.js +11 -0
- package/dist/browser/query/query.operation.js +154 -0
- package/dist/browser/query/query.presentation.js +119 -0
- package/dist/browser/query/query.schema.js +70 -0
- package/dist/browser/query/query.test-spec.js +113 -0
- package/dist/browser/query-engine/index.js +491 -0
- package/dist/browser/seeders/index.js +20 -0
- package/dist/browser/ui/AnalyticsDashboard.js +394 -0
- package/dist/browser/ui/hooks/index.js +69 -0
- package/dist/browser/ui/hooks/useAnalyticsData.js +66 -0
- package/dist/browser/ui/index.js +671 -0
- package/dist/browser/ui/renderers/analytics.markdown.js +275 -0
- package/dist/browser/ui/renderers/index.js +275 -0
- package/dist/dashboard/dashboard.enum.d.ts +3 -8
- package/dist/dashboard/dashboard.enum.d.ts.map +1 -1
- package/dist/dashboard/dashboard.enum.js +31 -39
- package/dist/dashboard/dashboard.operation.d.ts +444 -450
- package/dist/dashboard/dashboard.operation.d.ts.map +1 -1
- package/dist/dashboard/dashboard.operation.js +284 -207
- package/dist/dashboard/dashboard.presentation.d.ts +3 -8
- package/dist/dashboard/dashboard.presentation.d.ts.map +1 -1
- package/dist/dashboard/dashboard.presentation.js +193 -85
- package/dist/dashboard/dashboard.schema.d.ts +289 -294
- package/dist/dashboard/dashboard.schema.d.ts.map +1 -1
- package/dist/dashboard/dashboard.schema.js +119 -228
- package/dist/dashboard/dashboard.test-spec.d.ts +4 -9
- package/dist/dashboard/dashboard.test-spec.d.ts.map +1 -1
- package/dist/dashboard/dashboard.test-spec.js +209 -228
- package/dist/dashboard/index.d.ts +7 -4
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +299 -4
- package/dist/dashboard.feature.d.ts +1 -6
- package/dist/dashboard.feature.d.ts.map +1 -1
- package/dist/dashboard.feature.js +83 -175
- package/dist/datasource/posthog-datasource.d.ts +15 -19
- package/dist/datasource/posthog-datasource.d.ts.map +1 -1
- package/dist/datasource/posthog-datasource.js +274 -238
- package/dist/docs/analytics-dashboard.docblock.d.ts +2 -1
- package/dist/docs/analytics-dashboard.docblock.d.ts.map +1 -0
- package/dist/docs/analytics-dashboard.docblock.js +45 -56
- package/dist/docs/index.d.ts +2 -1
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +104 -1
- package/dist/events.d.ts +109 -115
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +74 -120
- package/dist/example.d.ts +2 -6
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +41 -55
- package/dist/handlers/analytics.handlers.d.ts +110 -109
- package/dist/handlers/analytics.handlers.d.ts.map +1 -1
- package/dist/handlers/analytics.handlers.js +267 -298
- package/dist/handlers/index.d.ts +3 -3
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +571 -3
- package/dist/handlers/query.handlers.d.ts +7 -11
- package/dist/handlers/query.handlers.d.ts.map +1 -1
- package/dist/handlers/query.handlers.js +292 -7
- package/dist/index.d.ts +12 -13
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1678 -14
- package/dist/node/dashboard/dashboard.enum.js +34 -0
- package/dist/node/dashboard/dashboard.operation.js +289 -0
- package/dist/node/dashboard/dashboard.presentation.js +197 -0
- package/dist/node/dashboard/dashboard.schema.js +126 -0
- package/dist/node/dashboard/dashboard.test-spec.js +213 -0
- package/dist/node/dashboard/index.js +299 -0
- package/dist/node/dashboard.feature.js +84 -0
- package/dist/node/datasource/posthog-datasource.js +289 -0
- package/dist/node/docs/analytics-dashboard.docblock.js +103 -0
- package/dist/node/docs/index.js +103 -0
- package/dist/node/events.js +81 -0
- package/dist/node/example.js +42 -0
- package/dist/node/handlers/analytics.handlers.js +278 -0
- package/dist/node/handlers/index.js +571 -0
- package/dist/node/handlers/query.handlers.js +294 -0
- package/dist/node/index.js +1677 -0
- package/dist/node/query/index.js +159 -0
- package/dist/node/query/query.enum.js +11 -0
- package/dist/node/query/query.operation.js +154 -0
- package/dist/node/query/query.presentation.js +119 -0
- package/dist/node/query/query.schema.js +70 -0
- package/dist/node/query/query.test-spec.js +113 -0
- package/dist/node/query-engine/index.js +491 -0
- package/dist/node/seeders/index.js +20 -0
- package/dist/node/ui/AnalyticsDashboard.js +394 -0
- package/dist/node/ui/hooks/index.js +69 -0
- package/dist/node/ui/hooks/useAnalyticsData.js +66 -0
- package/dist/node/ui/index.js +671 -0
- package/dist/node/ui/renderers/analytics.markdown.js +275 -0
- package/dist/node/ui/renderers/index.js +275 -0
- package/dist/query/index.d.ts +7 -4
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +159 -4
- package/dist/query/query.enum.d.ts +1 -6
- package/dist/query/query.enum.d.ts.map +1 -1
- package/dist/query/query.enum.js +10 -14
- package/dist/query/query.operation.d.ts +148 -154
- package/dist/query/query.operation.d.ts.map +1 -1
- package/dist/query/query.operation.js +151 -109
- package/dist/query/query.presentation.d.ts +2 -7
- package/dist/query/query.presentation.d.ts.map +1 -1
- package/dist/query/query.presentation.js +116 -56
- package/dist/query/query.schema.d.ts +121 -126
- package/dist/query/query.schema.d.ts.map +1 -1
- package/dist/query/query.schema.js +66 -152
- package/dist/query/query.test-spec.d.ts +2 -7
- package/dist/query/query.test-spec.d.ts.map +1 -1
- package/dist/query/query.test-spec.js +111 -121
- package/dist/query-engine/index.d.ts +84 -88
- package/dist/query-engine/index.d.ts.map +1 -1
- package/dist/query-engine/index.js +489 -188
- package/dist/seeders/index.d.ts +4 -8
- package/dist/seeders/index.d.ts.map +1 -1
- package/dist/seeders/index.js +18 -16
- package/dist/ui/AnalyticsDashboard.d.ts +1 -6
- package/dist/ui/AnalyticsDashboard.d.ts.map +1 -1
- package/dist/ui/AnalyticsDashboard.js +389 -259
- package/dist/ui/hooks/index.d.ts +2 -2
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +69 -4
- package/dist/ui/hooks/useAnalyticsData.d.ts +16 -20
- package/dist/ui/hooks/useAnalyticsData.d.ts.map +1 -1
- package/dist/ui/hooks/useAnalyticsData.js +63 -69
- package/dist/ui/index.d.ts +7 -6
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +671 -5
- package/dist/ui/renderers/analytics.markdown.d.ts +13 -14
- package/dist/ui/renderers/analytics.markdown.d.ts.map +1 -1
- package/dist/ui/renderers/analytics.markdown.js +266 -254
- package/dist/ui/renderers/index.d.ts +2 -2
- package/dist/ui/renderers/index.d.ts.map +1 -0
- package/dist/ui/renderers/index.js +275 -2
- package/package.json +328 -67
- package/dist/dashboard/dashboard.enum.js.map +0 -1
- package/dist/dashboard/dashboard.operation.js.map +0 -1
- package/dist/dashboard/dashboard.presentation.js.map +0 -1
- package/dist/dashboard/dashboard.schema.js.map +0 -1
- package/dist/dashboard/dashboard.test-spec.js.map +0 -1
- package/dist/dashboard.feature.js.map +0 -1
- package/dist/datasource/posthog-datasource.js.map +0 -1
- package/dist/docs/analytics-dashboard.docblock.js.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/example.js.map +0 -1
- package/dist/handlers/analytics.handlers.js.map +0 -1
- package/dist/handlers/query.handlers.js.map +0 -1
- package/dist/query/query.enum.js.map +0 -1
- package/dist/query/query.operation.js.map +0 -1
- package/dist/query/query.presentation.js.map +0 -1
- package/dist/query/query.schema.js.map +0 -1
- package/dist/query/query.test-spec.js.map +0 -1
- package/dist/query-engine/index.js.map +0 -1
- package/dist/seeders/index.js.map +0 -1
- package/dist/ui/AnalyticsDashboard.js.map +0 -1
- package/dist/ui/hooks/useAnalyticsData.js.map +0 -1
- package/dist/ui/renderers/analytics.markdown.js.map +0 -1
package/dist/ui/hooks/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export { useAnalyticsData, type AnalyticsStats } from './useAnalyticsData';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/ui/hooks/index.js
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
// src/ui/hooks/useAnalyticsData.ts
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { useTemplateRuntime } from "@contractspec/lib.example-shared-ui";
|
|
5
|
+
"use client";
|
|
6
|
+
function useAnalyticsData(projectId = "local-project") {
|
|
7
|
+
const { handlers } = useTemplateRuntime();
|
|
8
|
+
const analytics = handlers.analytics;
|
|
9
|
+
const [dashboards, setDashboards] = useState([]);
|
|
10
|
+
const [queries, setQueries] = useState([]);
|
|
11
|
+
const [selectedDashboard, setSelectedDashboard] = useState(null);
|
|
12
|
+
const [widgets, setWidgets] = useState([]);
|
|
13
|
+
const [loading, setLoading] = useState(true);
|
|
14
|
+
const [error, setError] = useState(null);
|
|
15
|
+
const fetchData = useCallback(async () => {
|
|
16
|
+
try {
|
|
17
|
+
setLoading(true);
|
|
18
|
+
setError(null);
|
|
19
|
+
const [dashResult, queryResult] = await Promise.all([
|
|
20
|
+
analytics.listDashboards({ projectId, limit: 100 }),
|
|
21
|
+
analytics.listQueries({ projectId, limit: 100 })
|
|
22
|
+
]);
|
|
23
|
+
setDashboards(dashResult.dashboards);
|
|
24
|
+
setQueries(queryResult.queries);
|
|
25
|
+
if (dashResult.dashboards.length > 0 && !selectedDashboard) {
|
|
26
|
+
const first = dashResult.dashboards[0];
|
|
27
|
+
if (first) {
|
|
28
|
+
setSelectedDashboard(first);
|
|
29
|
+
const dashboardWidgets = await analytics.getWidgets(first.id);
|
|
30
|
+
setWidgets(dashboardWidgets);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
setError(err instanceof Error ? err : new Error("Failed to load analytics"));
|
|
35
|
+
} finally {
|
|
36
|
+
setLoading(false);
|
|
37
|
+
}
|
|
38
|
+
}, [analytics, projectId, selectedDashboard]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
fetchData();
|
|
41
|
+
}, [fetchData]);
|
|
42
|
+
const selectDashboard = useCallback(async (dashboard) => {
|
|
43
|
+
setSelectedDashboard(dashboard);
|
|
44
|
+
const dashboardWidgets = await analytics.getWidgets(dashboard.id);
|
|
45
|
+
setWidgets(dashboardWidgets);
|
|
46
|
+
}, [analytics]);
|
|
47
|
+
const stats = {
|
|
48
|
+
totalDashboards: dashboards.length,
|
|
49
|
+
publishedDashboards: dashboards.filter((d) => d.status === "PUBLISHED").length,
|
|
50
|
+
totalQueries: queries.length,
|
|
51
|
+
sharedQueries: queries.filter((q) => q.isShared).length
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
dashboards,
|
|
55
|
+
queries,
|
|
56
|
+
selectedDashboard,
|
|
57
|
+
widgets,
|
|
58
|
+
loading,
|
|
59
|
+
error,
|
|
60
|
+
stats,
|
|
61
|
+
refetch: fetchData,
|
|
62
|
+
selectDashboard
|
|
63
|
+
};
|
|
64
|
+
}
|
|
2
65
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export {
|
|
66
|
+
// src/ui/hooks/index.ts
|
|
67
|
+
"use client";
|
|
68
|
+
export {
|
|
69
|
+
useAnalyticsData
|
|
70
|
+
};
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { Dashboard, Query, Widget } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
totalQueries: number;
|
|
8
|
-
sharedQueries: number;
|
|
1
|
+
import type { Dashboard, Query, Widget } from '../../handlers/analytics.handlers';
|
|
2
|
+
export interface AnalyticsStats {
|
|
3
|
+
totalDashboards: number;
|
|
4
|
+
publishedDashboards: number;
|
|
5
|
+
totalQueries: number;
|
|
6
|
+
sharedQueries: number;
|
|
9
7
|
}
|
|
10
|
-
declare function useAnalyticsData(projectId?: string): {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
export declare function useAnalyticsData(projectId?: string): {
|
|
9
|
+
dashboards: Dashboard[];
|
|
10
|
+
queries: Query[];
|
|
11
|
+
selectedDashboard: Dashboard | null;
|
|
12
|
+
widgets: Widget[];
|
|
13
|
+
loading: boolean;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
stats: AnalyticsStats;
|
|
16
|
+
refetch: () => Promise<void>;
|
|
17
|
+
selectDashboard: (dashboard: Dashboard) => Promise<void>;
|
|
20
18
|
};
|
|
21
|
-
//#endregion
|
|
22
|
-
export { AnalyticsStats, useAnalyticsData };
|
|
23
19
|
//# sourceMappingURL=useAnalyticsData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnalyticsData.d.ts","
|
|
1
|
+
{"version":3,"file":"useAnalyticsData.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useAnalyticsData.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,SAAS,EACT,KAAK,EACL,MAAM,EACP,MAAM,mCAAmC,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,SAAkB;;;;;;;;;iCAgDtC,SAAS;EA2B9B"}
|
|
@@ -1,73 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
// src/ui/hooks/useAnalyticsData.ts
|
|
3
3
|
import { useCallback, useEffect, useState } from "react";
|
|
4
4
|
import { useTemplateRuntime } from "@contractspec/lib.example-shared-ui";
|
|
5
|
-
|
|
6
|
-
//#region src/ui/hooks/useAnalyticsData.ts
|
|
5
|
+
"use client";
|
|
7
6
|
function useAnalyticsData(projectId = "local-project") {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
66
|
-
refetch: fetchData,
|
|
67
|
-
selectDashboard
|
|
68
|
-
};
|
|
7
|
+
const { handlers } = useTemplateRuntime();
|
|
8
|
+
const analytics = handlers.analytics;
|
|
9
|
+
const [dashboards, setDashboards] = useState([]);
|
|
10
|
+
const [queries, setQueries] = useState([]);
|
|
11
|
+
const [selectedDashboard, setSelectedDashboard] = useState(null);
|
|
12
|
+
const [widgets, setWidgets] = useState([]);
|
|
13
|
+
const [loading, setLoading] = useState(true);
|
|
14
|
+
const [error, setError] = useState(null);
|
|
15
|
+
const fetchData = useCallback(async () => {
|
|
16
|
+
try {
|
|
17
|
+
setLoading(true);
|
|
18
|
+
setError(null);
|
|
19
|
+
const [dashResult, queryResult] = await Promise.all([
|
|
20
|
+
analytics.listDashboards({ projectId, limit: 100 }),
|
|
21
|
+
analytics.listQueries({ projectId, limit: 100 })
|
|
22
|
+
]);
|
|
23
|
+
setDashboards(dashResult.dashboards);
|
|
24
|
+
setQueries(queryResult.queries);
|
|
25
|
+
if (dashResult.dashboards.length > 0 && !selectedDashboard) {
|
|
26
|
+
const first = dashResult.dashboards[0];
|
|
27
|
+
if (first) {
|
|
28
|
+
setSelectedDashboard(first);
|
|
29
|
+
const dashboardWidgets = await analytics.getWidgets(first.id);
|
|
30
|
+
setWidgets(dashboardWidgets);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
setError(err instanceof Error ? err : new Error("Failed to load analytics"));
|
|
35
|
+
} finally {
|
|
36
|
+
setLoading(false);
|
|
37
|
+
}
|
|
38
|
+
}, [analytics, projectId, selectedDashboard]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
fetchData();
|
|
41
|
+
}, [fetchData]);
|
|
42
|
+
const selectDashboard = useCallback(async (dashboard) => {
|
|
43
|
+
setSelectedDashboard(dashboard);
|
|
44
|
+
const dashboardWidgets = await analytics.getWidgets(dashboard.id);
|
|
45
|
+
setWidgets(dashboardWidgets);
|
|
46
|
+
}, [analytics]);
|
|
47
|
+
const stats = {
|
|
48
|
+
totalDashboards: dashboards.length,
|
|
49
|
+
publishedDashboards: dashboards.filter((d) => d.status === "PUBLISHED").length,
|
|
50
|
+
totalQueries: queries.length,
|
|
51
|
+
sharedQueries: queries.filter((q) => q.isShared).length
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
dashboards,
|
|
55
|
+
queries,
|
|
56
|
+
selectedDashboard,
|
|
57
|
+
widgets,
|
|
58
|
+
loading,
|
|
59
|
+
error,
|
|
60
|
+
stats,
|
|
61
|
+
refetch: fetchData,
|
|
62
|
+
selectDashboard
|
|
63
|
+
};
|
|
69
64
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
//# sourceMappingURL=useAnalyticsData.js.map
|
|
65
|
+
export {
|
|
66
|
+
useAnalyticsData
|
|
67
|
+
};
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
1
|
+
/**
|
|
2
|
+
* Analytics Dashboard Template Components
|
|
3
|
+
*/
|
|
4
|
+
export * from './renderers';
|
|
5
|
+
export { AnalyticsDashboard } from './AnalyticsDashboard';
|
|
6
|
+
export * from './hooks';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,SAAS,CAAC"}
|