@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.
Files changed (173) hide show
  1. package/dist/browser/dashboard/dashboard.enum.js +34 -0
  2. package/dist/browser/dashboard/dashboard.operation.js +289 -0
  3. package/dist/browser/dashboard/dashboard.presentation.js +197 -0
  4. package/dist/browser/dashboard/dashboard.schema.js +126 -0
  5. package/dist/browser/dashboard/dashboard.test-spec.js +213 -0
  6. package/dist/browser/dashboard/index.js +299 -0
  7. package/dist/browser/dashboard.feature.js +84 -0
  8. package/dist/browser/datasource/posthog-datasource.js +289 -0
  9. package/dist/browser/docs/analytics-dashboard.docblock.js +103 -0
  10. package/dist/browser/docs/index.js +103 -0
  11. package/dist/browser/events.js +81 -0
  12. package/dist/browser/example.js +42 -0
  13. package/dist/browser/handlers/analytics.handlers.js +278 -0
  14. package/dist/browser/handlers/index.js +571 -0
  15. package/dist/browser/handlers/query.handlers.js +294 -0
  16. package/dist/browser/index.js +1677 -0
  17. package/dist/browser/query/index.js +159 -0
  18. package/dist/browser/query/query.enum.js +11 -0
  19. package/dist/browser/query/query.operation.js +154 -0
  20. package/dist/browser/query/query.presentation.js +119 -0
  21. package/dist/browser/query/query.schema.js +70 -0
  22. package/dist/browser/query/query.test-spec.js +113 -0
  23. package/dist/browser/query-engine/index.js +491 -0
  24. package/dist/browser/seeders/index.js +20 -0
  25. package/dist/browser/ui/AnalyticsDashboard.js +394 -0
  26. package/dist/browser/ui/hooks/index.js +69 -0
  27. package/dist/browser/ui/hooks/useAnalyticsData.js +66 -0
  28. package/dist/browser/ui/index.js +671 -0
  29. package/dist/browser/ui/renderers/analytics.markdown.js +275 -0
  30. package/dist/browser/ui/renderers/index.js +275 -0
  31. package/dist/dashboard/dashboard.enum.d.ts +3 -8
  32. package/dist/dashboard/dashboard.enum.d.ts.map +1 -1
  33. package/dist/dashboard/dashboard.enum.js +31 -39
  34. package/dist/dashboard/dashboard.operation.d.ts +444 -450
  35. package/dist/dashboard/dashboard.operation.d.ts.map +1 -1
  36. package/dist/dashboard/dashboard.operation.js +284 -207
  37. package/dist/dashboard/dashboard.presentation.d.ts +3 -8
  38. package/dist/dashboard/dashboard.presentation.d.ts.map +1 -1
  39. package/dist/dashboard/dashboard.presentation.js +193 -85
  40. package/dist/dashboard/dashboard.schema.d.ts +289 -294
  41. package/dist/dashboard/dashboard.schema.d.ts.map +1 -1
  42. package/dist/dashboard/dashboard.schema.js +119 -228
  43. package/dist/dashboard/dashboard.test-spec.d.ts +4 -9
  44. package/dist/dashboard/dashboard.test-spec.d.ts.map +1 -1
  45. package/dist/dashboard/dashboard.test-spec.js +209 -228
  46. package/dist/dashboard/index.d.ts +7 -4
  47. package/dist/dashboard/index.d.ts.map +1 -0
  48. package/dist/dashboard/index.js +299 -4
  49. package/dist/dashboard.feature.d.ts +1 -6
  50. package/dist/dashboard.feature.d.ts.map +1 -1
  51. package/dist/dashboard.feature.js +83 -175
  52. package/dist/datasource/posthog-datasource.d.ts +15 -19
  53. package/dist/datasource/posthog-datasource.d.ts.map +1 -1
  54. package/dist/datasource/posthog-datasource.js +274 -238
  55. package/dist/docs/analytics-dashboard.docblock.d.ts +2 -1
  56. package/dist/docs/analytics-dashboard.docblock.d.ts.map +1 -0
  57. package/dist/docs/analytics-dashboard.docblock.js +45 -56
  58. package/dist/docs/index.d.ts +2 -1
  59. package/dist/docs/index.d.ts.map +1 -0
  60. package/dist/docs/index.js +104 -1
  61. package/dist/events.d.ts +109 -115
  62. package/dist/events.d.ts.map +1 -1
  63. package/dist/events.js +74 -120
  64. package/dist/example.d.ts +2 -6
  65. package/dist/example.d.ts.map +1 -1
  66. package/dist/example.js +41 -55
  67. package/dist/handlers/analytics.handlers.d.ts +110 -109
  68. package/dist/handlers/analytics.handlers.d.ts.map +1 -1
  69. package/dist/handlers/analytics.handlers.js +267 -298
  70. package/dist/handlers/index.d.ts +3 -3
  71. package/dist/handlers/index.d.ts.map +1 -0
  72. package/dist/handlers/index.js +571 -3
  73. package/dist/handlers/query.handlers.d.ts +7 -11
  74. package/dist/handlers/query.handlers.d.ts.map +1 -1
  75. package/dist/handlers/query.handlers.js +292 -7
  76. package/dist/index.d.ts +12 -13
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +1678 -14
  79. package/dist/node/dashboard/dashboard.enum.js +34 -0
  80. package/dist/node/dashboard/dashboard.operation.js +289 -0
  81. package/dist/node/dashboard/dashboard.presentation.js +197 -0
  82. package/dist/node/dashboard/dashboard.schema.js +126 -0
  83. package/dist/node/dashboard/dashboard.test-spec.js +213 -0
  84. package/dist/node/dashboard/index.js +299 -0
  85. package/dist/node/dashboard.feature.js +84 -0
  86. package/dist/node/datasource/posthog-datasource.js +289 -0
  87. package/dist/node/docs/analytics-dashboard.docblock.js +103 -0
  88. package/dist/node/docs/index.js +103 -0
  89. package/dist/node/events.js +81 -0
  90. package/dist/node/example.js +42 -0
  91. package/dist/node/handlers/analytics.handlers.js +278 -0
  92. package/dist/node/handlers/index.js +571 -0
  93. package/dist/node/handlers/query.handlers.js +294 -0
  94. package/dist/node/index.js +1677 -0
  95. package/dist/node/query/index.js +159 -0
  96. package/dist/node/query/query.enum.js +11 -0
  97. package/dist/node/query/query.operation.js +154 -0
  98. package/dist/node/query/query.presentation.js +119 -0
  99. package/dist/node/query/query.schema.js +70 -0
  100. package/dist/node/query/query.test-spec.js +113 -0
  101. package/dist/node/query-engine/index.js +491 -0
  102. package/dist/node/seeders/index.js +20 -0
  103. package/dist/node/ui/AnalyticsDashboard.js +394 -0
  104. package/dist/node/ui/hooks/index.js +69 -0
  105. package/dist/node/ui/hooks/useAnalyticsData.js +66 -0
  106. package/dist/node/ui/index.js +671 -0
  107. package/dist/node/ui/renderers/analytics.markdown.js +275 -0
  108. package/dist/node/ui/renderers/index.js +275 -0
  109. package/dist/query/index.d.ts +7 -4
  110. package/dist/query/index.d.ts.map +1 -0
  111. package/dist/query/index.js +159 -4
  112. package/dist/query/query.enum.d.ts +1 -6
  113. package/dist/query/query.enum.d.ts.map +1 -1
  114. package/dist/query/query.enum.js +10 -14
  115. package/dist/query/query.operation.d.ts +148 -154
  116. package/dist/query/query.operation.d.ts.map +1 -1
  117. package/dist/query/query.operation.js +151 -109
  118. package/dist/query/query.presentation.d.ts +2 -7
  119. package/dist/query/query.presentation.d.ts.map +1 -1
  120. package/dist/query/query.presentation.js +116 -56
  121. package/dist/query/query.schema.d.ts +121 -126
  122. package/dist/query/query.schema.d.ts.map +1 -1
  123. package/dist/query/query.schema.js +66 -152
  124. package/dist/query/query.test-spec.d.ts +2 -7
  125. package/dist/query/query.test-spec.d.ts.map +1 -1
  126. package/dist/query/query.test-spec.js +111 -121
  127. package/dist/query-engine/index.d.ts +84 -88
  128. package/dist/query-engine/index.d.ts.map +1 -1
  129. package/dist/query-engine/index.js +489 -188
  130. package/dist/seeders/index.d.ts +4 -8
  131. package/dist/seeders/index.d.ts.map +1 -1
  132. package/dist/seeders/index.js +18 -16
  133. package/dist/ui/AnalyticsDashboard.d.ts +1 -6
  134. package/dist/ui/AnalyticsDashboard.d.ts.map +1 -1
  135. package/dist/ui/AnalyticsDashboard.js +389 -259
  136. package/dist/ui/hooks/index.d.ts +2 -2
  137. package/dist/ui/hooks/index.d.ts.map +1 -0
  138. package/dist/ui/hooks/index.js +69 -4
  139. package/dist/ui/hooks/useAnalyticsData.d.ts +16 -20
  140. package/dist/ui/hooks/useAnalyticsData.d.ts.map +1 -1
  141. package/dist/ui/hooks/useAnalyticsData.js +63 -69
  142. package/dist/ui/index.d.ts +7 -6
  143. package/dist/ui/index.d.ts.map +1 -0
  144. package/dist/ui/index.js +671 -5
  145. package/dist/ui/renderers/analytics.markdown.d.ts +13 -14
  146. package/dist/ui/renderers/analytics.markdown.d.ts.map +1 -1
  147. package/dist/ui/renderers/analytics.markdown.js +266 -254
  148. package/dist/ui/renderers/index.d.ts +2 -2
  149. package/dist/ui/renderers/index.d.ts.map +1 -0
  150. package/dist/ui/renderers/index.js +275 -2
  151. package/package.json +328 -67
  152. package/dist/dashboard/dashboard.enum.js.map +0 -1
  153. package/dist/dashboard/dashboard.operation.js.map +0 -1
  154. package/dist/dashboard/dashboard.presentation.js.map +0 -1
  155. package/dist/dashboard/dashboard.schema.js.map +0 -1
  156. package/dist/dashboard/dashboard.test-spec.js.map +0 -1
  157. package/dist/dashboard.feature.js.map +0 -1
  158. package/dist/datasource/posthog-datasource.js.map +0 -1
  159. package/dist/docs/analytics-dashboard.docblock.js.map +0 -1
  160. package/dist/events.js.map +0 -1
  161. package/dist/example.js.map +0 -1
  162. package/dist/handlers/analytics.handlers.js.map +0 -1
  163. package/dist/handlers/query.handlers.js.map +0 -1
  164. package/dist/query/query.enum.js.map +0 -1
  165. package/dist/query/query.operation.js.map +0 -1
  166. package/dist/query/query.presentation.js.map +0 -1
  167. package/dist/query/query.schema.js.map +0 -1
  168. package/dist/query/query.test-spec.js.map +0 -1
  169. package/dist/query-engine/index.js.map +0 -1
  170. package/dist/seeders/index.js.map +0 -1
  171. package/dist/ui/AnalyticsDashboard.js.map +0 -1
  172. package/dist/ui/hooks/useAnalyticsData.js.map +0 -1
  173. package/dist/ui/renderers/analytics.markdown.js.map +0 -1
package/dist/events.js CHANGED
@@ -1,128 +1,82 @@
1
+ // @bun
2
+ // src/events.ts
3
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
1
4
  import { defineEvent } from "@contractspec/lib.contracts";
2
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
3
-
4
- //#region src/events.ts
5
- const DashboardEventPayload = defineSchemaModel({
6
- name: "DashboardEventPayload",
7
- description: "Payload for dashboard events",
8
- fields: {
9
- dashboardId: {
10
- type: ScalarTypeEnum.String_unsecure(),
11
- isOptional: false
12
- },
13
- title: {
14
- type: ScalarTypeEnum.String_unsecure(),
15
- isOptional: false
16
- },
17
- orgId: {
18
- type: ScalarTypeEnum.String_unsecure(),
19
- isOptional: false
20
- },
21
- createdBy: {
22
- type: ScalarTypeEnum.String_unsecure(),
23
- isOptional: false
24
- },
25
- timestamp: {
26
- type: ScalarTypeEnum.DateTime(),
27
- isOptional: false
28
- }
29
- }
5
+ var DashboardEventPayload = defineSchemaModel({
6
+ name: "DashboardEventPayload",
7
+ description: "Payload for dashboard events",
8
+ fields: {
9
+ dashboardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
10
+ title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
11
+ orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
12
+ createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
13
+ timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false }
14
+ }
30
15
  });
31
- const WidgetEventPayload = defineSchemaModel({
32
- name: "WidgetEventPayload",
33
- description: "Payload for widget events",
34
- fields: {
35
- widgetId: {
36
- type: ScalarTypeEnum.String_unsecure(),
37
- isOptional: false
38
- },
39
- dashboardId: {
40
- type: ScalarTypeEnum.String_unsecure(),
41
- isOptional: false
42
- },
43
- widgetType: {
44
- type: ScalarTypeEnum.String_unsecure(),
45
- isOptional: false
46
- },
47
- orgId: {
48
- type: ScalarTypeEnum.String_unsecure(),
49
- isOptional: false
50
- },
51
- timestamp: {
52
- type: ScalarTypeEnum.DateTime(),
53
- isOptional: false
54
- }
55
- }
16
+ var WidgetEventPayload = defineSchemaModel({
17
+ name: "WidgetEventPayload",
18
+ description: "Payload for widget events",
19
+ fields: {
20
+ widgetId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
21
+ dashboardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
22
+ widgetType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
23
+ orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
24
+ timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false }
25
+ }
56
26
  });
57
- const QueryEventPayload = defineSchemaModel({
58
- name: "QueryEventPayload",
59
- description: "Payload for query events",
60
- fields: {
61
- queryId: {
62
- type: ScalarTypeEnum.String_unsecure(),
63
- isOptional: false
64
- },
65
- name: {
66
- type: ScalarTypeEnum.String_unsecure(),
67
- isOptional: false
68
- },
69
- queryType: {
70
- type: ScalarTypeEnum.String_unsecure(),
71
- isOptional: false
72
- },
73
- orgId: {
74
- type: ScalarTypeEnum.String_unsecure(),
75
- isOptional: false
76
- },
77
- createdBy: {
78
- type: ScalarTypeEnum.String_unsecure(),
79
- isOptional: false
80
- },
81
- timestamp: {
82
- type: ScalarTypeEnum.DateTime(),
83
- isOptional: false
84
- }
85
- }
27
+ var QueryEventPayload = defineSchemaModel({
28
+ name: "QueryEventPayload",
29
+ description: "Payload for query events",
30
+ fields: {
31
+ queryId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
32
+ name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
33
+ queryType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
34
+ orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
35
+ createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
36
+ timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false }
37
+ }
86
38
  });
87
- const DashboardCreatedEvent = defineEvent({
88
- meta: {
89
- key: "analytics.dashboard.created",
90
- version: "1.0.0",
91
- description: "A dashboard was created.",
92
- stability: "stable",
93
- owners: ["@analytics-team"],
94
- tags: ["dashboard"]
95
- },
96
- payload: DashboardEventPayload
39
+ var DashboardCreatedEvent = defineEvent({
40
+ meta: {
41
+ key: "analytics.dashboard.created",
42
+ version: "1.0.0",
43
+ description: "A dashboard was created.",
44
+ stability: "stable",
45
+ owners: ["@analytics-team"],
46
+ tags: ["dashboard"]
47
+ },
48
+ payload: DashboardEventPayload
97
49
  });
98
- const WidgetAddedEvent = defineEvent({
99
- meta: {
100
- key: "analytics.widget.added",
101
- version: "1.0.0",
102
- description: "A widget was added to a dashboard.",
103
- stability: "stable",
104
- owners: ["@analytics-team"],
105
- tags: ["dashboard"]
106
- },
107
- payload: WidgetEventPayload
50
+ var WidgetAddedEvent = defineEvent({
51
+ meta: {
52
+ key: "analytics.widget.added",
53
+ version: "1.0.0",
54
+ description: "A widget was added to a dashboard.",
55
+ stability: "stable",
56
+ owners: ["@analytics-team"],
57
+ tags: ["dashboard"]
58
+ },
59
+ payload: WidgetEventPayload
108
60
  });
109
- const QueryCreatedEvent = defineEvent({
110
- meta: {
111
- key: "analytics.query.created",
112
- version: "1.0.0",
113
- description: "A query was created.",
114
- stability: "stable",
115
- owners: ["@analytics-team"],
116
- tags: ["dashboard"]
117
- },
118
- payload: QueryEventPayload
61
+ var QueryCreatedEvent = defineEvent({
62
+ meta: {
63
+ key: "analytics.query.created",
64
+ version: "1.0.0",
65
+ description: "A query was created.",
66
+ stability: "stable",
67
+ owners: ["@analytics-team"],
68
+ tags: ["dashboard"]
69
+ },
70
+ payload: QueryEventPayload
119
71
  });
120
- const AnalyticsDashboardEvents = {
121
- DashboardCreatedEvent,
122
- WidgetAddedEvent,
123
- QueryCreatedEvent
72
+ var AnalyticsDashboardEvents = {
73
+ DashboardCreatedEvent,
74
+ WidgetAddedEvent,
75
+ QueryCreatedEvent
76
+ };
77
+ export {
78
+ WidgetAddedEvent,
79
+ QueryCreatedEvent,
80
+ DashboardCreatedEvent,
81
+ AnalyticsDashboardEvents
124
82
  };
125
-
126
- //#endregion
127
- export { AnalyticsDashboardEvents, DashboardCreatedEvent, QueryCreatedEvent, WidgetAddedEvent };
128
- //# sourceMappingURL=events.js.map
package/dist/example.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
-
3
- //#region src/example.d.ts
4
- declare const example: _contractspec_lib_contracts0.ExampleSpec;
5
- //#endregion
6
- export { example as default };
1
+ declare const example: import("@contractspec/lib.contracts").ExampleSpec;
2
+ export default example;
7
3
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"mappings":";;;cAEM,OAAA,EAoCJ,4BAAA,CApCW,WAAA"}
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,mDAoCX,CAAC;AAEH,eAAe,OAAO,CAAC"}
package/dist/example.js CHANGED
@@ -1,57 +1,43 @@
1
+ // @bun
2
+ // src/example.ts
1
3
  import { defineExample } from "@contractspec/lib.contracts";
2
-
3
- //#region src/example.ts
4
- const example = defineExample({
5
- meta: {
6
- key: "analytics-dashboard",
7
- version: "1.0.0",
8
- title: "Analytics Dashboard",
9
- description: "Tenant-scoped dashboards, widgets, query builder, and scheduled reports (spec-first widgets/queries).",
10
- kind: "template",
11
- visibility: "public",
12
- stability: "experimental",
13
- owners: ["@platform.core"],
14
- tags: [
15
- "analytics",
16
- "dashboards",
17
- "bi",
18
- "queries"
19
- ]
20
- },
21
- docs: {
22
- rootDocId: "docs.examples.analytics-dashboard",
23
- goalDocId: "docs.examples.analytics-dashboard.goal",
24
- usageDocId: "docs.examples.analytics-dashboard.usage",
25
- constraintsDocId: "docs.examples.analytics-dashboard.constraints"
26
- },
27
- entrypoints: {
28
- packageName: "@contractspec/example.analytics-dashboard",
29
- feature: "./feature",
30
- contracts: "./contracts",
31
- presentations: "./presentations",
32
- handlers: "./handlers",
33
- docs: "./docs"
34
- },
35
- surfaces: {
36
- templates: true,
37
- sandbox: {
38
- enabled: true,
39
- modes: [
40
- "playground",
41
- "specs",
42
- "builder",
43
- "markdown",
44
- "evolution"
45
- ]
46
- },
47
- studio: {
48
- enabled: true,
49
- installable: true
50
- },
51
- mcp: { enabled: true }
52
- }
4
+ var example = defineExample({
5
+ meta: {
6
+ key: "analytics-dashboard",
7
+ version: "1.0.0",
8
+ title: "Analytics Dashboard",
9
+ description: "Tenant-scoped dashboards, widgets, query builder, and scheduled reports (spec-first widgets/queries).",
10
+ kind: "template",
11
+ visibility: "public",
12
+ stability: "experimental",
13
+ owners: ["@platform.core"],
14
+ tags: ["analytics", "dashboards", "bi", "queries"]
15
+ },
16
+ docs: {
17
+ rootDocId: "docs.examples.analytics-dashboard",
18
+ goalDocId: "docs.examples.analytics-dashboard.goal",
19
+ usageDocId: "docs.examples.analytics-dashboard.usage",
20
+ constraintsDocId: "docs.examples.analytics-dashboard.constraints"
21
+ },
22
+ entrypoints: {
23
+ packageName: "@contractspec/example.analytics-dashboard",
24
+ feature: "./feature",
25
+ contracts: "./contracts",
26
+ presentations: "./presentations",
27
+ handlers: "./handlers",
28
+ docs: "./docs"
29
+ },
30
+ surfaces: {
31
+ templates: true,
32
+ sandbox: {
33
+ enabled: true,
34
+ modes: ["playground", "specs", "builder", "markdown", "evolution"]
35
+ },
36
+ studio: { enabled: true, installable: true },
37
+ mcp: { enabled: true }
38
+ }
53
39
  });
54
-
55
- //#endregion
56
- export { example as default };
57
- //# sourceMappingURL=example.js.map
40
+ var example_default = example;
41
+ export {
42
+ example_default as default
43
+ };
@@ -1,121 +1,122 @@
1
- import { DatabasePort } from "@contractspec/lib.runtime-sandbox";
2
-
3
- //#region src/handlers/analytics.handlers.d.ts
4
- interface Dashboard {
5
- id: string;
6
- projectId: string;
7
- organizationId: string;
8
- name: string;
9
- slug: string;
10
- description?: string;
11
- status: 'DRAFT' | 'PUBLISHED' | 'ARCHIVED';
12
- refreshInterval: 'NONE' | 'MINUTE' | 'FIVE_MINUTES' | 'FIFTEEN_MINUTES' | 'HOUR' | 'DAY';
13
- isPublic: boolean;
14
- shareToken?: string;
15
- createdAt: Date;
16
- updatedAt: Date;
1
+ /**
2
+ * Runtime-local Analytics Dashboard handlers
3
+ *
4
+ * Database-backed handlers for the analytics-dashboard template.
5
+ */
6
+ import type { DatabasePort } from '@contractspec/lib.runtime-sandbox';
7
+ export interface Dashboard {
8
+ id: string;
9
+ projectId: string;
10
+ organizationId: string;
11
+ name: string;
12
+ slug: string;
13
+ description?: string;
14
+ status: 'DRAFT' | 'PUBLISHED' | 'ARCHIVED';
15
+ refreshInterval: 'NONE' | 'MINUTE' | 'FIVE_MINUTES' | 'FIFTEEN_MINUTES' | 'HOUR' | 'DAY';
16
+ isPublic: boolean;
17
+ shareToken?: string;
18
+ createdAt: Date;
19
+ updatedAt: Date;
17
20
  }
18
- interface Widget {
19
- id: string;
20
- dashboardId: string;
21
- name: string;
22
- type: 'LINE_CHART' | 'BAR_CHART' | 'PIE_CHART' | 'AREA_CHART' | 'SCATTER_PLOT' | 'METRIC' | 'TABLE' | 'HEATMAP' | 'FUNNEL' | 'MAP' | 'TEXT' | 'EMBED';
23
- gridX: number;
24
- gridY: number;
25
- gridWidth: number;
26
- gridHeight: number;
27
- queryId?: string;
28
- config?: Record<string, unknown>;
29
- createdAt: Date;
30
- updatedAt: Date;
21
+ export interface Widget {
22
+ id: string;
23
+ dashboardId: string;
24
+ name: string;
25
+ type: 'LINE_CHART' | 'BAR_CHART' | 'PIE_CHART' | 'AREA_CHART' | 'SCATTER_PLOT' | 'METRIC' | 'TABLE' | 'HEATMAP' | 'FUNNEL' | 'MAP' | 'TEXT' | 'EMBED';
26
+ gridX: number;
27
+ gridY: number;
28
+ gridWidth: number;
29
+ gridHeight: number;
30
+ queryId?: string;
31
+ config?: Record<string, unknown>;
32
+ createdAt: Date;
33
+ updatedAt: Date;
31
34
  }
32
- interface Query {
33
- id: string;
34
- projectId: string;
35
- organizationId: string;
36
- name: string;
37
- description?: string;
38
- type: 'SQL' | 'METRIC' | 'AGGREGATION' | 'CUSTOM';
39
- definition: Record<string, unknown>;
40
- sql?: string;
41
- cacheTtlSeconds: number;
42
- isShared: boolean;
43
- createdAt: Date;
44
- updatedAt: Date;
35
+ export interface Query {
36
+ id: string;
37
+ projectId: string;
38
+ organizationId: string;
39
+ name: string;
40
+ description?: string;
41
+ type: 'SQL' | 'METRIC' | 'AGGREGATION' | 'CUSTOM';
42
+ definition: Record<string, unknown>;
43
+ sql?: string;
44
+ cacheTtlSeconds: number;
45
+ isShared: boolean;
46
+ createdAt: Date;
47
+ updatedAt: Date;
45
48
  }
46
- interface CreateDashboardInput {
47
- name: string;
48
- slug: string;
49
- description?: string;
50
- refreshInterval?: Dashboard['refreshInterval'];
49
+ export interface CreateDashboardInput {
50
+ name: string;
51
+ slug: string;
52
+ description?: string;
53
+ refreshInterval?: Dashboard['refreshInterval'];
51
54
  }
52
- interface AddWidgetInput {
53
- dashboardId: string;
54
- name: string;
55
- type: Widget['type'];
56
- gridX?: number;
57
- gridY?: number;
58
- gridWidth?: number;
59
- gridHeight?: number;
60
- queryId?: string;
61
- config?: Record<string, unknown>;
55
+ export interface AddWidgetInput {
56
+ dashboardId: string;
57
+ name: string;
58
+ type: Widget['type'];
59
+ gridX?: number;
60
+ gridY?: number;
61
+ gridWidth?: number;
62
+ gridHeight?: number;
63
+ queryId?: string;
64
+ config?: Record<string, unknown>;
62
65
  }
63
- interface CreateQueryInput {
64
- name: string;
65
- description?: string;
66
- type: Query['type'];
67
- definition: Record<string, unknown>;
68
- sql?: string;
69
- cacheTtlSeconds?: number;
70
- isShared?: boolean;
66
+ export interface CreateQueryInput {
67
+ name: string;
68
+ description?: string;
69
+ type: Query['type'];
70
+ definition: Record<string, unknown>;
71
+ sql?: string;
72
+ cacheTtlSeconds?: number;
73
+ isShared?: boolean;
71
74
  }
72
- interface ListDashboardsInput {
73
- projectId: string;
74
- status?: Dashboard['status'] | 'all';
75
- search?: string;
76
- limit?: number;
77
- offset?: number;
75
+ export interface ListDashboardsInput {
76
+ projectId: string;
77
+ status?: Dashboard['status'] | 'all';
78
+ search?: string;
79
+ limit?: number;
80
+ offset?: number;
78
81
  }
79
- interface ListDashboardsOutput {
80
- dashboards: Dashboard[];
81
- total: number;
82
+ export interface ListDashboardsOutput {
83
+ dashboards: Dashboard[];
84
+ total: number;
82
85
  }
83
- interface ListQueriesInput {
84
- projectId: string;
85
- type?: Query['type'] | 'all';
86
- isShared?: boolean;
87
- search?: string;
88
- limit?: number;
89
- offset?: number;
86
+ export interface ListQueriesInput {
87
+ projectId: string;
88
+ type?: Query['type'] | 'all';
89
+ isShared?: boolean;
90
+ search?: string;
91
+ limit?: number;
92
+ offset?: number;
90
93
  }
91
- interface ListQueriesOutput {
92
- queries: Query[];
93
- total: number;
94
+ export interface ListQueriesOutput {
95
+ queries: Query[];
96
+ total: number;
94
97
  }
95
- declare function createAnalyticsHandlers(db: DatabasePort): {
96
- listDashboards: (input: ListDashboardsInput) => Promise<ListDashboardsOutput>;
97
- createDashboard: (input: CreateDashboardInput, context: {
98
- projectId: string;
99
- organizationId: string;
100
- }) => Promise<Dashboard>;
101
- getDashboard: (input: {
102
- dashboardId?: string;
103
- slug?: string;
104
- shareToken?: string;
105
- }) => Promise<Dashboard | null>;
106
- updateDashboard: (dashboardId: string, updates: Partial<Pick<Dashboard, "name" | "description" | "status" | "refreshInterval" | "isPublic">>) => Promise<Dashboard>;
107
- getWidgets: (dashboardId: string) => Promise<Widget[]>;
108
- addWidget: (input: AddWidgetInput) => Promise<Widget>;
109
- updateWidget: (widgetId: string, updates: Partial<Pick<Widget, "name" | "gridX" | "gridY" | "gridWidth" | "gridHeight" | "queryId" | "config">>) => Promise<Widget>;
110
- deleteWidget: (widgetId: string) => Promise<void>;
111
- listQueries: (input: ListQueriesInput) => Promise<ListQueriesOutput>;
112
- createQuery: (input: CreateQueryInput, context: {
113
- projectId: string;
114
- organizationId: string;
115
- }) => Promise<Query>;
116
- getQuery: (queryId: string) => Promise<Query | null>;
98
+ export declare function createAnalyticsHandlers(db: DatabasePort): {
99
+ listDashboards: (input: ListDashboardsInput) => Promise<ListDashboardsOutput>;
100
+ createDashboard: (input: CreateDashboardInput, context: {
101
+ projectId: string;
102
+ organizationId: string;
103
+ }) => Promise<Dashboard>;
104
+ getDashboard: (input: {
105
+ dashboardId?: string;
106
+ slug?: string;
107
+ shareToken?: string;
108
+ }) => Promise<Dashboard | null>;
109
+ updateDashboard: (dashboardId: string, updates: Partial<Pick<Dashboard, "name" | "description" | "status" | "refreshInterval" | "isPublic">>) => Promise<Dashboard>;
110
+ getWidgets: (dashboardId: string) => Promise<Widget[]>;
111
+ addWidget: (input: AddWidgetInput) => Promise<Widget>;
112
+ updateWidget: (widgetId: string, updates: Partial<Pick<Widget, "name" | "gridX" | "gridY" | "gridWidth" | "gridHeight" | "queryId" | "config">>) => Promise<Widget>;
113
+ deleteWidget: (widgetId: string) => Promise<void>;
114
+ listQueries: (input: ListQueriesInput) => Promise<ListQueriesOutput>;
115
+ createQuery: (input: CreateQueryInput, context: {
116
+ projectId: string;
117
+ organizationId: string;
118
+ }) => Promise<Query>;
119
+ getQuery: (queryId: string) => Promise<Query | null>;
117
120
  };
118
- type AnalyticsHandlers = ReturnType<typeof createAnalyticsHandlers>;
119
- //#endregion
120
- export { AddWidgetInput, AnalyticsHandlers, CreateDashboardInput, CreateQueryInput, Dashboard, ListDashboardsInput, ListDashboardsOutput, ListQueriesInput, ListQueriesOutput, Query, Widget, createAnalyticsHandlers };
121
+ export type AnalyticsHandlers = ReturnType<typeof createAnalyticsHandlers>;
121
122
  //# sourceMappingURL=analytics.handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.handlers.d.ts","names":[],"sources":["../../src/handlers/analytics.handlers.ts"],"mappings":";;;UAYiB,SAAA;EACf,EAAA;EACA,SAAA;EACA,cAAA;EACA,IAAA;EACA,IAAA;EACA,WAAA;EACA,MAAA;EACA,eAAA;EAOA,QAAA;EACA,UAAA;EACA,SAAA,EAAW,IAAA;EACX,SAAA,EAAW,IAAA;AAAA;AAAA,UAGI,MAAA;EACf,EAAA;EACA,WAAA;EACA,IAAA;EACA,IAAA;EAaA,KAAA;EACA,KAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,MAAA,GAAS,MAAA;EACT,SAAA,EAAW,IAAA;EACX,SAAA,EAAW,IAAA;AAAA;AAAA,UAGI,KAAA;EACf,EAAA;EACA,SAAA;EACA,cAAA;EACA,IAAA;EACA,WAAA;EACA,IAAA;EACA,UAAA,EAAY,MAAA;EACZ,GAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA,EAAW,IAAA;EACX,SAAA,EAAW,IAAA;AAAA;AAAA,UAGI,oBAAA;EACf,IAAA;EACA,IAAA;EACA,WAAA;EACA,eAAA,GAAkB,SAAA;AAAA;AAAA,UAGH,cAAA;EACf,WAAA;EACA,IAAA;EACA,IAAA,EAAM,MAAA;EACN,KAAA;EACA,KAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,MAAA,GAAS,MAAA;AAAA;AAAA,UAGM,gBAAA;EACf,IAAA;EACA,WAAA;EACA,IAAA,EAAM,KAAA;EACN,UAAA,EAAY,MAAA;EACZ,GAAA;EACA,eAAA;EACA,QAAA;AAAA;AAAA,UAGe,mBAAA;EACf,SAAA;EACA,MAAA,GAAS,SAAA;EACT,MAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,UAGe,oBAAA;EACf,UAAA,EAAY,SAAA;EACZ,KAAA;AAAA;AAAA,UAGe,gBAAA;EACf,SAAA;EACA,IAAA,GAAO,KAAA;EACP,QAAA;EACA,MAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA,EAAS,KAAA;EACT,KAAA;AAAA;AAAA,iBAuGc,uBAAA,CAAwB,EAAA,EAAI,YAAA;0BAKjC,mBAAA,KACN,OAAA,CAAQ,oBAAA;2BAyCF,oBAAA,EAAoB,OAAA;IAChB,SAAA;IAAmB,cAAA;EAAA,MAC7B,OAAA,CAAQ,SAAA;;IAiCT,WAAA;IACA,IAAA;IACA,UAAA;EAAA,MACE,OAAA,CAAQ,SAAA;yCA4BS,OAAA,EACV,OAAA,CACP,IAAA,CACE,SAAA,2EAIH,OAAA,CAAQ,SAAA;uCAqDqC,OAAA,CAAQ,MAAA;qBAcxB,cAAA,KAAiB,OAAA,CAAQ,MAAA;mCAkCvC,OAAA,EACP,OAAA,CACP,IAAA,CACE,MAAA,uFAUH,OAAA,CAAQ,MAAA;sCAmDoC,OAAA;uBAQtC,gBAAA,KACN,OAAA,CAAQ,iBAAA;uBA8CF,gBAAA,EAAgB,OAAA;IACZ,SAAA;IAAmB,cAAA;EAAA,MAC7B,OAAA,CAAQ,KAAA;iCAiC+B,OAAA,CAAQ,KAAA;AAAA;AAAA,KAuBxC,iBAAA,GAAoB,UAAA,QAAkB,uBAAA"}
1
+ {"version":3,"file":"analytics.handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/analytics.handlers.ts"],"names":[],"mappings":"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"}